Utilisation pour votre projet
Prérequis
Pour que la partie CAS puisse fonctionner, vous devez ajouter la ligne suivante dans votre fichier /etc/hosts:
127.0.0.1 cas
Évidemment, pour la partie développement, vous devez avoir un système de container qui fonctionne :) En bref, 2 choix possibles: podman ou docker.
podman
Sur un système Ubuntu, il vous suffira d'installer les paquets suivants:
sudo apt install podman podman-compose golang-github-containernetworking-plugin-dnsname
docker
Récupération des fichiers
On récupère la dernière version disponible:
wget https://gitlab.insa-rouen.fr/bonnegent/oto/-/archive/main/oto-main.tar.bz2
tar xjf oto-main.tar.bz2
À présent nous avons un dossier oto-main qui correspond au dossier de base de notre projet, on va donc le renommer pour correspondre à votre projet. Par exemple, si votre projet est toto:
mv oto-main toto
cd toto
Configuration
Dans pyproject.toml, il faut adapter les informations, notamment:
[tool.poetry]
name = "oto"
version = "23.3.31"
description = ""
Ainsi que site_name dans le fichier: mkdocs.yml.
Par défaut, oto inclu une application core. Vous pouvez l'utiliser directement si cela vous couvient (contenu du dossier core). Sinon il faudra adapter:
- oto.sh: variable APP
- conf/settings.py
- conf/urls.py
- docker-compose.yml
Si vous n'utilisez pas le projet core par défaut, ou que vous voulez mettre en place une autre application, il faut créer un nouveau projet avec ces commandes (cependant je vous recommande de rester avec l'application par défaut)):
./oto.sh build
podman-compose run web python manage.py startapp polls
sudo chown -R $USERNAME polls
Construction des containers
Une fois la configuration initiale effectuée, on peut créer les images pour nos containers:
./oto.sh build
./oto.sh migration
sudo chown $USERNAME db.sqlite3
Configuration Django
Il est préférable de ne pas modifier le fichier de configuration générale (conf/settings.py), mais plutôt de créer un fichier de configuration locale (conf/settings.py). Voici un exemple de ce qu'il pourrait contenir:
SECRET_KEY = '...'
DEBUG = False
ALLOWED_HOSTS = []
...
Droits d'admin
Par défaut, tout utilisateur doit passer par une authentification CAS. Il faut d'abord se connecter avec un utilisateur, cela va forcer sa création dans la base de données locale. Pour cela, il faut démarrer les containers:
./oto.sh start
Se connecter à l'interface web (http://localhost:8000/) et s'authentifier. Vous trouverez les informations sur les comptes préconfigurer ici: Architecture
Ensuite on va pouvoir lui donner les droits d'administrations:
./oto.sh sh
User.objects.filter(id=User.objects.first().id).update(is_staff=True, is_superuser=True)
exit
Si nécessaire, vous pouvez créer un compte administrateur avec la commande suivante:
docker-compose run web python manage.py createsuperuser
Chargement de données initiales
Si vous avez un export json des données initiales, vous pouvez le mettre dans le fichier PROJET/fixtures/initial_data.json et le charger avec la commande:
./oto.sh initial