This commit is contained in:
administrator
2026-06-21 20:30:44 +03:00
parent 74265a4bf5
commit e7667fe801
12 changed files with 210 additions and 0 deletions
+73
View File
@@ -0,0 +1,73 @@
# 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)
```