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.
|