Files
mates-install-scripts/README.md
T
mates 97deb62bc5 docs: kompletne prepsat README pro zacatecniky
- Strukturovany obsah (tabulky, seznamy)
- Ceske popisy, vysvetleni co je co
- Začínáme sekce (krok za krokem)
- Detailni navody pro kazdy soubor/sluzba
- Souvisejici repo + licence
- Konzistentni format napric 6 repo
2026-08-01 20:13:20 +02:00

245 lines
6.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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/SSD-data/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://<server-ip>: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/<hostname>/`
- 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:<server>/<share>`
### `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