#+title: Проект блога на Django * Как это работает Демка доступна по адресу: [[https://django.foxyparadoxy.xyz][django.foxyparadoxy.xyz]] Все запущенно на debian сервере. За проксирование отвечает Nginx (за ssl серты - certbot). Postgres база поднята как docker-контейнер. За это отвечает systemd сервис. #+name: /etc/systemd/system/docker.postgres.service #+begin_src shell [Unit] Description=Service for running Postgres docker container for django After=docker.service [Service] ExecStart=/usr/bin/docker run -it --rm --mount \ source=postgres-data,target=/var/lib/postgresql/data \ --name postgres-dj \ -p 5432:5432 \ -e POSTGRES_PASSWORD=5207503265 \ -d postgres Restart=always [Install] WantedBy=multi-user.target #+end_src Сам же django запускается через gunicorn. Обертка прописана в bash скрипт. #+name: bin/start_gunicorn.sh #+begin_src shell export PGSERVICEFILE="/home/www/django/pg_service.conf" . /home/www/django/venv/bin/activate exec gunicorn -c "/home/www/django/blog/gunicorn_config.py" blog.wsgi #+end_src За работой gunicorn следит еще один systemd сервис: #+name: /etc/systemd/system/gunicorn.django.service #+begin_src shell [Unit] Description=Service for running django site with gunicorn. Depends of Postgres service. After=docker.service Wants=docker.postgres.service [Service] ExecStart=/home/www/django/bin/start_gunicorn.sh Restart=always [Install] WantedBy=multi-user.target #+end_src Оба systemd сервиса добавлены в автозагрузку. * Фичи ** Комментарии с псевдорегистрацией При комменте можно ввести "секрет" - строку, хэш которой сохранится в базе. После этого ник комментатора будет выделен зеленым цветом - он становится подтвержденным. Таким образом пользователи сохраняющие (от комментария к комментарию) пару "ник:секрет" могут считаться подтвержденными. Таким образом сайт можно размещать, например, в i2p сети, не нарушая анонимности комментаторов требованием регистрации.