Go to file
2024-07-04 21:28:08 +02:00
.credentials feat(settings): Allow a simpler overriding of the ldap URI 2024-07-03 15:08:54 +02:00
app feat(cas_eleves): Add a fixture for service patterns 2024-07-04 09:55:04 +02:00
cas_eleves feat(patterns): Add hackens.org 2024-07-04 21:28:08 +02:00
npins feat(nix): Switch to nix-pkgs instead of local expressions 2024-07-03 16:11:44 +02:00
.envrc feat(project): Add nix tooling 2024-07-02 09:52:53 +02:00
.gitignore feat(locale): Update translations 2024-07-03 14:37:08 +02:00
default.nix feat(nix): Switch to nix-pkgs instead of local expressions 2024-07-03 16:11:44 +02:00
manage.py feat(django): Rename cas_eleves to app 2024-07-02 09:52:05 +02:00
pyproject.toml chore(pyproject): Add djlint config 2024-07-03 14:37:08 +02:00
README.md README: add details for reverse-proxy 2020-03-26 12:08:14 +01:00
shell.nix feat(project): Add nix tooling 2024-07-02 09:52:53 +02:00

CAS élèves ENS

Serveur d'authentification central basé sur django-cas-server, en Django.

Installation

# 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
pip install gunicorn  # Serveur WSGI
pip install psycopg2  # Si base de données postgresql

# 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

# Préparer les traductions
./manage.py compilemessages

À partir de là, on peut configurer un serveur WSGI (par exemple gunicorn) et un 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.

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.