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