mirror of https://gitlab.crans.org/bde/nk20
More envs
This commit is contained in:
parent
523e27694a
commit
daef806507
|
@ -0,0 +1,13 @@
|
||||||
|
DJANGO_APP_STAGE=dev
|
||||||
|
# Only used in dev mode, change to "postgresql" if you want to use PostgreSQL in dev
|
||||||
|
DJANGO_DEV_STORE_METHOD=sqllite
|
||||||
|
DJANGO_DB_HOST=localhost
|
||||||
|
DJANGO_DB_NAME=note_db
|
||||||
|
DJANGO_DB_USER=note
|
||||||
|
DJANGO_DB_PASSWORD=CHANGE_ME
|
||||||
|
DJANGO_DB_PORT=
|
||||||
|
DJANGO_SECRET_KEY=CHANGE_ME
|
||||||
|
DJANGO_SETTINGS_MODULE=note_kfet.settings
|
||||||
|
DOMAIN=localhost
|
||||||
|
MAILING_LIST_DOMAIN=localhost
|
||||||
|
NOTE_URL=localhost
|
57
README.md
57
README.md
|
@ -40,14 +40,13 @@ On supposera pour la suite que vous utiliser debian/ubuntu sur un serveur tout n
|
||||||
|
|
||||||
$ cp nginx_note.conf_example nginx_note.conf
|
$ cp nginx_note.conf_example nginx_note.conf
|
||||||
|
|
||||||
***Modifier le fichier pour être en accord avec le reste de votre config***
|
***Modifier le fichier pour être en accord avec le reste de votre config***
|
||||||
|
|
||||||
On utilise uwsgi et Nginx pour gérer le coté serveur :
|
On utilise uwsgi et Nginx pour gérer le coté serveur :
|
||||||
|
|
||||||
$ sudo ln -sf /var/www/note_kfet/nginx_note.conf /etc/nginx/sites-enabled/
|
$ sudo ln -sf /var/www/note_kfet/nginx_note.conf /etc/nginx/sites-enabled/
|
||||||
|
|
||||||
|
Si l'on a un emperor (plusieurs instance uwsgi):
|
||||||
Si l'on a un emperor (plusieurs instance uwsgi):
|
|
||||||
|
|
||||||
$ sudo ln -sf /var/www/note_kfet/uwsgi_note.ini /etc/uwsgi/sites/
|
$ sudo ln -sf /var/www/note_kfet/uwsgi_note.ini /etc/uwsgi/sites/
|
||||||
|
|
||||||
|
@ -85,7 +84,7 @@ On supposera pour la suite que vous utiliser debian/ubuntu sur un serveur tout n
|
||||||
postgres=# CREATE DATABASE note_db OWNER note;
|
postgres=# CREATE DATABASE note_db OWNER note;
|
||||||
CREATE DATABASE
|
CREATE DATABASE
|
||||||
|
|
||||||
Si tout va bien:
|
Si tout va bien :
|
||||||
|
|
||||||
postgres=#\list
|
postgres=#\list
|
||||||
List of databases
|
List of databases
|
||||||
|
@ -97,21 +96,28 @@ On supposera pour la suite que vous utiliser debian/ubuntu sur un serveur tout n
|
||||||
template1 | postgres | UTF8 | fr_FR.UTF-8 | fr_FR.UTF-8 | =c/postgres +postgres=CTc/postgres
|
template1 | postgres | UTF8 | fr_FR.UTF-8 | fr_FR.UTF-8 | =c/postgres +postgres=CTc/postgres
|
||||||
(4 rows)
|
(4 rows)
|
||||||
|
|
||||||
Dans un fichier `.env` à la racine du projet on renseigne des secrets:
|
|
||||||
|
|
||||||
DJANGO_APP_STAGE='prod'
|
|
||||||
DJANGO_DB_PASSWORD='le_mot_de_passe_de_la_bdd'
|
|
||||||
DJANGO_SECRET_KEY='une_secret_key_longue_et_compliquee'
|
|
||||||
ALLOWED_HOSTS='le_ndd_de_votre_instance'
|
|
||||||
|
|
||||||
|
|
||||||
6. Variable d'environnement et Migrations
|
6. Variable d'environnement et Migrations
|
||||||
|
|
||||||
|
On copie le fichier `.env_example` vers le fichier `.env` à la racine du projet
|
||||||
|
et on renseigne des secrets et des paramètres :
|
||||||
|
|
||||||
Ensuite on (re)bascule dans l'environement virtuel et on lance les migrations
|
DJANGO_APP_STAGE=dev
|
||||||
|
DJANGO_DEV_STORE_METHOD=sqllite
|
||||||
|
DJANGO_DB_HOST=localhost
|
||||||
|
DJANGO_DB_NAME=note_db
|
||||||
|
DJANGO_DB_USER=note
|
||||||
|
DJANGO_DB_PASSWORD=CHANGE_ME
|
||||||
|
DJANGO_DB_PORT=
|
||||||
|
DJANGO_SECRET_KEY=CHANGE_ME
|
||||||
|
DJANGO_SETTINGS_MODULE=note_kfet.settings
|
||||||
|
DOMAIN=localhost
|
||||||
|
MAILING_LIST_DOMAIN=localhost
|
||||||
|
NOTE_URL=localhost
|
||||||
|
|
||||||
|
Ensuite on (re)bascule dans l'environement virtuel et on lance les migrations
|
||||||
|
|
||||||
$ source /env/bin/activate
|
$ source /env/bin/activate
|
||||||
(env)$ ./manage.py check # pas de bétise qui traine
|
(env)$ ./manage.py check # pas de bêtise qui traine
|
||||||
(env)$ ./manage.py makemigrations
|
(env)$ ./manage.py makemigrations
|
||||||
(env)$ ./manage.py migrate
|
(env)$ ./manage.py migrate
|
||||||
|
|
||||||
|
@ -126,17 +132,17 @@ Il est possible de travailler sur une instance Docker.
|
||||||
|
|
||||||
$ git clone git@gitlab.crans.org:bde/nk20.git
|
$ git clone git@gitlab.crans.org:bde/nk20.git
|
||||||
|
|
||||||
2. Dans le fichier `docker_compose.yml`, qu'on suppose déjà configuré,
|
2. Copiez le fichier `.env_example` à la racine du projet vers le fichier `.env`,
|
||||||
|
et mettez à jour vos variables d'environnement
|
||||||
|
|
||||||
|
3. Dans le fichier `docker_compose.yml`, qu'on suppose déjà configuré,
|
||||||
ajouter les lignes suivantes, en les adaptant à la configuration voulue :
|
ajouter les lignes suivantes, en les adaptant à la configuration voulue :
|
||||||
|
|
||||||
nk20:
|
nk20:
|
||||||
build: /chemin/vers/nk20
|
build: /chemin/vers/nk20
|
||||||
volumes:
|
volumes:
|
||||||
- /chemin/vers/nk20:/code/
|
- /chemin/vers/nk20:/code/
|
||||||
environment:
|
env_file: /chemin/vers/nk20/.env
|
||||||
MAILING_LIST_DOMAIN: lists.example.com
|
|
||||||
NOTE_URL: nk20.example.com
|
|
||||||
DOMAIN: example.com
|
|
||||||
restart: always
|
restart: always
|
||||||
labels:
|
labels:
|
||||||
- traefik.domain=ndd.example.com
|
- traefik.domain=ndd.example.com
|
||||||
|
@ -163,17 +169,20 @@ un serveur de développement par exemple sur son ordinateur.
|
||||||
$ source venv/bin/activate
|
$ source venv/bin/activate
|
||||||
(env)$ pip install -r requirements.txt
|
(env)$ pip install -r requirements.txt
|
||||||
|
|
||||||
3. Migrations et chargement des données initiales :
|
3. Copier le fichier `.env_example` vers `.env` à la racine du projet et mettre à jour
|
||||||
|
ce qu'il faut
|
||||||
|
|
||||||
|
4. Migrations et chargement des données initiales :
|
||||||
|
|
||||||
(env)$ ./manage.py makemigrations
|
(env)$ ./manage.py makemigrations
|
||||||
(env)$ ./manage.py migrate
|
(env)$ ./manage.py migrate
|
||||||
(env)$ ./manage.py loaddata initial
|
(env)$ ./manage.py loaddata initial
|
||||||
|
|
||||||
4. Créer un super-utilisateur :
|
5. Créer un super-utilisateur :
|
||||||
|
|
||||||
(env)$ ./manage.py createsuperuser
|
(env)$ ./manage.py createsuperuser
|
||||||
|
|
||||||
5. Enjoy :
|
6. Enjoy :
|
||||||
|
|
||||||
(env)$ ./manage.py runserver 0.0.0.0:8000
|
(env)$ ./manage.py runserver 0.0.0.0:8000
|
||||||
|
|
||||||
|
@ -188,4 +197,4 @@ Il est disponible [ici](https://wiki.crans.org/NoteKfet/NoteKfet2018/CdC).
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
La documentation est générée par django et son module admindocs.
|
La documentation est générée par django et son module admindocs.
|
||||||
**Commenter votre code !**
|
**Commentez votre code !**
|
||||||
|
|
|
@ -35,10 +35,6 @@ read_env()
|
||||||
app_stage = os.environ.get('DJANGO_APP_STAGE', 'dev')
|
app_stage = os.environ.get('DJANGO_APP_STAGE', 'dev')
|
||||||
if app_stage == 'prod':
|
if app_stage == 'prod':
|
||||||
from .production import *
|
from .production import *
|
||||||
|
|
||||||
DATABASES["default"]["PASSWORD"] = os.environ.get('DJANGO_DB_PASSWORD', 'CHANGE_ME_IN_ENV_SETTINGS')
|
|
||||||
SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY', 'CHANGE_ME_IN_ENV_SETTINGS')
|
|
||||||
ALLOWED_HOSTS = [os.environ.get('ALLOWED_HOSTS', 'localhost')]
|
|
||||||
else:
|
else:
|
||||||
from .development import *
|
from .development import *
|
||||||
|
|
||||||
|
|
|
@ -17,12 +17,24 @@ import os
|
||||||
# https://docs.djangoproject.com/en/2.2/ref/settings/#databases
|
# https://docs.djangoproject.com/en/2.2/ref/settings/#databases
|
||||||
from . import *
|
from . import *
|
||||||
|
|
||||||
DATABASES = {
|
if os.getenv("DJANGO_DEV_STORE_METHOD", "sqllite") == "postgresql":
|
||||||
'default': {
|
DATABASES = {
|
||||||
'ENGINE': 'django.db.backends.sqlite3',
|
'default': {
|
||||||
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
|
'ENGINE': 'django.db.backends.postgresql_psycopg2',
|
||||||
|
'NAME': os.environ.get('DJANGO_DB_NAME', 'note_db'),
|
||||||
|
'USER': os.environ.get('DJANGO_DB_USER', 'note'),
|
||||||
|
'PASSWORD': os.environ.get('DJANGO_DB_PASSWORD', 'CHANGE_ME_IN_ENV_SETTINGS'),
|
||||||
|
'HOST': os.environ.get('DJANGO_DB_HOST', 'localhost'),
|
||||||
|
'PORT': os.environ.get('DJANGO_DB_PORT', ''), # Use default port
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else:
|
||||||
|
DATABASES = {
|
||||||
|
'default': {
|
||||||
|
'ENGINE': 'django.db.backends.sqlite3',
|
||||||
|
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
# Break it, fix it!
|
# Break it, fix it!
|
||||||
DEBUG = True
|
DEBUG = True
|
||||||
|
|
|
@ -16,11 +16,11 @@ import os
|
||||||
DATABASES = {
|
DATABASES = {
|
||||||
'default': {
|
'default': {
|
||||||
'ENGINE': 'django.db.backends.postgresql_psycopg2',
|
'ENGINE': 'django.db.backends.postgresql_psycopg2',
|
||||||
'NAME': 'note_db',
|
'NAME': os.environ.get('DJANGO_DB_NAME', 'note_db'),
|
||||||
'USER': 'note',
|
'USER': os.environ.get('DJANGO_DB_USER', 'note'),
|
||||||
'PASSWORD': 'update_in_env_variable',
|
'PASSWORD': os.environ.get('DJANGO_DB_PASSWORD', 'CHANGE_ME_IN_ENV_SETTINGS'),
|
||||||
'HOST': '127.0.0.1',
|
'HOST': os.environ.get('DJANGO_DB_HOST', 'localhost'),
|
||||||
'PORT': '',
|
'PORT': os.environ.get('DJANGO_DB_PORT', ''), # Use default port
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,7 +28,9 @@ DATABASES = {
|
||||||
DEBUG = True
|
DEBUG = True
|
||||||
|
|
||||||
# Mandatory !
|
# Mandatory !
|
||||||
ALLOWED_HOSTS = []
|
ALLOWED_HOSTS = [os.environ.get('NOTE_URL', 'localhost')]
|
||||||
|
|
||||||
|
SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY', 'CHANGE_ME_IN_ENV_SETTINGS')
|
||||||
|
|
||||||
# Emails
|
# Emails
|
||||||
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
|
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
|
||||||
|
|
Loading…
Reference in New Issue