Skip to content

Latest commit

 

History

History
56 lines (49 loc) · 3.09 KB

features.md

File metadata and controls

56 lines (49 loc) · 3.09 KB

RT cookiecutter template selling points

Main configuration

  • Cookiecutter template
  • Template updates using Cruft
  • Docker and docker-compose for easy & simple (c) development and deployment
  • Latest python from 3.9 line (due to nogil fork compatibility)
  • Latest Django LTS release
  • Gunicorn for running WSGI instances on prod
  • Uvicorn for ASGI instances on prod
  • Postgres for database
  • Task management via celery
  • Multiple workers & queues supported (if you need to divide / prioritize tasks and apply different levels of concurrency)

Self-hosted configuration

  • Persistent redis for task management backend
  • Celery task monitoring via flower

Cloud configuration

  • AWS terraform to deploy RDS, SQS, ELB etc

Configuration

  • .env files for configuration; preconfigured .env for both local and prod environments
  • django-debug-toolbar (enabled for local environment) for debugging app performance
  • ipython included for nice interactive django shell
  • django-extensions for drawing graph of models and more

Deployment

  • 2-stage docker image build for clean app image
  • Easy deployment based on git push production master
  • Redeployment doesn't stop db, redis and nginx containers -> non-interrupted deployments
  • Migrations are done during deployment, before application startup -> application won't be run on unmigrated database

Security

  • CORS headers preconfigured
  • CSP integrated
  • GZIP compression is off by default to avoid BREACH attack
  • http/2 support
  • TLS 1.2&1.3 via letsencrypt with auto-renewal
  • Forward secrecy ciphers
  • Overall ssllabs security class: A+ 100/100/90/90 (to keep compatibility with some older clients)

Reliability

  • Backups to:
    • Host system
    • B2 using a writeFiles-only key
    • Email
  • Script and a written procedure for restoring the system from a backup
  • Sentry error tracking preconfigured
  • Prometheus for data collection
  • Grafana for metrics
    • Generic host dashboard section optimized for both VM and physical machines
    • nginx-level dashboard section for http/ws statistics
    • Active monitoring dashboard (http ping)
    • Alert history dashboard
  • Alertmanager for detecting issues and alerting