# mates-install-scripts 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/`. > **Jsi začátečník?** Čti od [Začínáme](#zaciname) – vše je krok za krokem. --- ## 📦 Co tu je | Skript | Alias | Co dělá | |---|---|---| | `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//multimedia` | | `update-macos.sh` | – | Aktualizace macOS přes Software Update | 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í. --- ## 🚀 Začínáme ### 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//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//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 `` - `SMB_SHARE` – default `Multimedia` - `SMB_USER` – default `mates` - `TARGET` – default `/Volumes//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 --- **Poslední update:** 2026-08-01