Завершена настройка домена для дева, теста и прода. Соединение через ssh-туннель

This commit is contained in:
2026-06-16 19:15:54 +03:00
parent 56b5d09a4d
commit b04fbb2e17
14 changed files with 356 additions and 26 deletions
+38
View File
@@ -0,0 +1,38 @@
# Raspberry Pi — ПРОД (`forbiddenstars.ru`)
Pi запускает приложение в Docker и держит постоянный SSH reverse-туннель к VPS.
Снаружи Pi недоступен (CGNAT) — публичная точка только VPS, Pi сам стучится наружу.
## 1. Приложение (Docker)
Из ветки `main`:
```bash
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. Ключ для туннеля (без пароля)
```bash
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)
```
Проверка туннеля вручную:
```bash
autossh -M 0 -N -R 9000:localhost:8000 -i ~/.ssh/id_tunnel tunnel@186.246.51.17
# в другом окне/браузере открой https://forbiddenstars.ru — должно работать. Ctrl+C.
```
## 3. Туннель как служба (автозапуск + переподключение)
```bash
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`.
+27
View File
@@ -0,0 +1,27 @@
# SSH reverse-туннель ПРОДА: VPS:9000 → Pi localhost:8000 (приложение в Docker).
# Caddy на VPS отдаёт forbiddenstars.ru через этот туннель.
#
# Установка:
# sudo cp deploy/pi/forbidden-stars-tunnel.service /etc/systemd/system/
# # ПОПРАВЬ под себя: User=, путь к ключу (-i ...), при необходимости IP VPS.
# sudo systemctl daemon-reload
# sudo systemctl enable --now forbidden-stars-tunnel
# systemctl status forbidden-stars-tunnel
[Unit]
Description=Forbidden Stars: SSH reverse tunnel (prod) to VPS
After=network-online.target docker.service
Wants=network-online.target
[Service]
# Замени pi на своего пользователя Raspberry Pi (и путь к ключу ниже).
User=pi
Environment=AUTOSSH_GATETIME=0
ExecStart=/usr/bin/autossh -M 0 -N \
-o ServerAliveInterval=30 -o ServerAliveCountMax=3 -o ExitOnForwardFailure=yes \
-i /home/pi/.ssh/id_tunnel \
-R 9000:localhost:8000 tunnel@186.246.51.17
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target