mirror of
https://github.com/EDeev/deev.space.git
synced 2026-10-07 20:49:59 +03:00
- README.md и README.en.md: что это, статус, скриншоты, быстрый старт в Docker, установка без Docker, переменные окружения, схема, развёртывание, разработка; - docs/architecture.md (модели, оценки без регистрации, антинакрутка, безопасность) и docs/deploy.md (Docker и устройство боевого сервера) вместо описания моделей в README; - файл LICENSE (MIT), который раньше был заявлен только в README.
32 lines
1.6 KiB
Markdown
32 lines
1.6 KiB
Markdown
# Развёртывание
|
||
|
||
## Docker
|
||
|
||
```bash
|
||
cp .env.example .env # задайте DJANGO_SECRET_KEY и при необходимости ключи капчи и почты
|
||
docker compose up -d
|
||
docker compose exec web python manage.py createsuperuser
|
||
```
|
||
|
||
База и загруженные файлы хранятся в томе `data` (`/data/db.sqlite3`, `/data/media`). Готовый образ
|
||
собирается GitHub Actions на каждый тег `v*`:
|
||
|
||
```bash
|
||
docker pull ghcr.io/edeev/deev.space:latest
|
||
docker pull dcr.deev.su/edeev/deev.space:latest
|
||
```
|
||
|
||
За обратным прокси укажите домены в `DJANGO_ALLOWED_HOSTS` и `DJANGO_CSRF_TRUSTED_ORIGINS`, а
|
||
`DJANGO_SERVE_MEDIA` выключите и отдавайте `/media/` прокси-сервером.
|
||
|
||
## Как работает deev.space
|
||
|
||
Боевой сайт крутится на VPS без Docker:
|
||
|
||
- gunicorn под отдельным пользователем `dspace`, systemd-юнит, unix-сокет;
|
||
- nginx отдаёт `/static/` и `/media/` с диска и проксирует остальное в сокет, TLS — Let's Encrypt;
|
||
- переменные окружения — в `.env` рядом с проектом;
|
||
- обновление: выложить код, `pip install -r requirements.txt`, `python manage.py migrate`,
|
||
`python manage.py collectstatic --noinput`, перезапуск юнита;
|
||
- доступность сайта и срок сертификата проверяет Prometheus (blackbox exporter), уведомления
|
||
о новых сообщениях с формы приходят в Telegram через AlertBot.
|