7.3 KiB
🐳 Self-Hosted Docker Composes
A collection of Docker Compose files for every service running across my home lab infrastructure. Each file is standalone and ready to deploy.
Infrastructure: 2 nodes — HP EliteDesk (primary) · Raspberry Pi 4B (secondary)
Reverse Proxy: Nginx Proxy Manager (NPM)
Tunnel: Cloudflare Tunnel → public *.jrodriiguezg.link domains
Repository Structure
docker-compose/
│
├── README.md
│
├── # ── Elitedesk (primary server) ──────────────────────────
├── gitea_compose.yaml
├── homeassistant_compose.yaml
├── jellyfin_compose.yaml
├── odoo_compose.yaml
├── synapse_compose.yaml
├── jwt_compose.yaml
├── navidrome_compose.yaml
├── kroki_compose.yaml
├── drawio_compose.yaml
├── excalidraw_compose.yaml
├── guacamole_compose.yaml
├── element_compose.yaml
├── picard_compose.yaml
├── lidarr_compose.yaml
├── beets_compose.yaml
├── transmission_compose.yaml
├── vaultwarden_compose.yaml
│
└── # ── Raspberry Pi 4B (secondary node) ────────────────────
├── npm_compose.yaml
├── homarr_compose.yaml
├── adguard_compose.yaml
└── arcane_compose.yaml
Services
🖥️ Elitedesk — Primary Server
| Compose File | Service | Port | Public URL | Description |
|---|---|---|---|---|
gitea_compose.yaml |
Gitea | 3000 | git.jrodriiguezg.link | Self-hosted Git service |
homeassistant_compose.yaml |
Home Assistant | 8123 | hamaca.jrodriiguezg.link | Home automation platform |
jellyfin_compose.yaml |
Jellyfin | 8096 | jellyfin.jrodriiguezg.link | Media server |
odoo_compose.yaml |
Odoo | 8072 | jotarcloud.jrodriiguezg.link | ERP / test instance |
synapse_compose.yaml |
Synapse | 8008 | macarron.jrodriiguezg.link | Matrix homeserver |
jwt_compose.yaml |
JWT + RTC | 8083 | jwt.jrodriiguezg.link · rtc.jrodriiguezg.link | JWT auth + WebRTC/coturn (Matrix auxiliaries) |
navidrome_compose.yaml |
Navidrome | 4533 | navidrome.jrodriiguezg.link | Music streaming server |
kroki_compose.yaml |
Kroki | 8079 | — | Diagram-as-code rendering |
drawio_compose.yaml |
Draw.io | 8091 | drawio.jrodriiguezg.link | Self-hosted diagram editor |
excalidraw_compose.yaml |
Excalidraw | 8071 | excal.jrodriiguezg.link | Collaborative whiteboard |
guacamole_compose.yaml |
Guacamole | 8087 | — | Browser-based remote desktop gateway |
element_compose.yaml |
Element Web | 8086 | — | Matrix web client |
picard_compose.yaml |
Picard Web | 80 | — | MusicBrainz Picard web UI |
lidarr_compose.yaml |
Lidarr | 8686 | — | Music collection manager |
beets_compose.yaml |
Beets | 8337 | — | Music library organizer |
transmission_compose.yaml |
Transmission | 9091 | — | BitTorrent client |
vaultwarden_compose.yaml |
Vaultwarden | 8383 | vauwar.jrodriiguezg.link | Self-hosted Bitwarden-compatible vault |
🍓 Raspberry Pi 4B — Secondary Node
| Compose File | Service | Port | Public URL | Description |
|---|---|---|---|---|
npm_compose.yaml |
Nginx Proxy Manager | 81 | — | Reverse proxy management UI |
homarr_compose.yaml |
Homarr | 7575 | hmrr.jrodriiguezg.link | Home lab dashboard |
adguard_compose.yaml |
AdGuard Home | 4533 | — | Network-wide DNS ad blocker |
arcane_compose.yaml |
Arcane | 9443 | — | — |
Infrastructure Overview
Internet
│
▼
Cloudflare Tunnel
│
▼
Nginx Proxy Manager (RPI :81)
│
├──► Elitedesk services (192.168.1.135)
└──► RPI services (192.168.1.229)
| Node | Hardware | LAN IP | VPN IP |
|---|---|---|---|
| Elitedesk | HP EliteDesk | 192.168.1.135 | 100.85.176.113 |
| Raspberry Pi 4B | RPi 4B | 192.168.1.229 | 100.75.198.29 |
Usage
Each compose file is self-contained. Clone the repo and run any service individually:
git clone https://git.jrodriiguezg.link/jrodriiguezg/docker-compose
cd docker-compose
# Example: start Gitea
docker compose -f gitea_compose.yaml up -d
# Example: start NPM on the RPI
docker compose -f npm_compose.yaml up -d
Note
Some services require environment variables or volume paths adjusted to your system. Check the comments inside each compose file before deploying.
Warning
Files may reference Cloudflare Tunnel tokens, secrets, or local paths. Never commit real credentials — use
.envfiles and add them to.gitignore.
Author
Juan Raul Rodriguez Gil — SysAdmin & Infrastructure Engineer
jrodriiguezg.link · GitHub
© 2026 Juan Raul Rodriguez Gil