You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A consolidated, well-organized Docker Compose homelab. 65+ services across ten categories — custom AI apps, AI image generation/editing, LLM inference, media server, photo/NVR, home automation, monitoring, utilities, network, dev tools, and infrastructure — managed from a single repository.
Philosophy
One repo, every service. No more hunting through 15+ separate repos to find a compose file.
Directory-per-service. Each service is isolated in services/<category>/<name>/ with its own docker-compose.yml and .env.example.
No secrets in Git..env files are gitignored. .env.example files document every variable.
Makefile orchestration. Start, stop, and inspect any service with a single command.
Shared network. All services join the homelab Docker network for easy inter-service communication.
Quick Start
# 1. Clone
git clone https://github.com/davidamacey/OpenHomeLab.git
cd OpenHomeLab
# 2. Create the shared Docker network (one-time)
make network
# 3. Configure a service
cp services/media/immich/.env.example services/media/immich/.env
# Edit the .env file with your passwords and paths# 4. Start it
make up SERVICE=media/immich
# 5. Check status
make status
Service Catalog
Custom AI Projects (services/ai/)
These are custom-built applications with published Docker images. They require building from source or pulling from Docker Hub.
Service
Port(s)
GPU
Description
OpenTranscribe
5173–5181
0
AI transcription: speech-to-text with diarization, search
Zero-config mesh VPN and subnet router (no port forwarding needed)
Cloudflare Zero Trust
-
-
WARP Connector — private LAN access for WARP clients via Cloudflare
Speedtest Tracker
7900
-
Scheduled internet speed monitoring with history
Dev Tools (services/dev/)
Service
Port(s)
GPU
Description
Gitea
3500/2222
-
Lightweight self-hosted Git service
code-server
3600
-
VS Code in the browser
Woodpecker CI
3610
-
Lightweight CI/CD with GitHub Actions syntax
Infrastructure (services/infra/)
Service
Port(s)
GPU
Description
Nginx Proxy Manager
80/81/443
-
Reverse proxy with GUI and SSL
Traefik
80/443/8090
-
Cloud-native reverse proxy with labels
Authentik
9300/9443
-
Identity provider with SSO/OIDC
Portainer
9444/9445
-
Docker management GUI
Heimdall
9000/9001
-
Application dashboard
Homepage
3000
-
Modern customizable dashboard
Cloudflare Tunnel
-
-
Secure remote access via Cloudflare
Watchtower
-
-
Automatic container image updates
Makefile Commands
# Single service
make up SERVICE=ai/comfyui # start
make down SERVICE=ai/comfyui # stop
make logs SERVICE=llm/open-webui # tail logs
make restart SERVICE=media/immich # restart
make pull SERVICE=ai/comfyui # pull latest image# Category
make up-category CATEGORY=ai # start all AI services
make down-category CATEGORY=llm # stop all LLM services# Global
make up-all # start everything
make down-all # stop everything
make pull-all # update all images
make status # show running containers
make gpu # GPU allocation + nvidia-smi
make network # create homelab network
make help# show all targets
To adapt for your hardware: update the device_ids field in each GPU-enabled service's docker-compose.yml. See docs/gpu-allocation.md for the full allocation table.
Each service has a .env.example file listing its required variables. Copy it to .env and fill in your values before starting the service.
Global variables (shared across services) are documented in the root .env.example:
Variable
Default
Description
TZ
America/New_York
Timezone
PUID
1000
User ID for file ownership
PGID
1000
Group ID for file ownership
NAS_PATH
/mnt/nas
Base path to storage volume
DATA_PATH
/mnt/nas/appdata
Container app data
Port Conflicts
A few services share default ports (80, 8080). See docs/port-map.md for the full port inventory and conflict resolution guidance. The recommended solution is to run nginx-proxy-manager or traefik on 80/443 and proxy all other services through it.