diff --git a/README.md b/README.md index 2bda2d8..3c9c29b 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,56 @@ sudo systemctl reload caddy Агентам сервер раздаёт бинарники из `BM_DIST` (`/opt/backup-master/dist`). +### Caddy на другом хосте (например, сервер в VM Proxmox, Caddy на хосте) + +Здесь Caddy проксирует не на `127.0.0.1`, а на IP виртуалки. В примере VM — `10.0.0.10`, хост Proxmox — `10.0.0.1`. + +На VM сервис должен слушать сеть, а порт должен быть открыт только хосту с Caddy: + +```bash +sudo sed -i 's|BM_LISTEN=127.0.0.1:8080|BM_LISTEN=0.0.0.0:8080|' /etc/systemd/system/backup-master.service +sudo systemctl daemon-reload && sudo systemctl restart backup-master +sudo ufw allow from 10.0.0.1 to any port 8080 proto tcp # если на VM включён UFW +``` + +На хосте с Caddy сначала проверьте доступ — должно вернуться `ok`: + +```bash +curl -s http://10.0.0.10:8080/healthz +``` + +Затем укажите в Caddyfile адрес VM: + +``` +backup.example.com { + request_body { + max_size 200GB + } + reverse_proxy 10.0.0.10:8080 { + transport http { + read_timeout 6h + write_timeout 6h + } + } +} +``` + +```bash +sudo systemctl reload caddy +``` + +`BM_TRUST_PROXY=1` (включён в юните) говорит серверу брать IP клиента из `X-Forwarded-For` от Caddy — по нему ограничивается перебор пароля. Поэтому порт 8080 должен быть доступен **только** с хоста Caddy, иначе заголовок можно подделать. Если включён файрвол Proxmox для VM, разрешите 8080 и там. + +Если Caddy с хоста получает 502, а на VM `curl http://127.0.0.1:8080/healthz` отвечает `ok`, проблема в `BM_LISTEN` или в файрволе. + +### Администратор + +Логин и пароль задаёт одна команда. Её же используют, чтобы сменить логин, пароль или оба сразу. Перезапуск сервиса не нужен, все открытые сессии сбрасываются: + +```bash +sudo -u backup-master BM_DATA=/var/lib/backup-master backupctl admin-passwd новый_логин +``` + **Обновление сервера:** снова выполните блок «бинарники», затем `sudo systemctl restart backup-master`. Агенты обновляются командой `curl -fsSL https://backup.ВАШ-ДОМЕН/agent.sh | sudo bash` без `--token`, конфиг при этом сохраняется. В «Настройках» укажите топик ntfy. Уведомления приходят: