From 867e8bbcd81c5f5ab4012ed0922e565308709304 Mon Sep 17 00:00:00 2001 From: Fanny Cheung Date: Fri, 26 Jun 2026 16:21:47 +0200 Subject: [PATCH 1/2] Ajout d'une doc pour installer toctoctoc en local --- README.md | 6 +- docs/installer-toctoctoc-en-local.md | 110 +++++++++++++++++++++++++++ 2 files changed, 115 insertions(+), 1 deletion(-) create mode 100644 docs/installer-toctoctoc-en-local.md diff --git a/README.md b/README.md index 23062b26..e5af32d3 100644 --- a/README.md +++ b/README.md @@ -10,11 +10,15 @@ avec son contenu. - Ouvrir un terminal - Récupérer le repo `git clone git@github.com:lechappeebelle/scribouilli.git` dans le dossier qui va bien - Rentrer dans le dossier `scribouilli` -- Faire `npm install` +- Faire `npm install --ignore-scripts` - Builder le projet avec `npm run dev` - Lancer le projet avec `npm start` dans un autre terminal - Ouvrir dans votre navigateur préféré `http://localhost:8080/` +Le site en local fonctionne par défaut avec l'authentification à GitHub. Pour +s'authentifier avec GitLab ou Scribougit, il est nécessaire d'[installer une +instance de toctoctoc en local](/docs/installer-toctoctoc-en-local.md) + ## Développement - Forker le repo sur votre compte diff --git a/docs/installer-toctoctoc-en-local.md b/docs/installer-toctoctoc-en-local.md new file mode 100644 index 00000000..83457540 --- /dev/null +++ b/docs/installer-toctoctoc-en-local.md @@ -0,0 +1,110 @@ +# Installer toctoctoc en local + +Par défaut, Scribouilli en local fonctionne avec l'authentification à GitHub. Pour s'authentifier avec GitLab, il est nécessaire d'installer une +instance de [toctoctoc](https://github.com/Scribouilli/toctoctoc) en local. + +## C'est quoi toctoctoc ? + +[toctoctoc](https://github.com/Scribouilli/toctoctoc) est un serveur générique +qui permet de s'authentifier à un service d'identité via OAuth. + +Dans le cas de Scribouilli, il permet de s'authentifier via GitHub, GitLab et +Scribougit (qui est une instance de GitLab). + +## Installation + +Dans cette installation, on va installer un serveur toctoctoc qui sera accessible +à l'URL http://localhost:4000. + +### 1. Prérequis + +- [Node.js](https://nodejs.org/en/download/) >=20 + +### 2. Créer une application OAuth dans GitLab + +- Se connecter à GitLab. +- Dans le menu en haut à droite, sélectionner son avatar. +- Choisir `Modifier le profil`. +- Dans la barre de gauche, choisir `Accès` > `Applications`. +- Cliquer sur `Ajouter une nouvelle application`. +- Remplir les informations : + - Nom : toctoctoc + - URI de retour (redirect URI) : http://localhost:4000/gitlab-callback + - Confidentiel : non + - Autorisation d'accès de l'appareil : oui + - Scopes : `read_repository`, `write_repository`, `email`. +- Enregistrer l'application. +- Garder de côté l'identifiant de l'application GitLab et son secret. On en + aura besoin pour la suite. + +### 3. Installer le serveur toctoctoc en local + +Cloner le dépôt git : +``` +git clone git@github.com:Scribouilli/toctoctoc.git +``` + +Installer les dépendances : +``` +npm install --ignore-scripts +``` + +### 4. Définir les variables d'environnement + +Dans un fichier `.env`, on définit les variables d'environnement suivantes : +``` +PORT=4000 +HOST=localhost +TOCTOCTOC_ORIGIN=http://localhost:4000 +``` + +Lancer le serveur une première fois avec : +``` +npm run start:no-config +``` + +### 4. Configurer GitLab en tant que service d'authentification + +``` +{ + "gitlab": [ + { + "origin": "https://gitlab.com", + "client_id": "a8146ce80b869879b5615ae9c565396db6e5536e31fb4834f23b051924542952", + "client_secret": "gloas-1807964be991797511c71199efe670b50a882a8809989ea000685fd413e8282e" + } + ] +} +``` + +- Aller sur l'URL : http://localhost:4000/oauth-services-config. +- Cliquer sur le bouton `Renew` pour obtenir une clé de déchiffrage (`OAUTH_SERVICES_DECRYPTION_KEY`). +- Dans `JSON configuration content`, copier la configuration suivante avec + l'identifiant GitLab et son secret qu'on a mis de côté précédemment : +``` +{ + "gitlab": [ + { + "origin": "https://gitlab.com", + "client_id": "identifiant", + "client_secret": "secret" + } + ] +} +``` +- Dans le fichier `.env`, ajouter la ligne `OAUTH_SERVICES_DECRYPTION_KEY` avec + la clé de déchiffrage qu'on vient juste de générer : + +``` +OAUTH_SERVICES_DECRYPTION_KEY=ma_clé_de_chiffrage +PORT=4000 +HOST=localhost +TOCTOCTOC_ORIGIN=http://localhost:4000 +``` + +- Mettre à jour le fichier `oauth-services.json.encrypted` à la racine du dépôt avec le + contenu chiffré de la configuration (qu'on a généré dans le champ `Encrypted`). + +## Tester avc Scribouilli en local + +toctoctoc est maintenant accessible sur http://localhost:4000. From a5687a03dd75b19aa2b0a2296159ecde28d447ba Mon Sep 17 00:00:00 2001 From: Fanny Cheung Date: Fri, 26 Jun 2026 16:45:15 +0200 Subject: [PATCH 2/2] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20la=20doc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 7 ++++- docs/installer-toctoctoc-en-local.md | 44 ++++++++++++++++------------ 2 files changed, 32 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index e5af32d3..bdf6f18a 100644 --- a/README.md +++ b/README.md @@ -34,9 +34,14 @@ Une fois les développements réalisés, vous pouvez faire une PR dans Scribouil ### Limite connue -Pour le moment, il n'est pas possible de tester en local des sites hébergés sur gitlab ou scribougit (`git.scribouilli.org`) +Pour le moment, à l'installation de Scribouilli, il n'est pas possible de tester +en local des sites hébergés sur gitlab ou scribougit (`git.scribouilli.org`). + On peut le faire, mais ça demande de changer la config de toctoctoc en prod (et donc, ça casse la prod pour les sites ; une histoire de `redirect_uri`) +Une manière de faire, c'est d'[installer une +instance de toctoctoc en local](/docs/installer-toctoctoc-en-local.md) et de la +configurer avec une application OAuth GitLab et une application OAuth sur git.scribouilli.org qui redirigent vers `localhost`. ### Outils de développement diff --git a/docs/installer-toctoctoc-en-local.md b/docs/installer-toctoctoc-en-local.md index 83457540..c40418f0 100644 --- a/docs/installer-toctoctoc-en-local.md +++ b/docs/installer-toctoctoc-en-local.md @@ -1,8 +1,5 @@ # Installer toctoctoc en local -Par défaut, Scribouilli en local fonctionne avec l'authentification à GitHub. Pour s'authentifier avec GitLab, il est nécessaire d'installer une -instance de [toctoctoc](https://github.com/Scribouilli/toctoctoc) en local. - ## C'est quoi toctoctoc ? [toctoctoc](https://github.com/Scribouilli/toctoctoc) est un serveur générique @@ -11,10 +8,17 @@ qui permet de s'authentifier à un service d'identité via OAuth. Dans le cas de Scribouilli, il permet de s'authentifier via GitHub, GitLab et Scribougit (qui est une instance de GitLab). +Par défaut, Scribouilli en local fonctionne avec l'authentification à GitHub sur +le serveur de production de toctoctoc. + +Pour s'authentifier avec GitLab, il est nécessaire d'installer une +instance de [toctoctoc](https://github.com/Scribouilli/toctoctoc) en local. + + ## Installation -Dans cette installation, on va installer un serveur toctoctoc qui sera accessible -à l'URL http://localhost:4000. +Dans cette installation, on va installer un serveur toctoctoc qui permet +l'authentification via GitLab et qui sera accessible à l'URL http://localhost:4000. ### 1. Prérequis @@ -65,18 +69,6 @@ npm run start:no-config ### 4. Configurer GitLab en tant que service d'authentification -``` -{ - "gitlab": [ - { - "origin": "https://gitlab.com", - "client_id": "a8146ce80b869879b5615ae9c565396db6e5536e31fb4834f23b051924542952", - "client_secret": "gloas-1807964be991797511c71199efe670b50a882a8809989ea000685fd413e8282e" - } - ] -} -``` - - Aller sur l'URL : http://localhost:4000/oauth-services-config. - Cliquer sur le bouton `Renew` pour obtenir une clé de déchiffrage (`OAUTH_SERVICES_DECRYPTION_KEY`). - Dans `JSON configuration content`, copier la configuration suivante avec @@ -105,6 +97,22 @@ TOCTOCTOC_ORIGIN=http://localhost:4000 - Mettre à jour le fichier `oauth-services.json.encrypted` à la racine du dépôt avec le contenu chiffré de la configuration (qu'on a généré dans le champ `Encrypted`). -## Tester avc Scribouilli en local +## Tester avec Scribouilli en local toctoctoc est maintenant accessible sur http://localhost:4000. + +Dans le dépôt de Scribouilli, ouvrir le fichier `assets/scripts/routes/login.ts`. +En haut du fichier, mettre en commentaire la variable `TOCTOCTOC_ORIGIN` qui pointe +vers le serveur toctoctoc de production et ajouter une variable qui pointe sur +son serveur local de toctoctoc : +```ts +// assets/scripts/routes/login.ts + +/* const TOCTOCTOC_ORIGIN = `https://toctoctoc.lechappeebelle.team` */ +const TOCTOCTOC_ORIGIN = `http://localhost:4000` +``` + +- Relancer le build de Scribouilli avec `npm run dev` +- et le lancer avec `npm start` dans un autre terminal. + +On peut maintenant se connecter à GitLab sur son Scribouilli local 🎉