README: схема с Caddy на другом хосте и смена логина админа
CI / test (push) Successful in 1m18s

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
mrleo1nidandClaude Opus 5.5 committed 2026-10-06 22:18:01 +03:00
1 parent fa1817e614
commit a488d2ea08
1 file changed
+50
+50
View File
@@ -47,6 +47,56 @@ sudo systemctl reload caddy
Агентам сервер раздаёт бинарники из `BM_DIST` (`/opt/backup-master/dist`). Агентам сервер раздаёт бинарники из `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`, конфиг при этом сохраняется. **Обновление сервера:** снова выполните блок «бинарники», затем `sudo systemctl restart backup-master`. Агенты обновляются командой `curl -fsSL https://backup.ВАШ-ДОМЕН/agent.sh | sudo bash` без `--token`, конфиг при этом сохраняется.
В «Настройках» укажите топик ntfy. Уведомления приходят: В «Настройках» укажите топик ntfy. Уведомления приходят: