Curated public Docker Compose stacks for a homelab, designed to stay consistent, documented, and easy to deploy through Portainer or Docker Compose.
- Standardized stacks: consistent naming, structure, and environment handling across the repo.
- Reverse-proxy friendly: services are organized to work cleanly with Nginx Proxy Manager.
- Public-repo safe: live hostnames and secrets stay out of the repository.
- Maintainable defaults: each stack ships with an
.env.examplefile and clear usage notes.
- Docker installed and working
- Portainer if you want to deploy through a UI
- Basic familiarity with Docker Compose
-
Clone the repository:
git clone https://github.com/alsd4git/dockerini.git cd dockerini -
For each stack you want to use, create a local
.envfile from the example:cd <stack-name> cp .env.example .env cd ..
-
Edit the stack-specific variables in
.envbefore deployment.
| Stack | Purpose |
|---|---|
| Automation | Docker event notifications, image monitoring, and container updates |
| Immich | Photo and video management |
| Infrastructure | Reverse proxy, DDNS, authentication, and identity services |
| KaraKeep | Bookmarks and media organization |
| Media | Media servers, downloaders, and automation |
| Monitoring | System monitoring, dashboards, and observability |
| Paperless-ngx | Document management and archival |
| Pi-hole | DNS sinkhole and network ad blocking |
| RustDesk Relay | Remote desktop relay infrastructure |
| Tracearr | Traceability and media import stack |
| Utilities | File management, document processing, and utility services |
Each public stack follows the same core conventions:
- Consistent formatting and compose structure
- Environment variable fallbacks
- Standardized network naming
- Clear documentation for setup and usage
- Security-focused defaults for public or internal deployment
-
Pin critical infrastructure where stability matters most:
- Databases
- DNS services
- Reverse proxies
- Identity and auth services
-
Allow faster-moving apps to track
latestwhen appropriate:- Media applications
- Monitoring tools
- Utility services
- Automation helpers
-
Keep the update strategy deliberate:
- Use automation for container event notifications and image tracking
- Pin or test critical infrastructure updates before rollout
- Keep a reverse proxy and monitoring in place for public services
Each stack folder follows the same basic shape:
/stack-name
├── compose.yaml
├── README.md
├── .env.example
└── /resources-
Choose a stack from the table above.
-
Read the stack README for its specific requirements.
-
Copy
.env.exampleto.envand fill in the local values. -
Deploy the stack:
docker compose up -d
- Install uv if needed.
- Install pre-commit with
uv tool install pre-commit. - Install the repo hooks with
uv run pre-commit install. - Optionally run the full check with
uv run pre-commit run --all-files.
The pre-commit setup keeps YAML consistent with yamllint, enforces whitespace hygiene, and validates .env files with dotenv-linter.
- Docker Compose Documentation
- Portainer Documentation
- Individual stack READMEs in each folder