74 lines
3.1 KiB
Markdown
74 lines
3.1 KiB
Markdown
# OPERATIONS RUNBOOK — операционные процедуры
|
||
|
||
## Вход
|
||
`ssh root@45.91.8.169` (ed25519-ключ с passphrase; локальный ключ — Manjaro `~/.ssh/id_ed25519`).
|
||
|
||
## Управление стеком
|
||
```bash
|
||
cd /opt/docker/core
|
||
docker compose ps # статус
|
||
docker compose logs -f caddy # логи
|
||
docker compose up -d # применить правки compose/Caddyfile
|
||
docker compose restart <сервис>
|
||
docker compose exec caddy caddy reload --config /etc/caddy/Caddyfile # горячая перезагрузка Caddy
|
||
```
|
||
|
||
## Бэкап
|
||
```bash
|
||
sudo /usr/local/bin/vw-backup.sh # ручной запуск
|
||
journalctl -u vw-backup.service -n 20 # логи
|
||
systemctl list-timers vw-backup.timer # когда следующий
|
||
rclone lsf gdrive:vaultwarden-backups/ # проверить копии
|
||
rclone lsf "homesmb:TOSHIBA EXT/vaultwarden-backups/"
|
||
ls -1t /opt/backups/vaultwarden/
|
||
```
|
||
|
||
## Восстановление Vaultwarden
|
||
1. `mkdir -p /opt/restore && tar -xzf <архив> -C /opt/restore`
|
||
2. Боевой способ: смонтировать `/opt/restore` как `/data` в новый Vaultwarden **за Caddy (по HTTPS)** и войти мастер-паролем. Веб-вход по голому http не работает.
|
||
3. Быстрая проверка целостности без UI:
|
||
```bash
|
||
sqlite3 /opt/restore/db.sqlite3 "PRAGMA integrity_check;"
|
||
sqlite3 /opt/restore/db.sqlite3 "SELECT email FROM users;"
|
||
sqlite3 /opt/restore/db.sqlite3 "SELECT count(*) FROM ciphers;"
|
||
```
|
||
|
||
## WireGuard (туннель к дому для SMB)
|
||
```bash
|
||
sudo wg show # статус, latest handshake
|
||
sudo systemctl status wg-quick@wg0
|
||
sudo systemctl restart wg-quick@wg0
|
||
ping -c3 10.0.0.1 # Keenetic в туннеле
|
||
```
|
||
|
||
## TLS
|
||
Caddy продлевает сертификаты сам. Проверка: `docker compose logs caddy | grep -i certificate`.
|
||
|
||
## Сброс пароля Portainer (если потерян)
|
||
```bash
|
||
docker stop core-portainer-1
|
||
docker run --rm -v core_portainer_data:/data portainer/helper-reset-password
|
||
docker start core-portainer-1
|
||
# войти временным паролем (basic-auth -> логин Portainer), сразу сменить, записать в Vaultwarden
|
||
```
|
||
|
||
## Сменить пароль basic-auth (Caddy)
|
||
```bash
|
||
read -rsp 'новый пароль: ' P; echo
|
||
docker compose exec caddy caddy hash-password --plaintext "$P" # получить bcrypt-хеш
|
||
# заменить хеш в /opt/docker/core/caddy/Caddyfile (сниппет protected), затем:
|
||
docker compose exec caddy caddy reload --config /etc/caddy/Caddyfile
|
||
```
|
||
|
||
## Файрвол / fail2ban
|
||
```bash
|
||
sudo ufw status verbose
|
||
sudo fail2ban-client status sshd
|
||
```
|
||
|
||
## Обновления
|
||
```bash
|
||
sudo apt update && apt list --upgradable
|
||
sudo apt upgrade -y # обновление docker-* перезапустит демон; контейнеры поднимутся сами (restart: unless-stopped)
|
||
```
|