Initial commit

This commit is contained in:
poignatov
2025-12-29 20:01:55 +03:00
commit 4f8a793377
63 changed files with 13655 additions and 0 deletions

81
BUILD_INSTRUCTIONS.md Normal file
View File

@@ -0,0 +1,81 @@
# Инструкция по сборке единого Docker образа
Этот проект содержит единый Dockerfile для сборки frontend и backend в один образ.
## Структура
- `Dockerfile` - единый Dockerfile для сборки frontend и backend
- `nginx-unified.conf` - конфигурация nginx для единого образа
- `supervisord.conf` - конфигурация supervisor для запуска nginx и backend
- `build-and-save.sh` - скрипт для сборки и сохранения в tar (Linux/Mac)
- `build-and-save.ps1` - скрипт для сборки и сохранения в tar (Windows PowerShell)
## Сборка образа
### Linux/Mac:
```bash
./build-and-save.sh
```
### Windows PowerShell:
```powershell
.\build-and-save.ps1
```
### Вручную:
```bash
# Сборка образа
docker build -t play-life-unified:latest .
# Сохранение в tar
docker save play-life-unified:latest -o play-life-unified.tar
```
## Загрузка образа на другой машине
```bash
docker load -i play-life-unified.tar
```
## Запуск контейнера
```bash
docker run -d \
-p 80:80 \
--env-file .env \
--name play-life \
play-life-unified:latest
```
## Переменные окружения
Создайте файл `.env` на основе `env.example` с необходимыми переменными:
- `DB_HOST` - хост базы данных (по умолчанию: localhost)
- `DB_PORT` - порт базы данных (по умолчанию: 5432)
- `DB_USER` - пользователь БД
- `DB_PASSWORD` - пароль БД
- `DB_NAME` - имя БД
- `TELEGRAM_BOT_TOKEN` - токен Telegram бота (опционально)
- `TELEGRAM_CHAT_ID` - ID чата Telegram (опционально)
- `TELEGRAM_WEBHOOK_BASE_URL` - базовый URL для webhook (опционально)
- `TODOIST_WEBHOOK_SECRET` - секрет для Todoist webhook (опционально)
**Важно:** Backend внутри контейнера всегда работает на порту 8080. Nginx проксирует запросы с порта 80 на backend.
## Проверка работы
После запуска контейнера:
- Frontend доступен по адресу: `http://localhost`
- API доступен через nginx: `http://localhost/api/...`
- Admin панель: `http://localhost/admin.html`
## Логи
Логи доступны через supervisor:
```bash
docker exec play-life cat /var/log/supervisor/backend.out.log
docker exec play-life cat /var/log/supervisor/nginx.out.log
```