Commands — Шпаргалка команд notes_chat_app¶
Docker Compose¶
# ─── Запуск ───────────────────────────────────────────────────────────
docker compose up --build # зібрати і запустити всі сервіси
docker compose up -d # запустити у background (detached)
docker compose up -d --build # rebuild + background
# ─── Зупинка ──────────────────────────────────────────────────────────
docker compose down # зупинити (volumes зберігаються)
docker compose down -v # зупинити + видалити volumes (скинути БД)
docker compose down --rmi all # зупинити + видалити images
# ─── Стан ─────────────────────────────────────────────────────────────
docker compose ps # статус всіх сервісів
docker compose ps web # статус тільки web
# ─── Логи ─────────────────────────────────────────────────────────────
docker compose logs web # всі логи web
docker compose logs -f web # слідкувати у реальному часі
docker compose logs --tail=50 web # останні 50 рядків
# ─── Shell ────────────────────────────────────────────────────────────
docker compose exec web bash # bash у web
docker compose exec web python manage.py shell # Django shell
docker compose exec db psql -U notes_user notes_db # PostgreSQL shell
# ─── Перезапуск ───────────────────────────────────────────────────────
docker compose restart web # перезапустити тільки web
docker compose build --no-cache web # rebuild без кешу
Django manage.py¶
У Docker завжди через
docker compose run --rm webабоdocker compose exec web
# ─── Міграції ─────────────────────────────────────────────────────────
docker compose run --rm web python manage.py makemigrations
docker compose run --rm web python manage.py migrate
docker compose run --rm web python manage.py migrate --fake # позначити як виконані
docker compose run --rm web python manage.py showmigrations
docker compose run --rm web python manage.py sqlmigrate notes_app 0001
# ─── Статика ──────────────────────────────────────────────────────────
docker compose run --rm web python manage.py collectstatic --noinput
# ─── Демо-дані ────────────────────────────────────────────────────────
docker compose run --rm web python manage.py seed_demo_data # засіяти
docker compose run --rm web python manage.py seed_demo_data --reset # очистити + засіяти
docker compose run --rm web python manage.py seed_demo_data --force # для DEBUG=False
# ─── Користувачі ──────────────────────────────────────────────────────
docker compose run --rm web python manage.py createsuperuser
# ─── Перевірка ────────────────────────────────────────────────────────
docker compose run --rm web python manage.py check
docker compose run --rm web python manage.py check --deploy # аудит production
# ─── Shell ────────────────────────────────────────────────────────────
docker compose exec web python manage.py shell
docker compose exec web python manage.py shell_plus # якщо встановлено django-extensions
docker compose exec web python manage.py dbshell # SQL shell
Тести¶
# ─── Unit + Integration + Consumer тести ─────────────────────────────
docker compose run --rm web python manage.py test \
notes_app.tests.test_models \
notes_app.tests.test_services \
notes_app.tests.test_forms \
notes_app.tests.test_views \
notes_app.tests.test_consumers -v 2
# ─── Окремий модуль ───────────────────────────────────────────────────
docker compose run --rm web python manage.py test notes_app.tests.test_models -v 2
docker compose run --rm web python manage.py test notes_app.tests.test_services -v 2
docker compose run --rm web python manage.py test notes_app.tests.test_consumers -v 2
# ─── Selenium E2E (через exec!) ───────────────────────────────────────
docker compose up -d # стек має бути запущений
docker compose exec web python manage.py test notes_app.tests.test_selenium -v 2
# ─── Coverage ─────────────────────────────────────────────────────────
docker compose run --rm web bash -c \
"coverage run manage.py test notes_app.tests.test_models \
notes_app.tests.test_services \
notes_app.tests.test_forms \
notes_app.tests.test_views \
notes_app.tests.test_consumers \
&& coverage report --show-missing"
Uvicorn (локально, без Docker)¶
# Запуск ASGI сервера (якщо PostgreSQL і Redis вже запущені):
uvicorn notes_project.asgi:application --reload --port 8001
# З усіма параметрами:
uvicorn notes_project.asgi:application \
--host 0.0.0.0 \
--port 8001 \
--reload \
--log-level debug
Ngrok¶
# Тунель до nginx (через Docker — не потрібно окремо):
# Запускається автоматично у docker compose up
# Локально (якщо без Docker):
ngrok http --url=your-domain.ngrok-free.app 80
# Dashboard:
open http://localhost:4040