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:
184
DOCKER_QUICKSTART.md
Normal file
184
DOCKER_QUICKSTART.md
Normal 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`
|
||||
Reference in New Issue
Block a user