Правки локального размещения дева, перенос тунеля в контейнер

This commit is contained in:
2026-06-17 04:27:11 +03:00
parent b04fbb2e17
commit 7e8b748caf
14 changed files with 249 additions and 152 deletions
+12 -10
View File
@@ -187,20 +187,22 @@ docker compose -f docker-compose.test.yml down -v # остановить и с
## Домен и публикация
Публичные адреса отдаёт **VPS-привратник** (Caddy + HTTPS твоими сертификатами), а
приложение само открывает к нему SSH-туннель (дома белого IP нет — CGNAT):
приложение само открывает к нему SSH reverse-туннель (дома белого IP нет — CGNAT).
У **test/prod** туннель — **отдельный контейнер** в их `docker-compose`, и портов на хост
они не публикуют (доступны только через домен):
| | домен | источник | туннель |
| | домен | как выставляется | слот VPS |
|---|---|---|---|
| prod | `forbiddenstars.ru` | Pi, `app:8000` | autossh, постоянно (VPS:9000) |
| dev/test | `forbidden-stars.ru` | ПК, vite:5173 / app:8080 | `ssh -R`, по требованию (VPS:9001) |
| prod | `forbiddenstars.ru` | туннель-контейнер (постоянно) → `app:8000` | 9000 |
| test | `forbidden-stars.ru` | туннель-контейнер → `app:8000` | 9001 |
| dev | `forbidden-stars.ru` | `run.ps1` при `LOCAL_PUBLIC=vps` → `localhost:5173` | 9001 |
- Прод и dev/test на **разных доменах** → могут работать одновременно. Dev и test делят
слот `9001` — по очереди.
- Публикация локалки: в `.env` поставить `LOCAL_PUBLIC=vps` и запустить `run.ps1` — лаунчер
сам поднимет SSH-туннель. `LOCAL_PUBLIC=local` — только localhost.
- Прод (9000) и dev/test (9001) на **разных слотах/доменах** → прод и (dev|test) работают
одновременно. Dev и test делят слот 9001 → по очереди.
- Dev по умолчанию только на localhost; `LOCAL_PUBLIC=vps` + `run.ps1` выставляет его на домен.
- `COOKIE_SECURE` выводится автоматически (HTTPS-домен ⇒ Secure-cookie; dev+localhost ⇒ нет).
- Пошаговая настройка — в [`deploy/`](deploy/README.md): `vps/` (Caddy, сертификаты, туннель-юзер),
`pi/` (Docker-приложение + autossh-служба).
- Пошаговая настройка — в [`deploy/`](deploy/README.md): `vps/` (Caddy, сертификаты, юзер `tunnel`),
`pi/` (app + туннель в Docker), образ туннеля — `deploy/tunnel/`. Ключ — `deploy/tunnel/id_tunnel`.
## Дополнения и фракции