Subir archivos a "/"
This commit is contained in:
@@ -0,0 +1,137 @@
|
|||||||
|
# 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-composes/
|
||||||
|
│
|
||||||
|
├── 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
|
||||||
|
├── rtc_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
|
||||||
|
├── navidrome2_compose.yaml
|
||||||
|
└── arcane_compose.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Services
|
||||||
|
|
||||||
|
### Elitedesk — Primary Server
|
||||||
|
|
||||||
|
| Compose File | Service | Port | Public URL | Description |
|
||||||
|
|---|---|---|---|---|
|
||||||
|
| `gitea_compose.yaml` | **Gitea** | 3000 | [git.jrodriiguezg.link](https://git.jrodriiguezg.link) | Self-hosted Git service |
|
||||||
|
| `homeassistant_compose.yaml` | **Home Assistant** | 8123 | [hamaca.jrodriiguezg.link](https://hamaca.jrodriiguezg.link) | Home automation platform |
|
||||||
|
| `jellyfin_compose.yaml` | **Jellyfin** | 8096 | [jellyfin.jrodriiguezg.link](https://jellyfin.jrodriiguezg.link) | Media server |
|
||||||
|
| `odoo_compose.yaml` | **Odoo** | 8072 | [jotarcloud.jrodriiguezg.link](https://jotarcloud.jrodriiguezg.link) | ERP / test instance |
|
||||||
|
| `synapse_compose.yaml` | **Synapse** | 8008 | [macarron.jrodriiguezg.link](https://macarron.jrodriiguezg.link) | Matrix homeserver |
|
||||||
|
| `jwt_compose.yaml` | **JWT** | 8083 | [jwt.jrodriiguezg.link](https://jwt.jrodriiguezg.link) | JWT auth service (Synapse calls) |
|
||||||
|
| `navidrome_compose.yaml` | **Navidrome** | 4533 | [navidrome.jrodriiguezg.link](https://navidrome.jrodriiguezg.link) | Music streaming server |
|
||||||
|
| `rtc_compose.yaml` | **RTC** | 8083 | [rtc.jrodriiguezg.link](https://rtc.jrodriiguezg.link) | WebRTC service (Matrix coturn) |
|
||||||
|
| `kroki_compose.yaml` | **Kroki** | 8079 | — | Diagram-as-code rendering |
|
||||||
|
| `drawio_compose.yaml` | **Draw.io** | 8091 | [drawio.jrodriiguezg.link](https://drawio.jrodriiguezg.link) | Self-hosted diagram editor |
|
||||||
|
| `excalidraw_compose.yaml` | **Excalidraw** | 8071 | [excal.jrodriiguezg.link](https://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](https://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](https://hmrr.jrodriiguezg.link) | Home lab dashboard |
|
||||||
|
| `adguard_compose.yaml` | **AdGuard Home** | 4533 | — | Network-wide DNS ad blocker |
|
||||||
|
| `navidrome2_compose.yaml` | **Navidrome 2** | 7575 | — | Secondary Navidrome instance |
|
||||||
|
| `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:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/jrodriiguezg/docker-composes
|
||||||
|
cd docker-composes
|
||||||
|
|
||||||
|
# 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 `.env` files and add them to `.gitignore`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Author
|
||||||
|
|
||||||
|
**Juan Raul Rodriguez Gil** — SysAdmin & Infrastructure Engineer
|
||||||
|
[jrodriiguezg.link](https://jrodriiguezg.link) · [GitHub](https://github.com/jrodriiguezg)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
© 2026 Juan Raul Rodriguez Gil
|
||||||
Reference in New Issue
Block a user