Files
mates-infra/docker-services
mates 444191d16d feat: initial infra repo
- docker-services: 14 generic compose templates (portainer, npm, vaultwarden, gitea, jotty, nextcloud-aio, rustdesk, audiobookshelf, calibre-web, plex, erugo, jswiki, speedtest, watchtower)
- install-scripts: bash scripts for Ubuntu server bootstrap, docker, portainer, npm, backup, restore
- ansible: 4 playbooks (bootstrap, deploy-services, update-services, security-hardening) + roles skeleton
- hermes-install: Hermes CLI setup on macOS
- macos-setup: Brewfile + osx-defaults + fish-config
- home-nas-tools: metadata index for NAS projects (no binaries)
- docs: architecture, security, contributing
- README, LICENSE (MIT), .gitignore
2026-08-01 16:25:58 +02:00
..
2026-08-01 16:25:58 +02:00
2026-08-01 16:25:58 +02:00
2026-08-01 16:25:58 +02:00
2026-08-01 16:25:58 +02:00
2026-08-01 16:25:58 +02:00
2026-08-01 16:25:58 +02:00
2026-08-01 16:25:58 +02:00
2026-08-01 16:25:58 +02:00
2026-08-01 16:25:58 +02:00
2026-08-01 16:25:58 +02:00
2026-08-01 16:25:58 +02:00
2026-08-01 16:25:58 +02:00
2026-08-01 16:25:58 +02:00
2026-08-01 16:25:58 +02:00

📦 Docker Services

Generické docker-compose.yml šablony pro self-hosted služby. Každá služba má vlastní složku, .env.example (šablona) a README s dokumentací.

🎯 Jak použít

# 1. Vyber službu
cd services/<service>

# 2. Vytvoř .env z šablony
cp .env.example .env
nano .env   # nastav POUZE potřebné hodnoty (hesla, cesty)

# 3. Nasaď
docker compose up -d

# 4. Ověř
docker compose ps
docker compose logs -f

📚 Rejstřík služeb

Služba Účel Port Image
portainer Docker UI management 9000, 9443 portainer/portainer-ce
nginx-proxy-manager Reverse proxy + HTTPS 80, 443, 81 jc21/nginx-proxy-manager
vaultwarden Správce hesel 2999 vaultwarden/server
nextcloud-aio Cloud (soubory, kalendář) 11000 nextcloud/all-in-one
gitea Git server 3000, 222 gitea/gitea
jotty Poznámky & checklisty 1122 mrx23dotcom/jotty
rustdesk Remote desktop 21115-21119 rustdesk/rustdesk-server
audiobookshelf Audio knihovna 13378 advplyr/audiobookshelf
calibre-web E-knihovna 8083 linuxserver/calibre-web
plex Media server 32400 linuxserver/plex
erugo File sharing 61080 wardy784/erugo
jswiki Wiki 9180 linuxserver/wikijs
speedtest Speedtest tracker 8072 linuxserver/speedtest-tracker
watchtower Auto-update kontejnerů containrrr/watchtower

🧱 Společné konvence

Všechny compose soubory v tomto adresáři dodržují:

  • Porty: nikdy nepoužívat konfliktní porty s ostatními službami
  • Volume: ./data:/data (host container, snadná záloha)
  • Restart: unless-stopped
  • Network: výchozí bridge, případně vlastní *-net
  • User: 1000:1000 pro souborový přístup
  • Logging: json-file driver, max 10 MB × 3 soubory
  • TZ: Europe/Prague
  • Environment: .env soubor (šablona .env.example v gitu)

🛡 Bezpečnost

  • Žádná hesla v docker-compose.yml vše v .env (gitignored)
  • Restart policy zamezí nechtěnému spuštění po rebootu
  • Networks izolované bridge pro každou službu
  • Read-only filesystémy kde to jde (/etc/timezone, /etc/localtime)

🗂 Struktura

docker-services/
├── README.md                       # Tento soubor
├── portainer/
│   ├── docker-compose.yml
│   ├── .env.example
│   └── README.md
├── nginx-proxy-manager/
│   ├── docker-compose.yml
│   ├── .env.example
│   └── README.md
└── ... (další služby)

🔄 Aktualizace služeb

# Pomocí Watchtower (auto-update)
docker compose pull && docker compose up -d

# Nebo ručně
cd services/<service>
docker compose pull
docker compose up -d

📦 Zálohování

Všechna data jsou v ./data/ uvnitř každé služby. Zálohuj celé adresáře:

# Pomocí našeho nástroje z install-scripts/
sudo bash install-scripts/backup-all.sh