Compare commits

..

2 Commits

Author SHA1 Message Date
Simon c2d74edf9c feat: Import portails architecture 2024-03-08 23:48:29 +01:00
Simon ce68831d7d feat: Exclude hugo_stats.json 2024-03-08 23:35:47 +01:00
33 changed files with 52 additions and 330 deletions

View File

@ -1,11 +1,11 @@
--- ---
# drone encrypt ResiLien/gare-centrale $AWS_ACCESS_KEY_ID # drone encrypt ResiLien/portails $AWS_ACCESS_KEY_ID
kind: secret kind: secret
name: P4PILLON_AWS_ACCESS_KEY_ID name: P4PILLON_AWS_ACCESS_KEY_ID
data: XY87aSNvLDeNNSMT1xHmVUTWXSpXJORM/P8RCRmsVWtByyefTbXX1cF0A4EuokVbOJs0DJZs data: XY87aSNvLDeNNSMT1xHmVUTWXSpXJORM/P8RCRmsVWtByyefTbXX1cF0A4EuokVbOJs0DJZs
--- ---
# drone encrypt ResiLien/gare-centrale $AWS_SECRET_ACCESS_KEY # drone encrypt ResiLien/portails $AWS_SECRET_ACCESS_KEY
kind: secret kind: secret
name: P4PILLON_AWS_SECRET_ACCESS_KEY name: P4PILLON_AWS_SECRET_ACCESS_KEY
data: 58Boc2Ux7MKwvh1nHh2xmY4JEje5CyX0/H/z6tM/ehLD1m4WQKblvc/+PX0DcaFqX86JPG8osLRsglkP9pyW7iH5WwuMQcXR/NzOAJioO+xgrh/14qUCYe+N5Yc= data: 58Boc2Ux7MKwvh1nHh2xmY4JEje5CyX0/H/z6tM/ehLD1m4WQKblvc/+PX0DcaFqX86JPG8osLRsglkP9pyW7iH5WwuMQcXR/NzOAJioO+xgrh/14qUCYe+N5Yc=
@ -19,7 +19,6 @@ steps:
- name: Installation des dépendances & construction du site - name: Installation des dépendances & construction du site
image: hugomods/hugo:exts-0.121.1 image: hugomods/hugo:exts-0.121.1
environment: environment:
HUGO_ENVIRONEMENT: apps.p4pillon.org
AWS_ACCESS_KEY_ID: AWS_ACCESS_KEY_ID:
from_secret: P4PILLON_AWS_ACCESS_KEY_ID from_secret: P4PILLON_AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY: AWS_SECRET_ACCESS_KEY:
@ -29,5 +28,5 @@ steps:
path: /drone/src/resources path: /drone/src/resources
commands: commands:
- npm install --ignore-scripts - npm install --ignore-scripts
- hugo --minify - hugo --minify --environment apps.p4pillon.org
- hugo deploy - hugo deploy --environment apps.p4pillon.org

1
.gitignore vendored
View File

@ -6,3 +6,4 @@ yarn-error.log
node_modules node_modules
public public
resources resources
hugo_stats.json

View File

@ -10,7 +10,7 @@
[[footer]] [[footer]]
name = "Sources du site" name = "Sources du site"
url = "https://git.resilien.fr/ResiLien/gare-centrale/" url = "https://git.resilien.fr/ResiLien/portails/"
weight = 20 weight = 20
[[footer]] [[footer]]

View File

@ -32,11 +32,11 @@
## content ## content
[[mounts]] [[mounts]]
source = "gare-centrale/content" source = "portails/shared/content"
target = "content" target = "content"
[[mounts]] [[mounts]]
source = "gare-centrale/apps.p4pillon.org/content" source = "portails/apps.p4pillon.org/content"
target = "content" target = "content"
## data ## data
@ -49,11 +49,11 @@
target = "data" target = "data"
[[mounts]] [[mounts]]
source = "gare-centrale/data" source = "portails/shared/data"
target = "data" target = "data"
[[mounts]] [[mounts]]
source = "gare-centrale/apps.p4pillon.org/data" source = "portails/apps.p4pillon.org/data"
target = "data" target = "data"
## i18n ## i18n
@ -91,7 +91,7 @@
target = "layouts" target = "layouts"
[[mounts]] [[mounts]]
source = "gare-centrale/layouts" source = "portails/shared/layouts"
target = "layouts" target = "layouts"
## static ## static

View File

@ -1,16 +0,0 @@
# Les portails de services de RésiLien
Permettre facilement de créer des portails de services (accompagné d'une documentation mutualisée) que RésiLien met à disposition.
## Développement
Pour utiliser ce projet il faut renseigner un environnement spécifique à Hugo : `export HUGO_ENVIRONEMENT=apps.p4pillon.org` par exemple.
Puis lancer les commandes contenu dans `packages.json` comme par exemple `npm run dev`.
## Déploiement
Un déploiement automatique a été mis en place pour que Drone déploie automatiquement l'ensemble des sites sur notre cluster S3
## Surcharge de Doks
Pour faciliter la mise à jour du p

View File

@ -1,280 +0,0 @@
{
"htmlElements": {
"tags": [
"a",
"article",
"aside",
"blockquote",
"body",
"br",
"button",
"circle",
"details",
"div",
"footer",
"form",
"g",
"h1",
"h2",
"h3",
"h5",
"head",
"header",
"hr",
"html",
"img",
"input",
"kbd",
"label",
"li",
"line",
"link",
"main",
"meta",
"nav",
"noscript",
"p",
"path",
"script",
"section",
"small",
"span",
"strong",
"style",
"summary",
"svg",
"template",
"time",
"title",
"ul"
],
"classes": [
"DocSearch-Label",
"active",
"anchor",
"bg-dots",
"blog-header",
"brand-git",
"btn",
"btn-close",
"btn-group",
"btn-link",
"btn-outline-primary",
"btn-primary",
"callout",
"callout-body",
"callout-content",
"callout-icon",
"callout-tip",
"callout-title",
"card",
"card-body",
"card-list",
"categories",
"chart-dots-2",
"col-lg-10",
"col-lg-11",
"col-lg-12",
"col-lg-5",
"col-lg-8",
"col-lg-9",
"col-md-12",
"col-xl-3",
"col-xl-4",
"col-xl-8",
"col-xl-9",
"container",
"container-fluid",
"container-lg",
"content",
"contributors",
"created-date",
"d-flex",
"d-lg-block",
"d-lg-none",
"d-md-block",
"d-md-none",
"d-none",
"d-xl-block",
"d-xl-none",
"docs",
"docs-content",
"docs-link",
"docs-links",
"docs-sidebar",
"docs-toc",
"doks-sidebar",
"error404",
"files",
"flex-column",
"flex-grow-1",
"flex-lg-row",
"flex-md-row",
"flex-row",
"flex-sm-row",
"flex-xl-nowrap",
"footer",
"form-control",
"form-control-lg",
"fs-5",
"h-auto",
"h4",
"h5",
"h6",
"home",
"icon",
"icon-tabler",
"icon-tabler-arrow-left",
"icon-tabler-arrow-right",
"icon-tabler-dots-vertical",
"icon-tabler-menu",
"icon-tabler-moon",
"icon-tabler-search",
"icon-tabler-sun",
"icon-tabler-x",
"info-circle",
"justify-content-between",
"justify-content-center",
"justify-content-end",
"justify-content-start",
"lead",
"list",
"list-details",
"list-inline",
"list-inline-item",
"list-unstyled",
"list-view",
"m-2",
"mail-fast",
"mb-0",
"mb-1",
"mb-2",
"mb-3",
"mb-4",
"me-2",
"me-auto",
"me-lg-1",
"me-lg-3",
"mentions-legales",
"message",
"messages",
"modal",
"modal-body",
"modal-content",
"modal-dialog",
"modal-dialog-scrollable",
"modal-footer",
"modal-fullscreen-md-down",
"modal-header",
"modal-title",
"ms-2",
"ms-3",
"ms-lg-2",
"mt-1",
"mt-3",
"mt-4",
"mt-n3",
"mx-2",
"mx-auto",
"my-3",
"nav",
"nav-item",
"nav-link",
"navbar",
"navbar-brand",
"navbar-expand-lg",
"navbar-nav",
"offcanvas",
"offcanvas-body",
"offcanvas-end",
"offcanvas-header",
"offcanvas-start",
"offcanvas-title",
"order-3",
"order-lg-4",
"p-0",
"p-2",
"page-footer-meta",
"page-links",
"page-nav",
"pb-2",
"pb-3",
"pe-4",
"pencil",
"ps-3",
"pt-4",
"px-0",
"query-no-results",
"route-2",
"row",
"search-form",
"search-input",
"search-loading",
"search-no-recent",
"search-no-results",
"search-result",
"search-results",
"search-text",
"section",
"section-features",
"section-md",
"shield-lock",
"single",
"social-link",
"status",
"sticky-top",
"stretched-link",
"submitted",
"svg-inline",
"tags",
"taxonomy",
"text-body-secondary",
"text-center",
"text-decoration-none",
"text-end",
"text-lg-end",
"text-lg-start",
"text-muted",
"text-reset",
"text-uppercase",
"title",
"title-submitted",
"toc-mobile",
"visually-hidden",
"w-100",
"wrap"
],
"ids": [
"TableOfContents",
"buttonColorMode",
"cookie",
"créer-un-compte",
"directeur-de-publication",
"doks-docs-nav",
"développement-et-maintenance",
"hébergement",
"le-canal-lamelio-sur-matrix",
"liens-hypertextes",
"nextcloud",
"offcanvasNavMain",
"offcanvasNavMainLabel",
"offcanvasNavSection",
"offcanvasNavSectionLabel",
"où-suis-je-",
"projet-eimis",
"query",
"sauvegarde",
"search-form",
"searchModal",
"searchModalLabel",
"searchResults",
"searchToggleDesktop",
"searchToggleMobile",
"sidebar-default",
"socialMenu",
"support",
"toc",
"éditeur"
]
}
}

27
portails/README.md Normal file
View File

@ -0,0 +1,27 @@
# Les portails de services de RésiLien
Ce projet permet de créer des portails de services, une page avec des liens vers les services que RésiLien met à disposition accompagné d'une documentation mutualisée entre les différents portails.
## Explication technique
Dans Hugo, il est possible de créer des environnements spécifiques en général on l'utilise pour différencier des environnements de test, pord ou local. Nous l'utiliserons ici pour mettre en place un portail par environement.
Lorsque l'on spécifie `export HUGO_ENVIRONEMENT=apps.p4pillon.org` et qu'on lance `npm run dev` qui n'est rien d'autre que la commande `hugo serve` avec des paramètres en plus alors il charge le dossier `config/apps.p4pillon.org`.
Dans ce dossier, on retrouve des fichiers de configuration dont le fichier `module.toml` qui permet de dire à Hugo quels dossiers sont pris en compte, ce qui nous permet d'avoir une configuration partagé dans le dossier `portails/shared` mais aussi de pouvoir surcharger facilement pour un besoin spécifique dans le dossier `portails/apps.p4pillon.org` par exemple.
Dans le dossier `portails/shared` nous allons avoir l'ensemble des templates (`layout`) que l'on surcharge de Doks, un catalogue de services dans le fichier `data/portails.yml` et l'ensemble de la documentation pour l'utilisation d'un service lui permettant de comprendre à l'utiliser.
Dans le dossier `portails/apps.p4pillon.org` nous aurons le dossier `content` permettant d'avoir du contenu spécifique mais aussi le fichier `data/services.yml` permettant de paramètrer les services.
## Déploiement
Un déploiement automatique a été mis en place `.drone.yml` pour que Drone déploie automatiquement l'ensemble des sites sur notre cluster S3.
## Mise à jour
Nous pouvons mettre à jour notre documentation générale ou les services proposés en ajoutant ou modifiant le contenu dans `portails/shared/` un dossier qui n'est pas référencé dans Doks ce qui simplifira les montés de version.
Pour mettre à jour Doks, il suffit d'ajouter le dépôt Git du projet original `git remote add doks git@github.com:gethyas/doks.git`, de rappatrier les nouveaux changement `git pull doks --rebase` et ainsi ne pas avoir de conflit. Seul le fichier `hugo_stats.json` qui récolte toutes les propriétés CSS du framework Tailwindcss utilisé dans les templates. C'est pourquoi un des premiers commit est la mise dans `.gitignore`.
Lors de la mise à jour de Doks, il faut vérifier s'il faut mettre à jour la version de Hugo dans `.drone.yml`. Je n'ai pas réussi à ce que l'image utilise le Drone importé par _npm_.

View File

@ -1,13 +1,4 @@
services: services:
authelia:
tool:
name: Authelia
link: https://www.authelia.com/
title: Gérer vos données
icon: files
description: Gérer en collaboration vos fichiers, contacts et agendas pour permettre une bonne organisation.
subdomain: nuage
doc: /docs/nuage/gérer-vos-données/
directus: directus:
tool: tool:
name: Directus name: Directus
@ -15,8 +6,17 @@ services:
title: Gestion de contenu title: Gestion de contenu
icon: route-2 icon: route-2
description: Directus est un logiciel de gestion de contenu qui permet de stocker et d'accéder au contenu via une API. description: Directus est un logiciel de gestion de contenu qui permet de stocker et d'accéder au contenu via une API.
subdomain: nuage subdomain: admin
doc: /docs/nuage/gérer-vos-données/ doc: /docs/nuage/gérer-vos-données/
element:
tool:
name: Element
link: https://element.io/
title: Discussion entre équipes
icon: messages
description: Échanger ensemble avec une messagerie instantanée sécurisée et décentralisée sur différents sujets.
subdomain: chat
doc: /docs/chat/discussion-entre-%C3%A9quipes/
gitea: gitea:
tool: tool:
name: Gitea name: Gitea
@ -44,15 +44,6 @@ services:
description: Solution d'informatique décisionnelle, mise en place de graphique de ses données pour piloter son activité. description: Solution d'informatique décisionnelle, mise en place de graphique de ses données pour piloter son activité.
subdomain: tableaudebord subdomain: tableaudebord
doc: /docs/nuage/gérer-vos-données/ doc: /docs/nuage/gérer-vos-données/
element:
tool:
name: Element
link: https://element.io/
title: Discussion entre équipes
icon: messages
description: Échanger ensemble avec une messagerie instantanée sécurisée et décentralisée sur différents sujets.
subdomain: nuage
doc: /docs/chat/discussion-entre-%C3%A9quipes/
nextcloud: nextcloud:
tool: tool:
name: Nextcloud name: Nextcloud

View File

@ -22,8 +22,8 @@
<section class="section section-md section-features"> <section class="section section-md section-features">
<div class="container"> <div class="container">
<div class="row justify-content-center text-center"> <div class="row justify-content-center text-center">
{{ range $service := .Site.Data.services }} {{ range $service := index site.Data site.Params.url }}
{{ $defaultValues := index site.Data.default.services $service.name }} {{ $defaultValues := index site.Data.shared.services $service.name }}
<div class="col-lg-5"> <div class="col-lg-5">
<h2 class="h4"> <h2 class="h4">
{{- $icon := $service.icon | default $defaultValues.icon -}} {{- $icon := $service.icon | default $defaultValues.icon -}}

View File

@ -1,7 +1,7 @@
<hr class="mt-1 mb-1"/> <hr class="mt-1 mb-1"/>
<ul id="socialMenu" class="nav mx-auto flex-row order-lg-4"> <ul id="socialMenu" class="nav mx-auto flex-row order-lg-4">
{{ range $service := site.Data.services }} {{ range $service := index site.Data site.Params.url }}
{{ $defaultValues := index site.Data.default.services $service.name }} {{ $defaultValues := index site.Data.shared.services $service.name }}
{{ $icon := $service.icon | default $defaultValues.icon }} {{ $icon := $service.icon | default $defaultValues.icon }}
<li class="nav-item"> <li class="nav-item">
<a class="nav-link social-link" title="{{ $service.title | default $defaultValues.title }}" href="{{- if $service.subdomain -}} <a class="nav-link social-link" title="{{ $service.title | default $defaultValues.title }}" href="{{- if $service.subdomain -}}