Перейти до змісту

Deployment

Deployment — це запуск application stack на сервері з production settings. Notes Chat App розгортається через Docker Compose з Daphne (ASGI) + Nginx + PostgreSQL + Redis.

Цей розділ є частиною Частини X. Linux, DevOps і Deployment.


Розділи

Документ Що вивчимо
Django на Linux virtualenv, gunicorn/daphne як systemd service
Nginx + Gunicorn/Uvicorn proxy_pass, SSL termination, WebSocket upgrade, static
Логи та моніторинг LOGGING в Django, journalctl, docker logs, Sentry
Docker основи layers, registry, multi-stage build, ENTRYPOINT vs CMD
Docker Compose сервіси, volumes, networks, depends_on, health checks
DevOps workflow CI/CD, blue-green deploy, rollback стратегія
Kubernetes огляд Pod, Deployment, Service, Ingress — концептуально
Roadmap що вивчати далі: k8s, Terraform, observability, SRE

Production Checklist для Notes Chat App

# Перевір перед деплоєм:
docker compose exec web python manage.py check --deploy
Параметр Dev Production
DEBUG True False
SECRET_KEY у settings.py з env, мінімум 50 символів
DATABASE_URL SQLite або local PG PG з env, відсутність → Exception
ALLOWED_HOSTS ['*'] конкретні домени
Static files Django dev server Nginx /static/ → volume
SESSION_COOKIE_SECURE False True (HTTPS)
CSRF_COOKIE_SECURE False True
DebugExceptionMiddleware активний тільки if DEBUG:
Logs console файл / Sentry

Де це у Notes Chat App

Файл Призначення
docker-compose.yml повний стек: db, redis, web, nginx, ngrok, selenium
Dockerfile FROM python:3.12-slim, COPY, pip install, EXPOSE 8001
entrypoint.sh wait-for-db → migrate → collectstatic → daphne
nginx/nginx.conf proxy_pass :8001, WS upgrade, /static/ alias
.github/workflows/ CI: тести перед merge
notes_project/settings.py os.environ['SECRET_KEY'], DATABASE_URL parsing

Далі → Notes Chat App Deep Dive