Settings ======== Lego settings ------------- Lego has a few settings. The defaults is placed in lego/settings/lego.py. - SITE: Default project owner settings. - API_VERSION: Current api version used by default. - LOGIN_REDIRECT_URL: The redirect after a login. This is by default the api root. Production settings ------------------- Production reads configuration values form ENV variables. Docker ------ We use Docker in production and manages our services with Kubernetes. The Docker image in not currently public available, but you can build and distribute it by yourself. :: git clone git@github.com:webkom/lego.git cd lego docker build . -t webkom/lego:latest Services -------- Lego consists of many services, each with different responsibilities and scaling possibilities. +------------------+-------------------------------------------+--------------------+ | Service | Command | Multiple instances | +==================+===========================================+====================+ | API server | uwsgi --ini lego.ini | Yes | +------------------+-------------------------------------------+--------------------+ | Celery Beat | celery -A lego beat | No | +------------------+-------------------------------------------+--------------------+ | Celery Worker | celery -A lego worker | Yes | +------------------+-------------------------------------------+--------------------+ | Restricted Mail | python manage.py restricted_email | Yes | +------------------+-------------------------------------------+--------------------+ | Websocket Server | daphne lego.asgi:application -b 0.0.0.0 | Yes | +------------------+-------------------------------------------+--------------------+ Lego also depends on multiple external services: * Postgres - Database * Redis - Cache, Celery broker and Websocket queue * Elasticsearch - Search backend * S3 / Minio - Filestorage * Thumbor - Image resizer * LDAP (Optional) - Sync users to an external system * Google GSuite (Optional) - Email provider