Прод на Pi: качественный единый compose, все настройки в .env
- docker-compose.yml: слот туннеля параметризован (${VPS_TUNNEL_PORT:-9000}), VPS_TUNNEL_HOST
стал обязательным (${...:?}), лимиты ресурсов из .env (APP_MEM_LIMIT/APP_CPUS),
stop_grace_period 30s (чек-пойнт WAL SQLite), security_opt no-new-privileges на обоих сервисах;
healthcheck/логирование/тома сохранены (имена томов не менялись — данные не осиротеют).
- .env.example: VPS_TUNNEL_PORT по умолчанию НЕ задаётся (каждый контур берёт свой слот:
dev→9001, prod→9000, test→9001); добавлены ADMIN_NICKNAME, DEV/PROD_ACHIEVEMENTS_DIR,
APP_MEM_LIMIT/APP_CPUS.
- deploy/pi/README: чек-лист .env для Pi; запуск одним `docker compose up -d --build`.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+11
-3
@@ -15,14 +15,22 @@ ssh-copy-id -i deploy/tunnel/id_tunnel.pub tunnel@186.246.51.17
|
||||
```
|
||||
|
||||
## 2. .env
|
||||
Все настройки приложения и туннеля — в одном `.env` (контейнер форсит `APP_ENV=production`):
|
||||
```bash
|
||||
cp .env.example .env # заполни секреты; APP_ENV контейнер форсит в production
|
||||
cp .env.example .env
|
||||
```
|
||||
Проверь, что заданы параметры VPS (их читает сервис `tunnel`):
|
||||
Минимально заполнить на Pi:
|
||||
```
|
||||
VPS_TUNNEL_HOST=186.246.51.17
|
||||
SECRET_KEY=... # python -c "import secrets;print(secrets.token_urlsafe(48))"
|
||||
ADMIN_USERNAME=... # логин/пароль секретной админки
|
||||
ADMIN_PASSWORD=...
|
||||
TELEGRAM_BOT_TOKEN=... # бот @BotFather; /setdomain → forbiddenstars.ru
|
||||
TELEGRAM_BOT_USERNAME=...
|
||||
VPS_TUNNEL_HOST=186.246.51.17 # читает сервис tunnel
|
||||
VPS_TUNNEL_USER=tunnel
|
||||
```
|
||||
`VPS_TUNNEL_PORT` задавать не нужно — прод-контейнер по умолчанию берёт слот **9000**.
|
||||
Ресурсы (`APP_MEM_LIMIT`/`APP_CPUS`) и оффсайт-бэкап (`BACKUP_*`) — по желанию.
|
||||
|
||||
## 3. Запуск
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user