v4.1.21: Реструктуризация проекта для Synology ARM

- Реструктуризация: src/ разбит на middleware/, utils/, repositories/ (удалены), routes/ (удалены)
- Добавлен src/original-html.ts — полный HTML с reportModal
- Добавлен src/index.tsx.backup — React-компонент с reportModal
- Миграции переименованы (0001_initial_schema.sql)
- Добавлена миграция 0018 (удалена позже)
- Docker: multi-stage build, wrangler.toml
- Frontend: public/static/app.js + style.css
- seed.sql добавлен
- Документация: CHANGELOG, CHANGES_v4.1.0-4.1.9, PROJECT_STRUCTURE
This commit is contained in:
Deploy Bot
2026-01-14 18:37:00 +02:00
parent 4898f5ec7f
commit 64403d6fd6
113 changed files with 19231 additions and 3084 deletions

184
DOCKER_QUICKSTART.md Normal file
View File

@@ -0,0 +1,184 @@
# 🚀 Docker Quick Start - AKNAPROFF Tootmine
## Быстрый запуск в 3 команды
### Development режим:
```bash
# 1. Перейти в папку проекта
cd /path/to/webapp
# 2. Запустить Docker Compose
docker-compose up
# 3. Открыть браузер
http://localhost:3000
```
**БД будет храниться в `.wrangler/state/v3/d1/webapp-production.sqlite`**
---
## Где хранится база данных?
### Development:
```
./webapp/.wrangler/state/v3/d1/webapp-production.sqlite ✅ На вашем диске!
```
### Production:
```
./webapp/data/db/webapp-production.sqlite ✅ На вашем диске!
```
**Важно:** БД НЕ в Docker volume, а в папке проекта!
---
## Основные команды
```bash
# Запустить
docker-compose up
# Запустить в background
docker-compose up -d
# Остановить
docker-compose down
# Посмотреть логи
docker-compose logs -f
# Зайти в контейнер
docker-compose exec webapp sh
# Бэкап БД
./backup.sh
```
---
## Production режим
```bash
# 1. Создать папку для БД
mkdir -p data/db
# 2. Build и запуск
docker-compose -f docker-compose.prod.yml up --build -d
# 3. Проверить логи
docker-compose -f docker-compose.prod.yml logs -f
```
**БД будет в `./data/db/webapp-production.sqlite`**
---
## Бэкап базы данных
```bash
# Автоматический бэкап
./backup.sh
# Ручной бэкап
cp .wrangler/state/v3/d1/webapp-production.sqlite \
backup-$(date +%Y%m%d).sqlite
```
Бэкапы сохраняются в папке `./backups/`
---
## Сброс базы данных
```bash
# Через Docker
docker-compose exec webapp npm run db:reset
# Или удалить и пересоздать
docker-compose down
rm -rf .wrangler/state/v3/d1
docker-compose up
```
---
## Troubleshooting
### Порт 3000 занят
```bash
# Убить процесс
fuser -k 3000/tcp
# Или изменить порт в docker-compose.yml
ports:
- "3001:3000"
```
### Контейнер не запускается
```bash
# Пересобрать без кэша
docker-compose down -v
docker-compose build --no-cache
docker-compose up
```
### БД не создаётся
```bash
# Зайти в контейнер и сбросить БД
docker-compose exec webapp sh
npm run db:reset
exit
```
---
## Полная документация
Смотрите **[DOCKER_GUIDE.md](DOCKER_GUIDE.md)** для подробной информации:
- Структура файлов
- Мониторинг
- Best practices
- Полный troubleshooting
---
## ✅ Проверка
После запуска проверьте:
1. **Приложение работает:**
```bash
curl http://localhost:3000
```
2. **БД создалась:**
```bash
ls -lh .wrangler/state/v3/d1/webapp-production.sqlite
```
3. **Health check OK:**
```bash
docker-compose ps
# Должно быть: (healthy)
```
4. **Демо-данные загружены:**
```bash
sqlite3 .wrangler/state/v3/d1/webapp-production.sqlite \
"SELECT COUNT(*) FROM production_records"
# Должно быть: 7
```
---
**🎉 Готово! AKNAPROFF работает в Docker с локальной БД!**
**URL:** http://localhost:3000
**Demo:** `admin` / `demo123` или **Public User** (без логина)
**БД:** `.wrangler/state/v3/d1/webapp-production.sqlite`