1
0
Fork 0
mirror of https://github.com/EDeev/deev.space.git synced 2026-10-07 20:49:59 +03:00
Commit graph

20 commits

Author SHA1 Message Date
7d5ec17254 settings: запуск в бою блокируется только с ключом-заглушкой
Проверка по префиксу django-insecure отвергала и настоящие ключи, сгенерированные
startproject. Теперь ошибка только если DJANGO_SECRET_KEY не задан и используется
значение по умолчанию из settings.py.
2026-10-02 12:45:37 +00:00
a696d996b9 README на русском и английском, документация, скриншоты, лицензия MIT
- README.md и README.en.md: что это, статус, скриншоты, быстрый старт в Docker,
  установка без Docker, переменные окружения, схема, развёртывание, разработка;
- docs/architecture.md (модели, оценки без регистрации, антинакрутка, безопасность)
  и docs/deploy.md (Docker и устройство боевого сервера) вместо описания моделей в README;
- файл LICENSE (MIT), который раньше был заявлен только в README.
2026-10-02 12:23:09 +00:00
a04709d3df populate_demo приведена к текущим моделям, устаревшая load_initial_data удалена
populate_demo падала на импорте несуществующей ArticleCategory, строковых статусах
проектов и удалённом поле is_featured; теперь создаёт статусы проектов и работает,
это проверяет тест. load_initial_data была загрузчиком старой версии резюме под
прежние модели и тоже не запускалась — актуальный контент живёт в админке.
2026-10-02 12:23:08 +00:00
9dcb3a9d08 CI: ruff, проверка миграций и тесты на каждый push; сборка Docker-образа по тегу
Образ публикуется в GitHub Packages (ghcr.io/edeev/deev.space) и в реестр
dcr.deev.su/edeev/deev.space (учётные данные — секреты ZOT_USERNAME/ZOT_PASSWORD).
2026-10-02 12:11:17 +00:00
d7739ca203 Docker: образ на python:3.12-slim, compose с томом для базы и media
- Dockerfile: collectstatic при сборке, gunicorn, непривилегированный пользователь,
  база и загрузки в томе /data, миграции при старте;
- compose.yaml для запуска одной командой, .env.example со всеми переменными.
2026-10-02 12:10:57 +00:00
268652505a «Обо мне»: исправлена ссылка на несуществующую картинку-заглушку
Без загруженного фото владельца страница падала с 500 (в манифесте статики нет
images/hero.png). Теперь используется static/img/hero.jpg; добавлен тест, который
проверяет, что все {% static %} в шаблонах указывают на существующие файлы.
2026-10-02 12:10:57 +00:00
794fceece5 Тесты: голосование без регистрации, антинакрутка, формы, защита от XSS/SSRF, страницы
33 теста на pytest-django в боевом режиме (DEBUG=False, настройки dspace/settings_test.py):
лайки и дизлайки анонимов, лимит оценок с одного IP, очистка HTML в
комментариях и форме обратной связи, капча, экранирование бейджей и постов в Telegram,
проверка адресов превью, уникальные просмотры и фильтр ботов, cookie посетителя.
2026-10-02 12:03:30 +00:00
1320562734 Исправления безопасности и чистка кода
- render_tech_badge: format_html вместо mark_safe с непроверенной подстановкой (XSS);
- превью ссылок статьи: только публичные http(s)-адреса, без запросов во внутреннюю
  сеть сервера (SSRF); ошибки логируются вместо except: pass;
- автопостинг в Telegram переведён на parse_mode=HTML с html.escape (раньше в канал
  уходили видимые обратные слэши), включается переменной SOCIAL_AUTOPOST;
- убран ping Google (эндпоинт отключён в 2023 году);
- ошибка отправки письма с формы обратной связи больше не глушится;
- whitenoise и DJANGO_SERVE_MEDIA для запуска без nginx;
- импорты упорядочены, неиспользуемые удалены (ruff).
2026-10-02 11:59:07 +00:00
312ce5a24a Зависимости: закреплены версии, добавлены недостающие, убраны лишние
- добавлены python-dotenv (без него падал settings.py) и whitenoise;
- убраны неиспользуемые python-telegram-bot, vk-api, django-recaptcha, python-slugify;
- версии закреплены по рабочему окружению продакшена;
- requirements-dev.txt (pytest, pytest-django, ruff) и настройки ruff/pytest в pyproject.toml.
2026-10-02 11:59:07 +00:00
878b4580e4 Версия 2.0: код с продакшена deev.space
Перенесено всё, что накопилось на сервере с декабря 2025:
- анонимный посетитель по подписанной cookie (main/middleware.py), лайки и дизлайки
  без регистрации с антинакруткой, уникальные просмотры статей;
- карточка-паспорт, стек в одну строку, блок «В цифрах»;
- миграции 0005–0008, команды load_initial_data и populate_demo, robots.txt;
- обновлённые шаблоны, стили и скрипты.

Безопасность и порядок:
- все секреты только из окружения, значения по умолчанию пустые;
- DEBUG по умолчанию выключен, без DJANGO_SECRET_KEY запуск в бою невозможен;
- ALLOWED_HOSTS, путь к базе и SSL-редирект настраиваются переменными;
- убрана статика админки Django (результат collectstatic) и media из git;
- добавлены .gitignore и .gitattributes (переводы строк — LF).
2026-10-02 11:58:54 +00:00
a452e193c8 v. 1.5 2025-12-09 18:06:44 +03:00
34ee8ee686 v. 1.4 2025-12-07 01:33:28 +03:00
b6da1682fa
README 2025-12-06 13:31:27 +03:00
c833cb4f3a
README 2025-12-06 13:29:54 +03:00
5f2ebd8792 v. 1.3 2025-12-06 12:54:15 +03:00
9980762ae6 v. 1.2 2025-12-04 01:38:07 +03:00
a2f2dde958 v. 1.1 2025-12-04 00:36:05 +03:00
11e065ecf9
Delete README.md 2025-12-03 11:56:34 +03:00
24071234b9
README 2025-12-03 11:56:14 +03:00
35149a578d
v. 1.0 2025-12-03 04:39:24 +03:00