cas-eleves/README.md

63 lines
1.6 KiB
Markdown
Raw Permalink Normal View History

2020-03-23 21:36:39 +01:00
# CAS élèves ENS
Serveur d'authentification central basé sur
[django-cas-server](https://github.com/nitmir/django-cas-server), en Django.
## Installation
```bash
# Récupérer le code
git clone [ce dépôt]
cd cas_eleves
# Créer un virtualenv et installer les dépendances
virtualenv -p python3 venv
source venv/bin/activate
pip install -r requirements.txt
2020-03-26 12:04:18 +01:00
pip install gunicorn # Serveur WSGI
pip install psycopg2 # Si base de données postgresql
2020-03-23 21:36:39 +01:00
# Créer la configuration
cp cas_eleves/settings.X.py settings.py # où X est dev ou prod
$EDITOR cas_eleves/settings.py # et configurer les FIXME
# Préparer la base de données
./manage.py migrate
# Préparer les fichiers statiques
./manage.py collectstatic
2020-03-26 12:04:18 +01:00
# Préparer les traductions
./manage.py compilemessages
2020-03-23 21:36:39 +01:00
```
À partir de là, on peut configurer un serveur WSGI (par exemple gunicorn) et un
2020-03-26 12:08:14 +01:00
reverse-proxy (par exemple nginx). Le reverse-proxy doit servir directement
`/static` depuis `$(pwd)/public/static`, par exemple (nginx) avec
```
location /static {
root /path/to/this/directory/public;
access_log off;
add_header Cache-Control "public";
expires 7d;
}
```
Le site devrait alors fonctionner.
2020-03-23 21:36:39 +01:00
Il faut également configurer un cron, timer systemd ou autre mécanisme pour
exécuter régulièrement `manage.py clearsessions`, `manage.py cas_clean_tickets`
et `manage.py cas_clean_sessions`.
## Configuration
Il faudra également configurer un superutilisateur Django :
```
./manage.py createsuperuser
```
puis se connecter sur `/admin` pour ajouter au moins un "service pattern". Sans
ça, personne ne pourra utiliser le CAS.