Commit Graph

  • 24adb8ebe9 орфография feature/containerize-project erjemin 2026-04-01 18:35:10 +03:00
  • 6093dc2021 fin v0.0.1 erjemin 2026-04-01 17:42:21 +03:00
  • 2a37e24242 mod: все переменные .env читаются из оружения. erjemin 2026-04-01 16:58:26 +03:00
  • c529a74715 mod: БД теперь создаётся в /app/database/ erjemin 2026-04-01 16:04:26 +03:00
  • 5f4769d10f mad: рабочий конфиг nginx (прокси) erjemin 2026-04-01 14:33:33 +03:00
  • 261b72b04a del: иконка старая erjemin 2026-04-01 02:27:46 +03:00
  • b128bbd79e feat: обновлены иконки и шаблон - Добавлены новые иконки в public (apple-touch-icon, favicon.svg, favicon.ico, favicon-96x96) - Обновлен base.jinja для подключения иконок из корня public - Удалены старые иконки из staticfiles/img (теперь используются из public) - Упрощены метаданные в шаблоне (удалены устаревшие мета-теги) erjemin 2026-04-01 02:26:27 +03:00
  • b97e82bcbb nginx: добавлены расширенное логирование для CrowdSec и rate-limiting для DDoS защиты - Расширенное логирование с форматом 'main' (IP, время, метод, URL, статус) - Буферизированные логи с 5-сек очисткой для оптимизации дискового I/O - Rate-limiting: 100 req/s на IP, burst=200 для легитимного трафика - Логирование статики и медиа включено для анализа попыток сканирования - Отключен log_not_found для уменьшения размера логов (404 всё равно в error_log) - Добавлено уточнение что WhiteNoise уже сжимает статику (gzip в nginx не нужен) erjemin 2026-04-01 02:12:33 +03:00
  • 0b3eb517fe docs: добавлены SEO и LLM файлы для сайта (robots.txt, sitemap.xml, llms.md) Добавлены три важных файла в папку public: - robots.txt: инструкции для поисковых ботов - sitemap.xml: карта сайта с оптимизированной частотой обновления - llms.md: информация для LLM систем erjemin 2026-04-01 01:18:33 +03:00
  • 711b34af3d refactor: использовать image из реестра вместо локальной сборки в production - Заменен build: ... на image: git.cube2.ru/erjemin/2024-test-rosmorport:latest - В production образ должен быть собран в CI/CD и загружен из реестра - Watchtower будет автоматически обновлять контейнер при выходе нового image - Это более правильный и безопасный подход для production erjemin 2026-04-01 01:00:23 +03:00
  • 20d78194d2 fix: исправления для CI/CD сборки - Исправлен warning: FROM ... AS builder (заглавные буквы согласно Dockerfile best practices) - Убран multiplatform (linux/arm64) и остановлены на linux/amd64 для надежности (arm64 добавим позже когда система будет стабильной) - Увеличен timeout с 1800 до 3600 сек (30 до 60 минут) для надежности при медленном интернете - Это должно решить проблему '499 Client Closed Request' при push в реестр Gitea erjemin 2026-04-01 00:54:07 +03:00
  • 37719ed31e fix: разрешить копирование config/nginx в Docker (нужен для production) - Удалено исключение config/ из .dockerignore - config/nginx/pet-clones--external-nginx.conf требуется для Docker образа - Используется в docker-compose.prod.yml для настройки nginx reverse-proxy erjemin 2026-04-01 00:35:44 +03:00
  • a9fb77c195 feat: финальная конфигурация production Docker для RosmorPort Обновлен Dockerfile: - Исправлены права доступа пользователя appuser (создание перед COPY) - Правильный порядок операций (USER -> COPY -> mkdir) - Оптимизация для production (workers=1, timeout=120, max-requests=200) - collectstatic и удаление лишних файлов статики при build Обновлен docker-compose.prod.yml: - Переименован контейнер в petclones-site--backend - Production переменные окружения (DEBUG=False) - Volumes для media, database и nginx конфигов - Gunicorn с параметрами для production - Watchtower для автоматического обновления образов - Ограничение ресурсов (0.25 CPU, 512M RAM) - JSON logging с ротаци??бновлен Dockerfile: - Исправлены права доступа пользователя appuser (создание перед COPY?? Исправлены пр?? Правильный порядок операций (USER -> COPY -> mkdir) - Оптимизация для prod erjemin 2026-04-01 00:08:53 +03:00
  • 1b0fa5e500 build: игнорировать copilotDiffState.xml (локальное состояние GitHub Copilot IDE) - Удален copilotDiffState.xml из git истории - Добавлено правило в .gitignore для игнорирования этого файла - Это локальный служебный файл PyCharm, специфичный для машины разработчика - Не должен попадать в репозиторий и загрязнять git history erjemin 2026-04-01 00:04:12 +03:00
  • bbf35c0c24 mod: убрал jinja2 (мусор в комментариях) erjemin 2026-03-31 23:55:21 +03:00
  • 08668fee6d del: ini-файл uWSGI не нужен. В контейнере используется gunicorn erjemin 2026-03-31 22:33:31 +03:00
  • d846542e34 docs: обновлен about.jinja с информацией о проекте Добавлена информация: - История проекта РосМорПорт с 2004 года - Ссылка на репозиторий (https://git.cube2.ru/erjemin/2024-test-rosmorport) - Описание переделки в 2026 году для развертывания в Docker при переносе на новый хостинг erjemin 2026-03-31 19:19:20 +03:00
  • 792d152be2 feat: оптимизация Docker контейнера для разработки Обновлен Dockerfile с двухэтапной сборкой, экспортом зависимостей через poetry, сборкой статики и удалением лишних файлов (экономия ~20МБ). Обновлен docker-compose.yml с привязкой к localhost для безопасности. Обновлен .dockerignore для исключения ненужных файлов (source maps, RTL CSS, TTF). Добавлены таймауты SQLite в settings.py. Минимальные параметры Gunicorn: 1 worker, timeout 30s, max-requests 100. Тестировано и работает на http://localhost:8040 erjemin 2026-03-31 18:57:33 +03:00
  • 6e7a4c52e0 feat: Добавлена поддержка WhiteNoise для обслуживания статических файлов - Конфигурация collectstatic в settings.py: * STATIC_ROOT = staticfiles/ для собранных файлов * STATICFILES_DIRS указывает на public/static * CompressedManifestStaticFilesStorage для production * WhiteNoiseMiddleware в MIDDLEWARE * WHITENOISE_ROOT для подачи файлов из /public - Исправлены пути в settings.py для правильной работы БД - Обновлена конфигурация urls.py для отдачи статики - Добавлена зависимость whitenoise ^6.6.0 в pyproject.toml - Обновлен .gitignore (раскомментирована staticfiles/) Статика работает в dev режиме и готова для production. erjemin 2026-03-31 16:51:48 +03:00
  • 8385e04103 refactor: Удалена ненужная папка logs Причины: - В production логи nginx хранятся в системной папке хоста - В dev образ постоянно перестраивается, логи не накапливаются - Логи не нужны для хранения в контейнере Удалено: - Папка logs из корня проекта - mkdir -p /app/logs из Dockerfile - Монтирование logs из docker-compose.yml и docker-compose.prod.yml - Переменная TOUCH_RELOAD из settings.py и .env файлов Результат: более clean и минималистичная структура проекта erjemin 2026-03-31 13:45:32 +03:00
  • 55980a0659 fix: Исправлен путь к БД SQLite - используется абсолютный путь - Проблема: при запуске manage.py из rosmorport_tsts/ относительный путь database/db.sqlite3 не работал - Решение: теперь путь всегда строится как абсолютный от PROJECT_ROOT - БД корректно находится в database/db.sqlite3 в корне проекта - Протестировано: проект запускается без ошибок, БД содержит 17 записей из production Структура БД скопирована с production сервера. erjemin 2026-03-31 01:42:18 +03:00
  • ef80a66b69 refactor: Реорганизация структуры для контейнеризации - database/ папка в корне проекта для БД - public/ для статики и медиа (монтируются отдельно) - Обновлены docker-compose файлы с правильными томами erjemin 2026-03-31 01:25:15 +03:00
  • 493de32998 security: Переведена админ панель на переменную окружения ADMIN_URL - Добавлена переменная окружения ADMIN_URL для динамического управления URL админки - Дефолтное значение в коде: 'admin/' (стандартное, безопасное) - Пользователь может переопределить через .env для скрытия в production - Примечание: никогда не коммитьте реальные значения секретов в .env.example Это позволяет: - Легко скрывать админку от автоматических сканеров - Использовать разные URL для dev/production - Не хранить секреты в коде erjemin 2026-03-31 00:48:34 +03:00
  • 31cd78079a fix: Исправлена раздача статических файлов в DEV режиме - Исправлены пути STATICFILES_DIRS и MEDIA_ROOT (они должны быть относительно корня проекта, а не settings.py) - Добавлена раздача STATIC_URL в urls.py для DEBUG режима - Проверено что все статические файлы (CSS, JS) отдаются с кодом 200 Использование: - Media: Не используется (нет FileField/ImageField в моделях) - Static: Используется (CSS, JS, images в public/static) Статика теперь корректно работает в dev окружении. erjemin 2026-03-31 00:31:32 +03:00
  • 1a2865bae7 refactor: Облегчение pyproject.toml для production - Удалены dev зависимости (pytest, black, ruff, mypy, ipython и т.д.) - Оставлены только необходимые для production пакеты - poetry.lock сокращен с 63KB до 4KB - Проект работает нормально (django check passed) Для локальной разработки можно установить нужные инструменты отдельно при необходимости. erjemin 2026-03-31 00:18:51 +03:00
  • d9e8c2d8bd feat: Настройка проекта для локальной разработки - Добавлена конфигурация через poetry (pyproject.toml + poetry.lock) - Переделана система конфигурации Django с .env переменными - Добавлен файл .env для локальной разработки (SQLite БД) - Обновлен settings.py для работы с переменными окружения - Создана документация по локальной разработке (DEVELOPMENT.md) - Подготовлена инфраструктура для Docker (Dockerfile, docker-compose.yml) - Обновлен .gitignore для Python/Django проекта Проект работает локально с миграциями и админ пользователем (admin/1234). erjemin 2026-03-31 00:09:46 +03:00
  • a007337f75 add: login/pwd main e-serg 2024-11-17 15:46:21 +03:00
  • c91d5f00b0 Ссылка на деплой https://pet-clones.cocorico.ru/ e-serg 2024-11-17 15:44:16 +03:00
  • 1a52626440 feedback на решение задания e-serg 2024-04-24 18:09:49 +03:00
  • d8b1af4cda Note: CRLF in uWSGI.ini e-serg 2024-04-18 11:09:10 +03:00
  • aacbe7e013 пример заполнения секретного файла e-serg 2024-04-15 19:34:17 +03:00
  • 9d8a1bdf6b config nginx (w ssl) e-serg 2024-04-15 19:27:18 +03:00
  • a8c156e25d . corrected for prod e-serg 2024-04-15 19:17:58 +03:00
  • 5975923cbb config uwsgi (tested) e-serg 2024-04-15 19:16:50 +03:00
  • 3de98e01b3 config nginx (w/o ssl) e-serg 2024-04-15 19:16:22 +03:00
  • e8c8cb393f .cp1251->utf8 e-serg 2024-04-15 17:41:27 +03:00
  • 65042dcebc .красота e-serg 2024-04-15 14:09:08 +03:00
  • 04c204fc57 ERR FIX: наложение фильтров 2 e-serg 2024-04-15 13:34:00 +03:00
  • 8cbbd15829 ERR FIX: наложение фильтров e-serg 2024-04-15 13:23:04 +03:00
  • d1839a8005 +admin security e-serg 2024-04-15 13:00:41 +03:00
  • 46b0a08501 .fastes default sort e-serg 2024-04-15 12:39:45 +03:00
  • 043e7b4679 fix: security e-serg 2024-04-15 06:59:16 +03:00
  • ec8c1ef789 . e-serg 2024-04-15 06:36:59 +03:00
  • f9c3dd3323 WARNING: не работает uwsgi (поменялись форматы конфигов) и пришлось запустить как proxy e-serg 2024-04-15 06:35:32 +03:00
  • 6f1d997adc fix for prod e-serg 2024-04-15 04:26:47 +03:00
  • 31c7ae6a40 Пакеты окружения PROD e-serg 2024-04-15 03:55:45 +03:00
  • 43cd7367ca ADD: nginx config w.ssl -- checked prod e-serg 2024-04-15 03:52:50 +03:00
  • bff6d2fde7 ADD: nginx config -- checked prod e-serg 2024-04-15 03:42:30 +03:00
  • dca0cca628 нулевой gif e-serg 2024-04-15 03:07:53 +03:00
  • 3978e75d1b .fix e-serg 2024-04-15 02:54:29 +03:00
  • 149093c715 ADD: Отчёты e-serg 2024-04-15 02:52:11 +03:00
  • e419e46700 Изменено расположение шаблонов 3 e-serg 2024-04-14 23:48:40 +03:00
  • 66e867794f Изменено расположение шаблонов 2 e-serg 2024-04-14 23:37:02 +03:00
  • b0c9722d10 Изменено расположение шаблонов e-serg 2024-04-14 23:35:23 +03:00
  • c0864ba183 +чуть меньше трафика e-serg 2024-04-14 23:14:11 +03:00
  • 51aceebf24 ADD: About+ e-serg 2024-04-14 23:13:45 +03:00
  • 2b4852ab5b ADD: About e-serg 2024-04-14 23:07:41 +03:00
  • 92aa867e0f ADD: данные записываются в БД e-serg 2024-04-14 22:07:43 +03:00
  • b449e6f4d9 ADD: ввод данных e-serg 2024-04-14 20:39:45 +03:00
  • fe9c554fb1 .красота+++ e-serg 2024-04-14 17:46:57 +03:00
  • 288688fa5c .красота++ e-serg 2024-04-14 17:05:53 +03:00
  • 89f6542f8c .красота++ e-serg 2024-04-14 17:04:25 +03:00
  • c7895dc482 .красота+ e-serg 2024-04-14 16:43:44 +03:00
  • c67cef0ffa .красота e-serg 2024-04-14 16:22:16 +03:00
  • e55a4d5f8f + pytils-safe для транслитерации e SN e-serg 2024-04-14 16:21:51 +03:00
  • e2f6c1f328 .красота+ e-serg 2024-04-14 16:19:38 +03:00
  • 5d6f56e9ec ADD: Models & Admin e-serg 2024-04-14 16:15:15 +03:00
  • 5db00f4028 .немного больше безопасности (защита пароля от: autocomplete; сохранения в браузере; манипуляций с помощью js) e-serg 2024-04-14 10:38:18 +03:00
  • c51c3be058 немного больше безопасности (защита пароля от: autocomplete; сохранения в браузере; манипуляций с помощью js) e-serg 2024-04-14 00:55:08 +03:00
  • fc420f7bce . e-serg 2024-04-14 00:39:07 +03:00
  • b58d98f2eb add main-menu (draft) e-serg 2024-04-14 00:38:52 +03:00
  • 401744a1aa +countdown e-serg 2024-04-14 00:37:25 +03:00
  • 7f83941de7 .. e-serg 2024-04-13 22:48:18 +03:00
  • bc3118e749 . e-serg 2024-04-13 22:44:25 +03:00
  • 709b4141a6 for uwsgi (передергивать uwsgi) e-serg 2024-04-13 22:35:26 +03:00
  • 9c88d1be60 redy: bad authentication e-serg 2024-04-13 22:34:46 +03:00
  • 33cb16af3f login/logout -- redy e-serg 2024-04-13 21:19:14 +03:00
  • c543cc2ecd fontawesome 6.5.2 (free, web) e-serg 2024-04-13 20:21:49 +03:00
  • a792ab4651 favicons e-serg 2024-04-13 20:16:48 +03:00
  • ab97ac2fd8 jQuery 3.7.1 e-serg 2024-04-13 14:07:17 +03:00
  • 2dfacf4b78 Bootstrap v5.3.3 e-serg 2024-04-13 14:01:14 +03:00
  • fe349e2f88 base settings e-serg 2024-04-13 13:02:35 +03:00
  • a60ae7d045 gitignore e-serg 2024-04-13 12:36:07 +03:00
  • 21f757caed . django init e-serg 2024-04-13 10:48:28 +03:00
  • 88bdca914c . init e-serg 2024-04-13 10:35:52 +03:00