# Homelab ## Prerequisites - **Docker** and **Docker Compose** - Host paths used by the stacks: - `/srv/homelab` - `/srv/media` - `/backup` ## Setup ### 1. Media dirs ```bash sudo mkdir -p /srv/media/{movies,shows,downloads,immich} sudo chown -R 1000:1000 /srv/media ``` ### 2. Monitoring premissions ```bash sudo mkdir -p /srv/homelab/data/monitoring/{prometheus,loki,grafana} sudo chown -R 65534:65534 /srv/homelab/data/monitoring/prometheus sudo chown -R 10001:10001 /srv/homelab/data/monitoring/loki sudo chown -R 472:472 /srv/homelab/data/monitoring/grafana ``` ### 3. Env - **Glance:** `stacks/monitoring/glance.env` - **Immich:** `stacks/media/immich.env` ## Deploying From the repo root (`/srv/homelab`): | Stack | Command | |------------|---------| | **Media** | `docker compose -f stacks/media/compose.yaml up -d` | | **Monitoring** | `docker compose -f stacks/monitoring/compose.yaml up -d` | | **Storage** | `docker compose -f stacks/storage/compose.yaml up -d` | To update images: ```bash docker compose -f stacks/media/compose.yaml pull docker compose -f stacks/media/compose.yaml up -d ``` To stop a stack: ```bash docker compose -f stacks/media/compose.yaml down ``` ## Ports | Service | Port(s) | Stack | |-----------|-------------|-----------| | Sonarr | 8989 | media | | Radarr | 7878 | media | | Lidarr | 8686 | media | | Prowlarr | 9696 | media | | qBittorrent | 8081, 6881 (tcp/udp) | media | | Jellyfin | 8096 | media | | Immich | 2283 | media | | Navidrome | 4533 | media | | Seer | 5055 | media | | Grafana | 3034 | monitoring | | Prometheus| 9094 | monitoring | | Loki | 3100 | monitoring | | cAdvisor | 8088 | monitoring | | Glance | 9090 | monitoring | | Portainer | 9443, 8000 | monitoring | | Gitea | 3000, 222 | storage | | Copyparty | 3923 | storage |