2025-01-14 19:35:48 +01:00
2025-01-14 18:03:28 +01:00
2025-01-14 18:03:28 +01:00
2025-01-14 18:03:28 +01:00
2025-01-14 19:35:48 +01:00
2025-01-14 19:35:48 +01:00
2025-01-14 19:35:48 +01:00
2025-01-14 18:03:28 +01:00
2025-01-14 18:03:28 +01:00

taal-academie.arree.bzh

Project structure :

.
├── django
│   ├── Dockerfile
│   ├── requirements.txt
│   └── src
│       ├── config
│       ├── development.env
│       ├── home
│       ├── local.env
│       ├── manage.py
│       ├── pages
│       ├── production.env
│       └── workshops
├── compose.dev.yml
├── compose.local.yml
├── compose.prod.yml
├── compose.yml
├── nginx
│   ├── default.conf
│   └── Dockerfile
└── README.md

Deployment with Nerdctl Compose

Can be used as well in Nerdctl root or rootless mode.

There are three profiles :

  • Development : with only the database
  • Local : for local testing of the production stack
  • Production : Final deployment on the server

Development

To run the development profile from the project django/src directory :

$ ( cd ../.. && nerdctl compose -f compose.yml -f compose.dev.yml up -d postgres )

Then when calling the manage.py script we need to pass DJANGO_ENV to load src/dev.env, like in the following example to start the Django development server :

$ DJANGO_ENV=dev python manage.py runserver

To not have to pass this for each manage.py execution you may export DJANGO_ENV from your .bashrc :

$ echo -e "\n# Django development\nexport DJANGO_ENV=dev" >> ~/.bashrc

Need to restart the session !

Local

To run the local profile from the project django/src directory :

$ ( cd ../.. && nerdctl compose -f compose.yml -f compose.local.yml up -d )

Production

To run the production profile from the directory where the compose.yml file lives :

$ nerdctl compose -f compose.yml -f compose.prod.yml up -d

At the first launch, it is advised to run the Deployment checklist from manage.py to check if there are some security improvements :

$ nerdctl exec -it django_taal-academiearreebzh python /django/manage.py check --deploy

Then create an admin user for the Django admin panel :

$ nerdctl exec -it django_taal-academiearreebzh python /django/manage.py createsuperuser
Description
No description provided
Readme 2.8 MiB
Languages
HTML 55.4%
CSS 24.5%
Python 17.5%
JavaScript 1.4%
Dockerfile 1.2%