mirror of
https://github.com/ae-utbm/sith.git
synced 2024-11-22 06:03:20 +00:00
doc: advanced install
This commit is contained in:
parent
cbd8932075
commit
12d316ebe4
152
docs/tutorial/install-advanced.md
Normal file
152
docs/tutorial/install-advanced.md
Normal file
@ -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
|
||||||
|
```
|
@ -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
|
|
||||||
```
|
|
@ -61,12 +61,12 @@ nav:
|
|||||||
- Archives: explanation/archives.md
|
- Archives: explanation/archives.md
|
||||||
- Tutoriels:
|
- Tutoriels:
|
||||||
- Installer le projet: tutorial/install.md
|
- Installer le projet: tutorial/install.md
|
||||||
|
- Installer le projet (avancé): tutorial/install-advanced.md
|
||||||
- Configurer son éditeur: tutorial/devtools.md
|
- Configurer son éditeur: tutorial/devtools.md
|
||||||
- Structure du projet: tutorial/structure.md
|
- Structure du projet: tutorial/structure.md
|
||||||
- Gestion des permissions: tutorial/perms.md
|
- Gestion des permissions: tutorial/perms.md
|
||||||
- Gestion des groupes: tutorial/groups.md
|
- Gestion des groupes: tutorial/groups.md
|
||||||
- Etransactions: tutorial/etransaction.md
|
- Etransactions: tutorial/etransaction.md
|
||||||
- Installer le projet (Avancé): tutorial/install_advanced.md
|
|
||||||
- How-to:
|
- How-to:
|
||||||
- L'ORM de Django: howto/querysets.md
|
- L'ORM de Django: howto/querysets.md
|
||||||
- Gérer les migrations: howto/migrations.md
|
- Gérer les migrations: howto/migrations.md
|
||||||
|
Loading…
Reference in New Issue
Block a user