diff --git a/README.md b/README.md index addba9a..fb8655c 100644 --- a/README.md +++ b/README.md @@ -1,26 +1,244 @@ # mates-install-scripts -Bash skripty pro správu Dockeru. -Jedná se o **přesné kopie** skriptů z `~/Skripty/docker-domov/`. +Bash skripty pro správu Dockeru na Macu i Linuxu. +Jedná se o **přesné kopie** skriptů z tvého lokálního `~/Skripty/docker-domov/`. -## Skripty +> **Jsi začátečník?** Čti od [Začínáme](#zaciname) – vše je krok za krokem. -| Skript | Alias | Účel | +--- + +## 📦 Co tu je + +| Skript | Alias | Co dělá | |---|---|---| -| `docker-update.sh` | `dk-update` | Aktualizace Docker Compose projektů | -| `docker-backup.sh` | `dk-backup` | Záloha projektů a named volumes | -| `docker-cleanup.sh` | `dk-cleanup` | Čištění odpadu (s potvrzením) | -| `docker-restore.sh` | `dk-restore` | Obnova ze zálohy | -| `disk-watch.sh` | `dk-watch` | Sledování místa | -| `mount-nas.sh` | – | Připojení NAS SMB share | -| `update-macos.sh` | – | Aktualizace macOS | +| `docker-update.sh` | `dk-update` | Aktualizuje Docker Compose projekty (stáhne nové image, restartuje) | +| `docker-backup.sh` | `dk-backup` | Zálohuje Docker projekty a named volumes (na NAS) | +| `docker-cleanup.sh` | `dk-cleanup` | Čistí Docker odpad (dangling images, build cache, orphaned sítě) | +| `docker-restore.sh` | `dk-restore` | Obnovuje Docker projekty ze zálohy | +| `disk-watch.sh` | `dk-watch` | Sleduje volné místo na Docker datech | +| `mount-nas.sh` | `dk-nas` | Připojí/odpojí NAS SMB share do `/Volumes/SSD-data/multimedia` | +| `update-macos.sh` | – | Aktualizace macOS přes Software Update | -Všechny skripty jsou **idempotentní**, mají `--help`, podporují **dry-run** a bez potvrzení nic destruktivního neprovádějí. +Všechny skripty jsou **idempotentní** (můžeš spustit víckrát), mají `--help`, podporují **dry-run** a bez potvrzení nic destruktivního neprovádějí. -## Detailní návod +--- -Viz [README.md](README.md) – kompletní dokumentace aliasů a workflow. +## 🚀 Začínáme -## Licence +### Krok 1: Naklonuj repo + +```bash +git clone http://:3000/mates/mates-install-scripts.git +cd mates-install-scripts +``` + +### Krok 2: Nastav aliasy + +Přidej do `~/.config/fish/config.fish` (Fish) nebo `~/.zshrc` (Zsh): + +**Fish:** + +```fish +# Docker skripty (~/Skripty/docker-domov/) +alias dk-update="~/git-repos/mates-install-scripts/docker-update.sh" +alias dk-backup="~/git-repos/mates-install-scripts/docker-backup.sh" +alias dk-cleanup="~/git-repos/mates-install-scripts/docker-cleanup.sh" +alias dk-restore="~/git-repos/mates-install-scripts/docker-restore.sh" +alias dk-watch="~/git-repos/mates-install-scripts/disk-watch.sh" +alias dk-nas="~/git-repos/mates-install-scripts/mount-nas.sh" + +# Casto pouzivane zkratky +alias dk-list="~/git-repos/mates-install-scripts/docker-restore.sh --list" +alias dk-cleanup-dry="~/git-repos/mates-install-scripts/docker-cleanup.sh --all --dry-run" +alias dk-watch-alert="~/git-repos/mates-install-scripts/disk-watch.sh --alert" +alias dk-nas-status="~/git-repos/mates-install-scripts/mount-nas.sh --status" +alias dk-nas-mount="~/git-repos/mates-install-scripts/mount-nas.sh --auto" +``` + +**Zsh:** + +```bash +alias dk-update="~/git-repos/mates-install-scripts/docker-update.sh" +alias dk-backup="~/git-repos/mates-install-scripts/docker-backup.sh" +# ... atd. +``` + +Nebo použij `configure-fish.sh` z `mates-macos-setup` repo. + +### Krok 3: Vytvoř složku s projekty + +Skripty očekávají Docker projekty v `/Volumes/SSD-data/Dockery/` (na Macu) nebo `/home/deploy/docker/` (na Linuxu). Každý projekt je složka s `docker-compose.yml`. + +Příklad struktury: + +``` +~/DockerProjects/ +├── portainer/ +│ ├── docker-compose.yml +│ └── data/ +├── vaultwarden/ +│ ├── docker-compose.yml +│ └── data/ +└── nextcloud/ + └── docker-compose.yml +``` + +**Konfigurace cesty:** + +```bash +export DOCKERY="/Volumes/SSD-data/Dockery" # macOS +# nebo +export DOCKERY="/home/deploy/docker" # Linux +``` + +### Krok 4: První použití + +```bash +# Podívej se, co skript dělá (bez provedení) +docker-backup.sh --help +docker-backup.sh --dry-run + +# Nebo s aliasem +dk-backup --dry-run +``` + +--- + +## 📚 Detail ke každému skriptu + +### `docker-update.sh` → `dk-update` + +Bezpečná aktualizace Docker Compose projektů. + +```bash +dk-update # aktualizuje všechny projekty v DOCKERY +dk-update portainer # aktualizuje jen portainer +dk-update --dry-run # ukáže co by se dělalo, neprovede +``` + +**Workflow:** +1. Zastaví všechny kontejnery +2. Stáhne nové image (`docker compose pull`) +3. Restartuje s novými image +4. Ověří, že vše běží + +### `docker-backup.sh` → `dk-backup` + +Záloha Docker projektů na NAS. + +```bash +dk-backup # zalohuj vse +dk-backup --only portainer # jen jeden projekt +dk-backup --dry-run # ukaz co by se delalo +dk-backup --auto # bez dotazovani (cron-friendly) +``` + +**Výchozí nastavení:** +- Zálohy jdou do `/Volumes/Backups/Prace/server-backups//` +- Používá `tar --zstd` (moderní komprese) +- Staré zálohy se **nemazou** (musíš ručně) + +### `docker-cleanup.sh` → `dk-cleanup` + +Bezpečné čištění Docker odpadu. + +```bash +dk-cleanup # zobrazi plan, zepta se na souhlas +dk-cleanup --dry-run # jen vypise co by smazal +dk-cleanup --auto # bez ptani +dk-cleanup --all # dangling + build cache + sites + tmp +``` + +**Nikdy nemaže:** +- ❌ Používané images +- ❌ Bind-mount ani named volume data +- ❌ Běžící kontejnery + +### `docker-restore.sh` → `dk-restore` + +Obnova ze zálohy. + +```bash +dk-list # seznam dostupnych zaloh +dk-restore # obnov vse (nejnovejsi) +dk-restore --only portainer # jen jeden projekt +dk-restore --from 20240801-120000 # konkretni zaloha +``` + +### `disk-watch.sh` → `dk-watch` + +Sledování volného místa. + +```bash +dk-watch # jen info o aktualnim stavu +dk-watch --alert # posli Telegram alert kdyz < 10% volneho +``` + +### `mount-nas.sh` → `dk-nas` + +Připojí NAS SMB share. + +```bash +dk-nas-status # je pripojeno? +dk-nas-mount # pripoj (auto = chybejici chybu) +dk-nas --umount # odpoj +``` + +**Konfigurace:** +- `SMB_SERVER` – default `192.168.0.109` +- `SMB_SHARE` – default `Multimedia` +- `SMB_USER` – default `mates` +- `TARGET` – default `/Volumes/SSD-data/multimedia` +- Heslo je v **macOS keychainu** pod `SMB:/` + +### `update-macos.sh` + +Spustí `softwareupdate` na macOS. + +```bash +~/Skripty/update-macos.sh +``` + +--- + +## 🔐 Bezpečnost + +- ✅ **Všechny skripty kontrolují `$EUID == 0`** (musíš být root pro sudo) +- ✅ **Všechny skripty podporují `--dry-run`** +- ✅ **Žádné destruktivní akce bez potvrzení** +- ✅ **Hesla v macOS keychainu**, ne v skriptech + +--- + +## 🏗 Struktura + +``` +mates-install-scripts/ +├── README.md # Tento soubor +├── LICENSE # MIT +├── docker-update.sh # Aktualizace Docker +├── docker-backup.sh # Záloha na NAS +├── docker-cleanup.sh # Čištění odpadu +├── docker-restore.sh # Obnova ze zálohy +├── disk-watch.sh # Sledování místa +├── mount-nas.sh # Mount NAS +└── update-macos.sh # Aktualizace macOS +``` + +--- + +## 📚 Související + +- **Jotty:** knowledge base (detailní postupy, troubleshooting) +- **mates-docker-services:** Docker Compose šablony pro 14 služeb +- **mates-ansible:** Ansible playbooky pro nový server + +--- + +## 📜 Licence MIT – viz [LICENSE](LICENSE) + +--- + +**Poslední update:** 2026-08-01