- 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
📦 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:1000pro souborový přístup - Logging:
json-filedriver, max 10 MB × 3 soubory - TZ:
Europe/Prague - Environment:
.envsoubor (šablona.env.examplev 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é
bridgepro 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