- 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
99 lines
3.3 KiB
Markdown
99 lines
3.3 KiB
Markdown
# 📦 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
|
||
|
||
```bash
|
||
# 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`](portainer/) | Docker UI management | `9000`, `9443` | `portainer/portainer-ce` |
|
||
| [`nginx-proxy-manager`](nginx-proxy-manager/) | Reverse proxy + HTTPS | `80`, `443`, `81` | `jc21/nginx-proxy-manager` |
|
||
| [`vaultwarden`](vaultwarden/) | Správce hesel | `2999` | `vaultwarden/server` |
|
||
| [`nextcloud-aio`](nextcloud-aio/) | Cloud (soubory, kalendář) | `11000` | `nextcloud/all-in-one` |
|
||
| [`gitea`](gitea/) | Git server | `3000`, `222` | `gitea/gitea` |
|
||
| [`jotty`](jotty/) | Poznámky & checklisty | `1122` | `mrx23dotcom/jotty` |
|
||
| [`rustdesk`](rustdesk/) | Remote desktop | `21115-21119` | `rustdesk/rustdesk-server` |
|
||
| [`audiobookshelf`](audiobookshelf/) | Audio knihovna | `13378` | `advplyr/audiobookshelf` |
|
||
| [`calibre-web`](calibre-web/) | E-knihovna | `8083` | `linuxserver/calibre-web` |
|
||
| [`plex`](plex/) | Media server | `32400` | `linuxserver/plex` |
|
||
| [`erugo`](erugo/) | File sharing | `61080` | `wardy784/erugo` |
|
||
| [`jswiki`](jswiki/) | Wiki | `9180` | `linuxserver/wikijs` |
|
||
| [`speedtest`](speedtest/) | Speedtest tracker | `8072` | `linuxserver/speedtest-tracker` |
|
||
| [`watchtower`](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
|
||
|
||
```bash
|
||
# 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:
|
||
|
||
```bash
|
||
# Pomocí našeho nástroje z install-scripts/
|
||
sudo bash install-scripts/backup-all.sh
|
||
```
|