Skip to content

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

Déployer oto

On récupère la dernière version disponible:

git clone https://gitlab.insa-rouen.fr/bonnegent/oto.git

À présent nous avons un dossier oto. On va utiliser le script deploy.sh pour déployer les fichiers nécessaires dans votre projet. Ce script prend en paramètre un dossier où installer oto. Pour l'exemple, on va considérer un dossier cible ../exemple/.

cd oto
./deploy.sh ../exemple/

À partir de maintenant, nous n'avons plus besoin du dossier oto, On restera dans le dossier ../exemple/.

Configuration

Dans pyproject.toml (du dossier exemple), il faut adapter les informations, notamment name, version et description:

[tool.poetry]
name = "votre_nom_application"
version = "23.3.31"
description = ""

Il faudra forcer la recréation du fichier .env:

./oto.sh env

Ainsi que site_name dans le fichier: mkdocs.yml.

Par défaut, oto inclu une application core.

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