diff --git a/Dockerfile b/Dockerfile
index a03395a..93c8000 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,58 +1,30 @@
-# Multi-stage build для оптимизации размера образа
-
-# Stage 1: Build
-FROM node:20-alpine AS builder
+# syntax=docker/dockerfile:1
+# ---------- Build stage ----------
+FROM node:20-bookworm-slim AS builder
WORKDIR /app
-# Копировать package files
-COPY package*.json ./
+COPY package.json package-lock.json ./
+RUN npm install
-# Установить зависимости
-RUN npm ci --only=production
-
-# Копировать исходники
COPY . .
-
-# Собрать проект
RUN npm run build
-# Stage 2: Runtime
-FROM node:20-alpine
-
+# ---------- Runtime stage ----------
+FROM node:20-bookworm-slim
WORKDIR /app
-# Установить dumb-init для правильной обработки сигналов
-RUN apk add --no-cache dumb-init
+ENV NODE_ENV=production \
+ WRANGLER_SEND_METRICS=false
-# Создать пользователя без root
-RUN addgroup -g 1001 -S nodejs && \
- adduser -S nodejs -u 1001
+# Copy everything from builder (includes node_modules, dist, migrations, etc.)
+COPY --from=builder /app /app
-# Копировать зависимости из builder
-COPY --from=builder --chown=nodejs:nodejs /app/node_modules ./node_modules
-COPY --from=builder --chown=nodejs:nodejs /app/dist ./dist
-COPY --from=builder --chown=nodejs:nodejs /app/package.json ./
-COPY --from=builder --chown=nodejs:nodejs /app/wrangler.jsonc ./
-COPY --from=builder --chown=nodejs:nodejs /app/migrations ./migrations
-COPY --from=builder --chown=nodejs:nodejs /app/seed.sql ./
+RUN chmod +x /app/docker-entrypoint.sh
-# Создать директорию для локальной БД
-RUN mkdir -p .wrangler/state/v3/d1 && \
- chown -R nodejs:nodejs .wrangler
-
-# Переключиться на непривилегированного пользователя
-USER nodejs
-
-# Открыть порт
EXPOSE 3000
-# Health check
-HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \
- CMD wget --quiet --tries=1 --spider http://localhost:3000 || exit 1
+# Persist D1 SQLite data and seed marker between restarts
+VOLUME ["/data"]
-# Запуск с dumb-init
-ENTRYPOINT ["dumb-init", "--"]
-
-# Команда запуска
-CMD ["sh", "-c", "npm run db:reset && npx wrangler pages dev dist --d1=webapp-production --local --ip 0.0.0.0 --port 3000"]
+ENTRYPOINT ["/app/docker-entrypoint.sh"]
diff --git a/HOTFIX_v4.1.24.md b/HOTFIX_v4.1.24.md
deleted file mode 100644
index a1b9514..0000000
--- a/HOTFIX_v4.1.24.md
+++ /dev/null
@@ -1,194 +0,0 @@
-# 🔥 HOTFIX v4.1.24 - ARVE ПОЛЯ НЕ СОХРАНЯЛИСЬ
-
-**Дата**: 2026-01-15
-**Версия**: v4.1.24 FINAL
-**Приоритет**: CRITICAL 🔥
-
----
-
-## 🚨 **КРИТИЧНАЯ ПРОБЛЕМА**
-
-### **Симптомы:**
-- ❌ Бухгалтер не может добавить номер счёта (arve_makstud)
-- ❌ Не работает галочка "Arve makstud" (arve_checked)
-- ❌ При создании/редактировании записей эти поля просто не сохраняются
-
-### **Причина:**
-**Backend не включал поля `arve_checked` и `arve_makstud` в SQL запросы!**
-
-Поля были в форме, отправлялись с фронтенда, но backend **игнорировал их полностью**.
-
----
-
-## 🔧 **РЕШЕНИЕ**
-
-### **Файл:** `src/index.tsx`
-
-#### **1. POST /api/records - добавление записи**
-
-**Было (строка 196-207):**
-```typescript
-const result = await c.env.DB.prepare(`
- INSERT INTO production_records (
- month, year, client_name, type, offer_number, work_number,
- quantity, color, notes, problems, installer, price,
- created_by, updated_by
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-`).bind(
- data.month, data.year, data.client_name, data.type || null,
- data.offer_number, data.work_number, quantity, data.color || null,
- data.notes || null, data.problems || null, data.installer || null,
- price, userId, userId
-).run()
-```
-
-**Стало:**
-```typescript
-const arveChecked = data.arve_checked ? parseInt(data.arve_checked, 10) : 0
-
-const result = await c.env.DB.prepare(`
- INSERT INTO production_records (
- month, year, client_name, type, offer_number, work_number,
- quantity, color, notes, problems, installer, price,
- arve_checked, arve_makstud,
- created_by, updated_by
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-`).bind(
- data.month, data.year, data.client_name, data.type || null,
- data.offer_number, data.work_number, quantity, data.color || null,
- data.notes || null, data.problems || null, data.installer || null,
- price, arveChecked, data.arve_makstud || null,
- userId, userId
-).run()
-```
-
-#### **2. PUT /api/records/:id - обновление записи**
-
-**Было (строка 238-248):**
-```typescript
-await c.env.DB.prepare(`
- UPDATE production_records
- SET client_name = ?, type = ?, offer_number = ?, work_number = ?,
- quantity = ?, color = ?, notes = ?, problems = ?, installer = ?, price = ?,
- updated_by = ?, updated_at = CURRENT_TIMESTAMP
- WHERE id = ? AND deleted_at IS NULL
-`).bind(
- data.client_name, data.type || null, data.offer_number, data.work_number,
- quantity, data.color || null, data.notes || null, data.problems || null,
- data.installer || null, price, userId, id
-).run()
-```
-
-**Стало:**
-```typescript
-const arveChecked = data.arve_checked ? parseInt(data.arve_checked, 10) : 0
-
-await c.env.DB.prepare(`
- UPDATE production_records
- SET client_name = ?, type = ?, offer_number = ?, work_number = ?,
- quantity = ?, color = ?, notes = ?, problems = ?, installer = ?, price = ?,
- arve_checked = ?, arve_makstud = ?,
- updated_by = ?, updated_at = CURRENT_TIMESTAMP
- WHERE id = ? AND deleted_at IS NULL
-`).bind(
- data.client_name, data.type || null, data.offer_number, data.work_number,
- quantity, data.color || null, data.notes || null, data.problems || null,
- data.installer || null, price, arveChecked, data.arve_makstud || null,
- userId, id
-).run()
-```
-
----
-
-## 🧪 **ТЕСТИРОВАНИЕ**
-
-### **Test 1: Создать запись с arve полями ✅**
-
-```bash
-POST /api/records
-{
- "arve_checked": 1,
- "arve_makstud": "INV-2025-001"
-}
-
-Результат:
-✅ id: 56
-✅ arve_checked: 1
-✅ arve_makstud: INV-2025-001
-```
-
-### **Test 2: Обновить arve поля ✅**
-
-```bash
-PUT /api/records/56
-{
- "arve_checked": 0,
- "arve_makstud": "INV-2025-002"
-}
-
-Результат:
-✅ arve_checked: 0 → обновилось
-✅ arve_makstud: INV-2025-002 → обновилось
-```
-
----
-
-## 📦 **ФАЙЛЫ**
-
-**Изменённые файлы:**
-- `src/index.tsx` - endpoint POST /api/records (строки 196-207)
-- `src/index.tsx` - endpoint PUT /api/records/:id (строки 238-248)
-
-**Версия:**
-- `public/original.html` - v4.1.24
-
----
-
-## 🚀 **РАЗВЁРТЫВАНИЕ**
-
-### **ARM Synology:**
-
-```bash
-# 1. Остановить контейнер
-sudo docker-compose down
-
-# 2. Распаковать новый архив
-unzip aknaproff_production_v4.1.24_ARM_FINAL.zip
-
-# 3. Запустить с пересборкой
-cd backend
-sudo docker-compose up -d --build
-
-# 4. Проверить
-# - Создать новый ряд
-# - Ввести номер счёта в "Arve Nr"
-# - Поставить галочку "Arve makstud"
-# - Сохранить
-# - ✅ Поля должны сохраниться!
-```
-
----
-
-## ✅ **РЕЗУЛЬТАТ**
-
-- ✅ arve_checked сохраняется при создании
-- ✅ arve_makstud сохраняется при создании
-- ✅ arve_checked обновляется при редактировании
-- ✅ arve_makstud обновляется при редактировании
-- ✅ Бухгалтер может работать с полями счёта!
-
----
-
-## 📊 **ИСТОРИЯ ВЕРСИЙ**
-
-| Версия | Изменения |
-|--------|-----------|
-| v4.1.23 | Цена с запятой + проверка дат |
-| **v4.1.24** | **ИСПРАВЛЕНЫ ПОЛЯ СЧЁТА (arve)** 🔥 |
-
----
-
-**Статус**: ✅ ГОТОВО
-**Тестирование**: ✅ ПРОЙДЕНО
-**Критичность**: 🔥 ВЫСОКАЯ
-**Развёртывание**: СРОЧНО РЕКОМЕНДУЕТСЯ
diff --git a/HOTFIX_v4.1.26.md b/HOTFIX_v4.1.26.md
new file mode 100644
index 0000000..22f07dd
--- /dev/null
+++ b/HOTFIX_v4.1.26.md
@@ -0,0 +1,103 @@
+# 🔧 HOTFIX v4.1.26 - PRODUCTION FILES & DB
+
+**Дата**: 2026-01-18
+**Версия**: v4.1.26 FINAL
+**Приоритет**: CRITICAL 🔥
+
+---
+
+## 🚨 **КРИТИЧНЫЕ ИЗМЕНЕНИЯ**
+
+### **1. Рабочие файлы Docker**
+Использованы ПРОВЕРЕННЫЕ рабочие файлы:
+- ✅ `Dockerfile` - рабочий multi-stage build
+- ✅ `docker-compose.yml` - рабочая конфигурация
+- ✅ `docker-entrypoint.sh` - правильный entrypoint script
+
+### **2. Правильное имя БД**
+Во ВСЕХ конфигурациях установлено:
+```
+D1_BINDING=aknaproff-db
+```
+
+### **3. Production БД**
+Включена рабочая БД:
+- **Файл**: `data/aknaproff-db.sqlite`
+- **Записей**: 67 production records
+- **Размер**: 212 KB
+
+---
+
+## 📦 **СТРУКТУРА АРХИВА**
+
+```
+backend/
+├── Dockerfile # Multi-stage build (рабочий)
+├── docker-compose.yml # Конфигурация (рабочая)
+├── docker-entrypoint.sh # Entrypoint script (рабочий)
+├── wrangler.jsonc # D1_BINDING=aknaproff-db
+├── package.json # NPM скрипты
+├── src/ # Backend код
+├── public/ # Frontend
+├── dist/ # Built files
+├── migrations/ # D1 миграции
+├── seed.sql # Seed данные
+└── data/
+ └── aknaproff-db.sqlite # PRODUCTION БД (67 записей)
+```
+
+---
+
+## 🚀 **РАЗВЁРТЫВАНИЕ НА SYNOLOGY**
+
+```bash
+# 1. Остановить контейнер
+sudo docker-compose down
+
+# 2. Распаковать архив
+unzip aknaproff_production_v4.1.26_ARM_FINAL.zip
+
+# 3. Перейти в backend
+cd backend
+
+# 4. ВАЖНО: Проверить что БД на месте
+ls -lh data/aknaproff-db.sqlite
+# Должно быть: 212K
+
+# 5. Запустить с пересборкой
+sudo docker-compose up -d --build
+
+# 6. Проверить логи
+sudo docker-compose logs -f
+
+# 7. Проверить БД
+curl http://localhost:8180/api/records?month=1&year=2025
+```
+
+---
+
+## ✅ **ЧТО ИСПРАВЛЕНО**
+
+1. ✅ Использованы РАБОЧИЕ Docker файлы
+2. ✅ Имя БД = `aknaproff-db` во всех конфигах
+3. ✅ Включена production БД (67 записей)
+4. ✅ Удалены `.env` файлы (не нужны)
+5. ✅ Поля arve работают (v4.1.24)
+6. ✅ Все предыдущие исправления сохранены
+
+---
+
+## 📊 **ИСТОРИЯ ВЕРСИЙ**
+
+| Версия | Изменения |
+|--------|-----------|
+| v4.1.24 | Исправлены поля счёта (arve) |
+| v4.1.25 | Попытка обратной совместимости |
+| **v4.1.26** | **PRODUCTION FILES + DB** 🔥 |
+
+---
+
+**Статус**: ✅ ГОТОВО
+**Тестирование**: ✅ ПРОВЕРЕНО
+**Критичность**: 🔥 ВЫСОКАЯ
+**Развёртывание**: ИСПОЛЬЗУЙТЕ ТОЛЬКО ЭТУ ВЕРСИЮ
diff --git a/dist/original.html b/dist/original.html
index 72f82fc..c420c0d 100644
--- a/dist/original.html
+++ b/dist/original.html
@@ -1225,7 +1225,7 @@
-
+