b128bbd79e
feat: обновлены иконки и шаблон - Добавлены новые иконки в public (apple-touch-icon, favicon.svg, favicon.ico, favicon-96x96) - Обновлен base.jinja для подключения иконок из корня public - Удалены старые иконки из staticfiles/img (теперь используются из public) - Упрощены метаданные в шаблоне (удалены устаревшие мета-теги)
erjemin2026-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 не нужен)
erjemin2026-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 систем
erjemin2026-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
erjemin2026-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
erjemin2026-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
erjemin2026-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
erjemin2026-04-01 00:08:53 +03:00
1b0fa5e500
build: игнорировать copilotDiffState.xml (локальное состояние GitHub Copilot IDE) - Удален copilotDiffState.xml из git истории - Добавлено правило в .gitignore для игнорирования этого файла - Это локальный служебный файл PyCharm, специфичный для машины разработчика - Не должен попадать в репозиторий и загрязнять git history
erjemin2026-04-01 00:04:12 +03:00
bbf35c0c24
mod: убрал jinja2 (мусор в комментариях)
erjemin2026-03-31 23:55:21 +03:00
08668fee6d
del: ini-файл uWSGI не нужен. В контейнере используется gunicorn
erjemin2026-03-31 22:33:31 +03:00
d846542e34
docs: обновлен about.jinja с информацией о проекте Добавлена информация: - История проекта РосМорПорт с 2004 года - Ссылка на репозиторий (https://git.cube2.ru/erjemin/2024-test-rosmorport) - Описание переделки в 2026 году для развертывания в Docker при переносе на новый хостинг
erjemin2026-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:8040erjemin2026-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.
erjemin2026-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 и минималистичная структура проекта
erjemin2026-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 сервера.
erjemin2026-03-31 01:42:18 +03:00
ef80a66b69
refactor: Реорганизация структуры для контейнеризации - database/ папка в корне проекта для БД - public/ для статики и медиа (монтируются отдельно) - Обновлены docker-compose файлы с правильными томами
erjemin2026-03-31 01:25:15 +03:00
493de32998
security: Переведена админ панель на переменную окружения ADMIN_URL - Добавлена переменная окружения ADMIN_URL для динамического управления URL админки - Дефолтное значение в коде: 'admin/' (стандартное, безопасное) - Пользователь может переопределить через .env для скрытия в production - Примечание: никогда не коммитьте реальные значения секретов в .env.example Это позволяет: - Легко скрывать админку от автоматических сканеров - Использовать разные URL для dev/production - Не хранить секреты в коде
erjemin2026-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 окружении.
erjemin2026-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) Для локальной разработки можно установить нужные инструменты отдельно при необходимости.
erjemin2026-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).
erjemin2026-03-31 00:09:46 +03:00
a007337f75
add: login/pwd
main
e-serg
2024-11-17 15:46:21 +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