From 12d316ebe46a778a67de3710ce59ac79d9ebf693 Mon Sep 17 00:00:00 2001 From: thomas girod Date: Sun, 4 Aug 2024 18:29:52 +0200 Subject: [PATCH] doc: advanced install --- docs/tutorial/install-advanced.md | 152 ++++++++++++++++++++++++++++++ docs/tutorial/install_advanced.md | 10 -- mkdocs.yml | 2 +- 3 files changed, 153 insertions(+), 11 deletions(-) create mode 100644 docs/tutorial/install-advanced.md delete mode 100644 docs/tutorial/install_advanced.md diff --git a/docs/tutorial/install-advanced.md b/docs/tutorial/install-advanced.md new file mode 100644 index 00000000..5a40a725 --- /dev/null +++ b/docs/tutorial/install-advanced.md @@ -0,0 +1,152 @@ +Si le projet marche chez vous après avoir suivi les étapes +données dans la page précédente, alors vous pouvez développer. +Ce que nous nous vous avons présenté n'est absolument pas +la même configuration que celle du site, mais elle n'en +est pas moins fonctionnelle. + +Cependant, vous pourriez avoir envie de faire en sorte +que votre environnement de développement soit encore plus +proche de celui en production. +Voici les étapes à suivre pour ça. + +## Installer les dépendances manquantes + +Pour installer complètement le projet, il va falloir +quelques dépendances en plus. +Commencez par installer les dépendances système : + +=== "Linux" + + === "Debian/Ubuntu" + + ```bash + sudo apt install postgresql redis libq-dev + ``` + + === "Arch Linux" + + ```bash + sudo pacman -S postgresql redis + ``` + +=== "macOS" + + ```bash + brew install postgresql redis nginx lipbq + export PATH="/usr/local/opt/libpq/bin:$PATH" + source ~/.zshrc + ``` + +Puis, installez les dépendances poetry nécessaires en prod : + +```bash +poetry install --with prod +``` + +!!! info + + Certaines dépendances peuvent être un peu longues à installer + (notamment psycopg-c). + C'est parce que ces dépendances compilent certains modules + à l'installation. + +## Configurer Redis + +Redis est utilisé comme cache. +Assurez-vous qu'il tourne : + +```bash +sudo systemctl redis status +``` + +Et s'il ne tourne pas, démarrez-le : + +```bash +sudo systemctl start redis +sudo systemctl enable redis # si vous voulez que redis démarre automatiquement au boot +``` + +Puis ajoutez le code suivant à la fin de votre fichier +`settings_custom.py` : + +```python +CACHES = { + "default": { + "BACKEND": "django.core.cache.backends.redis.RedisCache", + "LOCATION": "redis://127.0.0.1:6379", + } +} +``` + +## Configurer PostgreSQL + +PostgreSQL est utilisé comme base de données. + +Passez sur le compte de l'utilisateur postgres +et lancez l'invite de commande sql : + +```bash +sudo su - postgres +psql +``` + +Puis configurez la base de données : + +```postgresql +CREATE DATABASE sith; +CREATE USER sith WITH PASSWORD 'password'; + +ALTER ROLE sith SET client_encoding TO 'utf8'; +ALTER ROLE sith SET default_transaction_isolation TO 'read committed'; +ALTER ROLE sith SET timezone TO 'UTC'; + +GRANT ALL PRIVILEGES ON DATABASE sith TO SITH; +\q +``` + +Si vous utilisez une version de PostgreSQL supérieure ou égale +à 15, vous devez exécuter une commande en plus, +en étant connecté en tant que postgres : + +```bash +psql -d sith -c "GRANT ALL PRIVILEGES ON SCHEMA public to sith"; +``` + +Puis ajoutez le code suivant à la fin de votre +`settings_custom.py` : + +```python +DATABASES = { + "default": { + "ENGINE": "django.db.backends.postgresql", + "NAME": "sith", + "USER": "sith", + "PASSWORD": "password", + "HOST": "localhost", + "PORT": "", # laissez ce champ vide pour que le choix du port soit automatique + } +} +``` + +Enfin, créez vos données : + +```bash +poetry run ./manage.py populate +``` + +!!! note + + N'oubliez de quitter la session de l'utilisateur + postgres après avoir configuré la db. + + +## Mettre à jour la base de données antispam + +L'anti spam nécessite d'être à jour par rapport à des bases de données externes. +Il existe une commande pour ça qu'il faut lancer régulièrement. +Lors de la mise en production, il est judicieux de configurer +un cron pour la mettre à jour au moins une fois par jour. + +```bash +python manage.py update_spam_database +``` diff --git a/docs/tutorial/install_advanced.md b/docs/tutorial/install_advanced.md deleted file mode 100644 index a5f2261e..00000000 --- a/docs/tutorial/install_advanced.md +++ /dev/null @@ -1,10 +0,0 @@ -## Mettre à jour la base de données antispam - -L'anti spam nécessite d'être à jour par rapport à des bases de données externe. -Il existe une commande pour ça qu'il faut lancer régulièrement. -Lors de la mise en production, il est judicieux de configurer -un cron pour la mettre à jour au moins une fois par jour. - -```bash -python manage.py update_spam_database -``` diff --git a/mkdocs.yml b/mkdocs.yml index 349186a8..822174ae 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -61,12 +61,12 @@ nav: - Archives: explanation/archives.md - Tutoriels: - Installer le projet: tutorial/install.md + - Installer le projet (avancé): tutorial/install-advanced.md - Configurer son éditeur: tutorial/devtools.md - Structure du projet: tutorial/structure.md - Gestion des permissions: tutorial/perms.md - Gestion des groupes: tutorial/groups.md - Etransactions: tutorial/etransaction.md - - Installer le projet (Avancé): tutorial/install_advanced.md - How-to: - L'ORM de Django: howto/querysets.md - Gérer les migrations: howto/migrations.md