Znymkari · Лабораторія
←

Документация

Архитектура Статус Контекст История Продакшн Ноут Олега VPS COM Oleg COM Pavel Коммиты VPS Коммиты Цеха

PRODUCTION.md — чек-лист до продакшена

Живой документ. Статусы: - ✅ — сделано - 🚧 — в работе / частично - 🔜 — ждёт внешнего (оборудование, регистрация, решение) - ❌ — не сделано


1. Оборудование и размещение

1.1. Выбранная схема — B: VPS + ноут с белым IP ✅

VPS — «витрина»: - Django + gunicorn + nginx + PostgreSQL. - Статика + превью 600px + постеры видео + 10-сек mp4. - Оплата (LiqPay / Fondy). - Telegram-бот — один. - Модель DownloadToken. - SSL Let's Encrypt. - Домен znymkari.com → A → 128.140.81.213.

Ноут Олега — «склад + цех» (белый IP): - Оригиналы: единое хранилище на HDD. SSD — под ОС, БД, venv, превью. - Пользователи: olegarh (uid 1000), deploy (uid 1001, sudo NOPASSWD). - Hostname oleg-home, ядро 7.0.0-38. - Сеть: Wi-Fi wlp8s0, LAN 192.168.31.87 (резерв DHCP). - Внешний SSH: 193.176.249.24:22022 → 192.168.31.87:22. - Стек: Python 3.14, PostgreSQL 18, nginx 1.28, ffmpeg 8.0.1. - STORAGE: /mnt/hdd/znymkari-storage (рабочая копия). - FESTIVALS: /mnt/hdd/zny-festivals (оригиналы, источник импорта). - HEAP: /mnt/hdd/zny-heap (свалка). - Samba: юзер olegarh, порт 445, LAN 192.168.31.0/24. - Шары: zny-festivals, zny-heap. - Локальный Django + PostgreSQL (znymkari_local, uk_UA.UTF-8). - Два проекта: web/ и znymkari-data/. - systemd: gunicorn-oleg.service, 0.0.0.0:8000. - nginx на :443 — отдача файлов по одноразовой ссылке (план). - Домен files.znymkari.com → A → 193.176.249.24 (план). - Ноут = мини-UPS (2–4 ч).

Что VPS НЕ делает: - ❌ Не хранит оригиналы. - ❌ Не проксирует скачивание. - ❌ Не запускает импорт.

1.2. Оборудование для дома

1.3. VPS — ✅ создан

1.4. Сеть между VPS и ноутом


2. Домен и DNS


3. Регистрации и аккаунты

3.1. Обязательные

3.2. Опциональные


4. Оплата

4.1. Провайдер

4.2. Логика (Этап 3)

4.3. Тест


5. Уведомления

5.1. Email

5.2. SMS

5.3. Telegram


6. Инфраструктура

6.1. Хранилище и отдача

Корни: - ✅ STORAGE_ROOT — на ноуте, /mnt/hdd/znymkari-storage/ (единое хранилище). - ✅ FESTIVALS_ROOT — на ноуте, /mnt/hdd/zny-festivals/ (оригиналы). - ✅ PREVIEW_ROOT — на ноуте /mnt/ssd/..., на VPS /srv/previews/.

Ноут — публикация (план): - ✅ Проброс 22022 → 192.168.31.87:22. - 🔜 Проброс 443 → 192.168.31.87:443. - 🔜 DNS: files.znymkari.com → A → 193.176.249.24. - 🔜 Firewall ноута: 22, 80, 443, WireGuard. - 🔜 nginx ноута слушает :443 с auth_request. - 🔜 auth_request → http://10.0.0.1:8000/internal/check-token/. - 🔜 Let's Encrypt на files.znymkari.com. - 🔜 fail2ban.

Модель DownloadToken (VPS): - ❌ is_valid(). - ❌ Инкремент при auth_request. - ❌ Админка с фильтрами.

60%-превью (план): - ❌ Поля Media.width/height. - ❌ Endpoint /catalog/api/client/media/<id>/large/. - ❌ Internal API /internal/large-preview/ на ноуте. - ❌ Кеш MEDIA_LARGE_CACHE/<id>.jpg. - ❌ Кнопка «Проверить качество» в лайтбоксе.

Хранилище (единое, без HOT/COLD): - ✅ content_shop_archive → znymkari-storage (2026-10-16). - 🔜 Перенос на второй HDD при заполнении (Олег планирует покупку). - 🔜 RSYNC-бэкап znymkari-storage на второй HDD.

6.2. Бэкапы

6.3. Мониторинг и логи

6.4. Безопасность


7. Код — что доделать

7.0. znymkari-data — цех импорта

7.1. Транспорт VPS ↔ ноут

7.2. Критично

7.3. Очень желательно

7.4. Желательно

7.5. Стратегическое


8. Инструкции

8.1. Для себя

8.2. Для клиента

8.3. Внутренняя документация


9. Данные

9.1. Контент

9.2. Прайс

9.3. Импорт


10. Юридическое


11. Развёртывание

11.1. VPS — ✅

11.1-бис. Ноут Олега

11.2. Проверка после развёртывания

11.3. Финальный чек-лист


12. Пост-запуск

Первая неделя

Первый месяц

Плановое


Открытые вопросы