Files
ForbiddenStarsApp/deploy/pi

Raspberry Pi — ПРОД (forbiddenstars.ru)

Pi запускает приложение в Docker и держит постоянный SSH reverse-туннель к VPS. Снаружи Pi недоступен (CGNAT) — публичная точка только VPS, Pi сам стучится наружу.

1. Приложение (Docker)

Из ветки main:

git pull
cp .env.example .env        # заполни секреты; APP_ENV контейнер форсит в production
docker compose up -d --build
curl http://localhost:8000/api/health      # → {"status":"ok"}

БД на томе db-data, миграции и бутстрап админа — автоматически (entrypoint.sh).

2. Ключ для туннеля (без пароля)

sudo apt -y install autossh
ssh-keygen -t ed25519 -f ~/.ssh/id_tunnel -N ""
ssh-copy-id -i ~/.ssh/id_tunnel.pub tunnel@186.246.51.17
# (или вручную добавь ~/.ssh/id_tunnel.pub в /home/tunnel/.ssh/authorized_keys на VPS)

Проверка туннеля вручную:

autossh -M 0 -N -R 9000:localhost:8000 -i ~/.ssh/id_tunnel tunnel@186.246.51.17
# в другом окне/браузере открой https://forbiddenstars.ru — должно работать. Ctrl+C.

3. Туннель как служба (автозапуск + переподключение)

sudo cp deploy/pi/forbidden-stars-tunnel.service /etc/systemd/system/
sudoedit /etc/systemd/system/forbidden-stars-tunnel.service   # поправь User= и путь к ключу
sudo systemctl daemon-reload
sudo systemctl enable --now forbidden-stars-tunnel
systemctl status forbidden-stars-tunnel

Готово: https://forbiddenstars.ru отдаёт прод. Логи туннеля: journalctl -u forbidden-stars-tunnel -f.