Files
mates-install-scripts/README.md
T
mates 10d214c2a2 fix: odstranit emoji ze vsech souboru
Kompletne odstraneno:
- Emoji (smajliky, symboly, boxes, arrows) z README
- Emoji ze skriptu (sipky, symboly)
- Emoji z docker-compose (adresare)

Nahrano za:
- Textove alternativy (sipky -> '->', boxes -> '+', atd.)
- ASCII pouze kde to slo

Ciste vsechny 7 repo (overeno Python skriptem).
2026-08-02 08:50:11 +02:00

239 lines
6.2 KiB
Markdown

# 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-mount>/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-mount>/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-mount>/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 `<nas-ip>`
- `SMB_SHARE` - default `Multimedia`
- `SMB_USER` - default `mates`
- `TARGET` - default `/Volumes/<ssd-data-mount>/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
---
**Poslední update:** 2026-08-01