compose/README.md
Rama main · réplica de lectura del repositorio original.
# Docker Compose Configurations
## Structure
One directory per host, one directory per stack under it. 32 Compose Stacks in
total, counted the way `CONTEXT.md` defines the unit: a directory holding a
compose file, in any of its three spellings. `compose/vps/landing/build.sh`
derives the number the same way and prints it on the public landing page, so a
stack added here moves that figure on the next build.
### proxmox-lxc-100/ (24)
Services on LXC 100 (docker-host), the main Docker host:
- Media: Jellyfin, Radarr, Sonarr, Prowlarr, qBittorrent, Seerr, SuggestArr
- Books & photos: Immich, Calibre-Web-Automated, Shelfmark
- Productivity: FreshRSS, Syncthing, BentoPDF, DocuSeal, Form, Dawarich
- Sites: Homepage, Portfolio, Homelable, Topology
- Storage & monitoring: Garage (S3, the Longhorn backup target), Scrutiny
- Notifications: Notifiarr
`uptime-kuma/` under this host is a leftover holding only a gitignored `.env`;
Kuma itself moved to the VPS. It has no compose file, so it is not a Compose
Stack and `build.sh` deliberately does not count it.
One more stack runs on this host without living here: `rails-lab`, at
`/opt/rails-lab` on LXC 100. That is deliberate and documented in
[29 - Rails Learning Lab](../docs/proxmox/29_Rails_Learning_Lab.md) - a
throwaway sandbox with no proxy, no backups and no Komodo management.
### proxmox-lxc-106/ (1)
Karakeep on LXC 106, migrated off a community-script source install on
2026-08-13. AI tagging runs on Gemini, not a local Ollama.
### proxmox-lxc-109/ (1)
code-server on claude-mgmt (LXC 109), reachable over Tailscale only.
### vps/ (3)
Hetzner VPS: Pangolin (the public reverse proxy), Uptime Kuma, and the
`landing` static site behind it.
### nobara/ (3)
GPU services on the Nobara workstation, not 24/7: `codeformer`, `deoldify` and
`immich-ml`, which serves Immich's machine learning back to LXC 100.
## Conventions
- Directory names: lowercase, hyphenated (e.g. `uptime-kuma`)
- Container names: match directory name
- `.env` for secrets (gitignored), `.env.example` committed as template
### Standard env variables
```bash
PUID=0
PGID=0
TZ=Europe/Budapest
DOCKER_DATA=/srv/docker-data
MEDIA_ROOT=/mnt/storage/media
```
### Standard volume paths
- Config: `/srv/docker-data/{service}/`
- Media: `/mnt/storage/media/`
- Downloads: `/mnt/storage/media/downloads/`
## Deployment
```bash
# Single service
cd proxmox-lxc-100/jellyfin
docker compose up -d
# Update all
cd proxmox-lxc-100
for dir in */; do
(cd "$dir" && docker compose pull && docker compose up -d)
done
```
Services are managed via [Komodo](../docs/proxmox/16_Komodo_complete_setup.md).
## Troubleshooting
```bash
# Check logs
docker compose logs -f service_name
# Verify env vars
docker compose config
# Port conflicts
ss -tuln | grep PORT
# Permission issues
chown -R 0:0 /srv/docker-data/service_name
# Network issues
docker compose down && docker network prune && docker compose up -d
```
## Related Documentation
- [Komodo Setup](../docs/proxmox/16_Komodo_complete_setup.md)
- [Storage Configuration](../docs/proxmox/01_Proxmox_VE_9.1_MergerFS_SnapRAID_Installation_Documentation.md)
- [Backup Procedures](../docs/proxmox/15_Proxmox_Backup_System_Documentation.md)