From b47ff31d43e6645762c996ecc8020448e521e42f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julian-Samuel=20Geb=C3=BChr?= Date: Tue, 25 Jul 2023 09:31:51 +0200 Subject: [PATCH] Add blog post docker ansible django traefik --- ...eploying-django-with-docker-and-ansible.md | 157 ++++++++++++++++++ .../django_docker_ansible_traefik.png | Bin 0 -> 57739 bytes 2 files changed, 157 insertions(+) create mode 100644 content/post/deploying-django-with-docker-and-ansible.md create mode 100644 static/uploads/docker-ansible-django-traefik/django_docker_ansible_traefik.png diff --git a/content/post/deploying-django-with-docker-and-ansible.md b/content/post/deploying-django-with-docker-and-ansible.md new file mode 100644 index 0000000..7cf0480 --- /dev/null +++ b/content/post/deploying-django-with-docker-and-ansible.md @@ -0,0 +1,157 @@ +--- +title: "Deploying a django app with docker, ansible and traefik" +date: 2023-07-24T22:10:10+02:00 +draft: false +image: "uploads/docker-ansible-django-traefik/django_docker_ansible_traefik.png" +categrories: ['English'] +tags: ['MASH', 'django', 'ilmo', 'ansible', 'traefik', 'docker'] +--- + +This blog post will try to outline the process of deploying [ILMO](https://github.com/moan0s/ILMO2) (a [Django](https://www.djangoproject.com/) app) by building a [docker](https://www.docker.com/) image, using [ansible](https://www.ansible.com/) to install&configure it on our server and use [Traefik](https://traefik.io/) as webserver that is readily configured and obtains certificates for us. + +I will go through the steps one by one and link more extensive documentation. + +# Building the docker image + +Building the docker image is pretty straightforward as it closely resembles the steps of [manual deployment](https://ilmo2.readthedocs.io/en/latest/dev/deployment.html#manual-deployment). The docker file is probably terribly inefficient as it is to large and should be build in stages. Consider this a working example, not a best practice. Also feel free to give me pointers on how to improve it. Specifics I want to point out are: + +* static files are collected when building the image +* `pip install -e .` is used to install the python package. Without `-e` the apps static files will not be collected correctly. I haven't figured out why. +* the CMD `ilmo` is executed when starting the container and maps to the script in `docker/ilmo.bash` (see below). + +```Dockerfile +FROM python:3-slim +MAINTAINER Julian-Samuel Gebühr + +ENV DOCKER_BUILD=true + +RUN apt update +RUN apt install gettext -y +ENV VIRTUAL_ENV=/var/ilmo/venv +RUN python -m venv $VIRTUAL_ENV +ENV PATH="$VIRTUAL_ENV/bin:$PATH" +COPY src/requirements.txt requirements.txt +RUN pip install -r requirements.txt +WORKDIR /var/ilmo +COPY . . +RUN pip install -e . # Without the -e the library static folder will not be copied by collectstatic! +RUN mkdir /ilmo +RUN mkdir /ilmo/static +RUN ilmo-manage collectstatic --noinput +RUN ilmo-manage compilemessages --ignore venv + +COPY docker/ilmo.bash $VIRTUAL_ENV/bin/ilmo + +EXPOSE 8345 +CMD ["ilmo"] +``` + +The standard command of the container is a small bash script located at `docker/ilmo.bash` that + +* activates the virtual environment +* sets a number of workers based on the available CPU cores +* applies migrations to the database +* executes [gunicorn](https://gunicorn.org/) as [WSGI](https://de.wikipedia.org/wiki/Web_Server_Gateway_Interface) HTTP Server on port 8345 + +```bash +#!/bin/bash + +set -eux + +cd /var/ilmo/src +export DATA_DIR=/var/ilmo/ +source /var/ilmo/venv/bin/activate + +AUTOMIGRATE=${AUTOMIGRATE:-yes} +NUM_WORKERS_DEFAULT=$((2 * $(nproc --all))) +export NUM_WORKERS=${NUM_WORKERS:-$NUM_WORKERS_DEFAULT} + +if [ "$AUTOMIGRATE" != "skip" ]; then + ilmo-manage migrate --noinput +fi + +exec gunicorn ilmo.wsgi \ + --name ilmo \ + --workers $NUM_WORKERS \ + --max-requests 1200 \ + --max-requests-jitter 50 \ + --log-level=info \ + --bind 0.0.0.0:8345 +``` + + +# Using WhiteNoise to serve static files + +Django apps usually put their static files in the directory you define in `STATIC_ROOT` after running `python manage.py collectstatic` and expect a webserver like nginx to serve theses files. Now as [discussed before](/post/static-sites-with-mash/) traefik does not easily serve static files. Luckily there is a solution for that: [WhiteNoise](https://whitenoise.readthedocs.io). It allows a django app to serve it's own static files [pretty efficiently](https://whitenoise.readthedocs.io/en/latest/#isn-t-serving-static-files-from-python-horribly-inefficient) while it also takes care of best-practices for you, for instance: + +* Serving compressed content (gzip and Brotli formats, handling Accept-Encoding and Vary headers correctly) +* Setting far-future cache headers on content which won’t change (useful if working with CDNs). + +To get it to work we have to: + +* add WhiteNoise to the dependencies (see my [pyproject.toml](https://github.com/moan0s/ILMO2/blob/main/pyproject.toml)) +* add the WhiteNoise middleware directly after the SecurityMiddleware +```python +MIDDLEWARE = [ + # ... + "django.middleware.security.SecurityMiddleware", + "whitenoise.middleware.WhiteNoiseMiddleware", + # ... +] +``` +* define the [storage backend](https://docs.djangoproject.com/en/4.2/ref/settings/#storages) (this is new for django >4.2, for previous version use [`STATICFILES_STORAGE`](https://docs.djangoproject.com/en/4.2/ref/settings/#staticfiles-storage)). This is not strictly necessary but improves performance. +```python +STORAGES = { + "staticfiles": { + "BACKEND": "whitenoise.storage.CompressedManifestStaticFilesStorage", + }, +} +``` + +When testing if the new configuration works you should test with `DEBUG=False`. Otherwise django will serve static files by itself (which is not safe for production). If you encounter problems check the [Whitenoise Documentation](https://whitenoise.readthedocs.io/en/latest/django.html). + +# Traefik as webserver + +[Traefik](https://traefik.io/) is a HTTP(S) reverse proxy and load balancer. It is focused on containers and supports dynamic configuration. This means we can spin up a docker container with the `--label /path/to/label_file` flag and traefik will use the configuration in the label file to register a new service and router, obtain SSL certificates and start routing traffic to your application. + +For ILMO our traefik configuration adds some sensible response headers, defines an entrypoint (`web-secure` stands for HTTPS via port 443), add a SSL certificate resolver (`default` is here LetsEncrypt) and tells traefik where to send traefik to `traefik.docker.network=traefik` and `traefik.http.services.mash-ilmo.loadbalancer.server.port=8345`. It assumes traefik and the application are both in the docker network called `traefik`. + +Everything together looks like this: + +```cfg +traefik.docker.network=traefik + +traefik.http.middlewares.mash-ilmo-add-response-headers.headers.customresponseheaders.X-XSS-Protection=1; mode=block +traefik.http.middlewares.mash-ilmo-add-response-headers.headers.customresponseheaders.X-Frame-Options=SAMEORIGIN +traefik.http.middlewares.mash-ilmo-add-response-headers.headers.customresponseheaders.X-Content-Type-Options=nosniff +traefik.http.middlewares.mash-ilmo-add-response-headers.headers.customresponseheaders.Content-Security-Policy=frame-ancestors 'self' +traefik.http.middlewares.mash-ilmo-add-response-headers.headers.customresponseheaders.Permission-Policy=interest-cohort=() +traefik.http.middlewares.mash-ilmo-add-response-headers.headers.customresponseheaders.Strict-Transport-Security=max-age=31536000; includeSubDomains + +traefik.enable=true +traefik.http.routers.mash-ilmo.rule=Host("ilmo.example.com") +traefik.http.routers.mash-ilmo.middlewares=mash-ilmo-add-response-headers +traefik.http.routers.mash-ilmo.service=mash-ilmo +traefik.http.routers.mash-ilmo.entrypoints=web-secure +traefik.http.routers.mash-ilmo.tls=true +traefik.http.routers.mash-ilmo.tls.certResolver=default +traefik.http.services.mash-ilmo.loadbalancer.server.port=8345 + +``` + +# Ansible to deploy + +The ansible role will set up everything we did so far on the server. I will not discuss the inner workings of the role in detail as the role is mostly derived from the generic role layout we use in [MASH](https://github.com/mother-of-all-self-hosting) for a large variety of services. + +The role features: Install, uninstall and creating the first user. It does so by installing a config and data path, configuring the traefik labels and configuration file, pulling the docker image and finally setting up a systemd service to start the container. + +Used together with the [MASH playbook](https://github.com/mother-of-all-self-hosting/mash-playbook) it will also set up a database user and database and install traefik. + +The full role can be found at [ansible-role-ilmo](https://github.com/moan0s/ansible-role-ilmo) + + +# Final thoughts + +The process of deploying a django app via docker sure is somewhat complicated. In the end I am still glad to have done it as I think it a) will make deployment more reliable & easier to maintain b) encouraged me to make some design decisions that improved the app itself. + +Reach out if you have questions or think this blog post could be improved! diff --git a/static/uploads/docker-ansible-django-traefik/django_docker_ansible_traefik.png b/static/uploads/docker-ansible-django-traefik/django_docker_ansible_traefik.png new file mode 100644 index 0000000000000000000000000000000000000000..847b21c1fba69d3ad3c31ea964b0cd6702e8c2c4 GIT binary patch literal 57739 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%0A!}KoUobjnt=yT!4Ff3HEJ}Zg)H- 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 literal 0 HcmV?d00001