diff --git a/.drone.yml b/.drone.yml index b003819..30739dc 100644 --- a/.drone.yml +++ b/.drone.yml @@ -34,6 +34,18 @@ kind: secret name: CREMEAUX_AWS_SECRET_ACCESS_KEY data: L2G0Q59Ujb6TA1Y4VC0ykU7XaGG6wq834i8m3Jcnslj6LyB13L2c7jm0r3kwhp9dm/HmhjAsudVD5AILRKbIof7RHtFrdi5JcoCiAuDlHWQXf48nzDyC8c5uZVU= +--- +# drone encrypt ResiLien/portails $AWS_ACCESS_KEY_ID +kind: secret +name: RESILIEN_AWS_ACCESS_KEY_ID +data: TDoSK5Lnhn6mi6gmO/ulqdflcbPta55iXZ011Z/qePv1sYV0b5h8XDpMkY+vzv7CEe7e1jQT + +--- +# drone encrypt ResiLien/portails $AWS_SECRET_ACCESS_KEY +kind: secret +name: RESILIEN_AWS_SECRET_ACCESS_KEY +data: Da5HV8Pvw17W56RKlYsTSQI2RDur9LtgR7iiPuBRdehXPOwDOesYGZRnpvTOftRB3ob2jS4//uk7EjnaaJTDXRMEqz6UlcrPJVS9XtkTvSc9cbjtwCKMfMKFQCg= + --- kind: pipeline type: docker @@ -90,3 +102,22 @@ steps: - hugo --minify --environment cremeaux.org - hugo --minify --environment cremeaux.org - hugo deploy --environment cremeaux.org + +--- +kind: pipeline +type: docker +name: RésiLien + +steps: +- name: Installation des dépendances & construction du site + image: hugomods/hugo:exts-0.123.8 + environment: + AWS_ACCESS_KEY_ID: + from_secret: CREMEAUX_AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY: + from_secret: CREMEAUX_AWS_SECRET_ACCESS_KEY + commands: + - npm install --ignore-scripts + - hugo --minify --environment staging.resilien.fr + - hugo --minify --environment staging.resilien.fr + - hugo deploy --environment staging.resilien.fr diff --git a/config/staging.resilien.fr/hugo.toml b/config/staging.resilien.fr/hugo.toml new file mode 100644 index 0000000..50a8898 --- /dev/null +++ b/config/staging.resilien.fr/hugo.toml @@ -0,0 +1,22 @@ +baseURL = "https://staging.resilien.fr/" +title = "RésiLien" +languageCode = "fr-FR" +defaultContentLanguage = "fr" +disableLanguages = ["de", "nl", "en"] + +[Params] + url = "resilien.fr" + domain = "resilien.fr" + support = "support@resilien.fr" + poweredBy = true + uptimeKumaUrl = "https://status.resilien.fr" + + [Params.doks] + breadcrumbTrail = true + +[languages.fr.params] + footer = 'Mise en place et hébergé avec sobriété par RésiLien' + +[deployment.targets] + name = "production" + URL = "s3://staging.resilien.fr?endpoint=https://s3.garage.resilien.cloud&disableSSL=true&s3ForcePathStyle=true®ion=garage" diff --git a/config/staging.resilien.fr/menus.fr.toml b/config/staging.resilien.fr/menus.fr.toml new file mode 100644 index 0000000..520c70a --- /dev/null +++ b/config/staging.resilien.fr/menus.fr.toml @@ -0,0 +1,19 @@ +[[main]] + name = "Guides" + url = "/docs/introduction/bienvenue/" + weight = 10 + +[[footer]] + name = "Mentions légales" + url = "/mentions-legales/" + weight = 10 + +[[footer]] + name = "Sources du site" + url = "https://git.resilien.fr/ResiLien/portails/" + weight = 20 + +[[footer]] + name = "Statuts des services" + url = "https://status.resilien.fr/" + weight = 30 diff --git a/config/staging.resilien.fr/module.toml b/config/staging.resilien.fr/module.toml new file mode 100644 index 0000000..186764e --- /dev/null +++ b/config/staging.resilien.fr/module.toml @@ -0,0 +1,134 @@ +# mounts +## archetypes +[[mounts]] + source = "node_modules/@hyas/doks-core/archetypes" + target = "archetypes" + +[[mounts]] + source = "archetypes" + target = "archetypes" + +## assets +[[mounts]] + source = "node_modules/@hyas/core/assets" + target = "assets" +[[mounts]] + source = "portails/resilien.fr/assets" + target = "assets" + +[[mounts]] + source = "node_modules/@hyas/images/assets" + target = "assets" + excludeFiles = "/scss/**.scss" + +[[mounts]] + source = "node_modules/@hyas/doks-core/assets" + target = "assets" + +[[mounts]] + source = "node_modules/@tabler/icons/icons" + target = "assets/svgs/tabler-icons" + +[[mounts]] + source = "assets" + target = "assets" + +## content +[[mounts]] + source = "portails/shared/content" + target = "content" +[[mounts]] + source = "portails/shared/docs/directus" + target = "content/docs/directus" +[[mounts]] + source = "portails/shared/docs/element" + target = "content/docs/element" +[[mounts]] + source = "portails/shared/docs/gitea" + target = "content/docs/gitea" +[[mounts]] + source = "portails/shared/docs/listmonk" + target = "content/docs/listmonk" +[[mounts]] + source = "portails/shared/docs/metabase" + target = "content/docs/metabase" +[[mounts]] + source = "portails/shared/docs/nextcloud" + target = "content/docs/nextcloud" +[[mounts]] + source = "portails/shared/docs/outline" + target = "content/docs/outline" +[[mounts]] + source = "portails/shared/docs/vaultwarden" + target = "content/docs/vaultwarden" +[[mounts]] + source = "portails/shared/docs/vikunja" + target = "content/docs/vikunja" + +[[mounts]] + source = "portails/resilien.fr/content" + target = "content" + +## data +[[mounts]] + source = "node_modules/@hyas/doks-core/data" + target = "data" + +[[mounts]] + source = "data" + target = "data" + +[[mounts]] + source = "portails/shared/data" + target = "data" + +[[mounts]] + source = "portails/resilien.fr/data" + target = "data" + +## i18n +[[mounts]] + source = "node_modules/@hyas/doks-core/i18n" + target = "i18n" + +[[mounts]] + source = "i18n" + target = "i18n" + +## layouts +[[mounts]] + source = "node_modules/@hyas/core/layouts" + target = "layouts" + +[[mounts]] + source = "node_modules/@hyas/seo/layouts" + target = "layouts" + +[[mounts]] + source = "node_modules/@hyas/images/layouts" + target = "layouts" + +[[mounts]] + source = "node_modules/@hyas/doks-core/layouts" + target = "layouts" + +[[mounts]] + source = "node_modules/@hyas/inline-svg/layouts" + target = "layouts" + +[[mounts]] + source = "layouts" + target = "layouts" + +[[mounts]] + source = "portails/shared/layouts" + target = "layouts" + +## static +[[mounts]] + source = "node_modules/@hyas/doks-core/static" + target = "static" + +[[mounts]] + source = "static" + target = "static" diff --git a/portails/resilien.fr/assets/scss/common/_variables-custom.scss b/portails/resilien.fr/assets/scss/common/_variables-custom.scss new file mode 100644 index 0000000..a84425c --- /dev/null +++ b/portails/resilien.fr/assets/scss/common/_variables-custom.scss @@ -0,0 +1,67 @@ +$primary: #f9bc60; + +body { + --bs-body-bg: #004643; + --bs-body-color: #e8e4e6; + + .navbar { + background-color: #004643; + + a, .offcanvas .nav-link { + text-decoration: dotted; + text-decoration-line: underline!important; + color: #f9bc60; + } + } + + a { + text-decoration: dotted; + color: #f9bc60; + text-decoration-line: underline!important; + } + + &.home h1 { + margin-top: 4rem; + margin-bottom: 4rem; + } + + .lead { + margin-top: 4rem; + margin-bottom: 2rem; + text-align: left; + } + + .section-features { + background-color: #abd1c6; + color: #001e1d; + + .row.justify-content-center.text-center { + gap: 2.5rem; + } + + .col-12.col-lg-5.col-sm-6 { + background-color: #004643; + border-radius: 3px; + color: #e8e4e6; + h2 { + color: #f9bc60 + } + .btn.btn-primary { + background-color: #f9bc60; + color: #004643; + } + + small { + color: #e8e4e6; + } + + a { + border-color: #f9bc60; + } + } + } +} + +blockquote { + --sl-color-purple: #e8e4e6; +} diff --git a/portails/resilien.fr/content/_index.md b/portails/resilien.fr/content/_index.md new file mode 100644 index 0000000..6acc267 --- /dev/null +++ b/portails/resilien.fr/content/_index.md @@ -0,0 +1,30 @@ +--- +title : "Outils numériques libres proposés par RésiLien" +description: "" +lead: "Ce site web vous met à disposition de multiples services utiles pour collaborer, partager et avoir une vie numérique plus « saine »." +date: 2023-09-07T16:33:54+02:00 +lastmod: 2023-09-07T16:33:54+02:00 +draft: false +seo: + title: "Outils numériques libres de Cremeaux" # custom title (optional) + description: "Ce site web vous met à disposition de multiples services utiles pour collaborer, partager et avoir une vie numérique plus « saine » sur la commune de Cremeaux." # custom description (recommended) + canonical: "" # custom canonical URL (optional) + noindex: false # false (default) or true +--- + +**RésiLien** est un hébergeur de services numériques localisé en France dont l'infrastructure est décentralisée. Nous respectons [la charte](https://www.chatons.org/charte) du [Collectif des Hébergeurs Alternatifs, Transparents, Ouverts, Neutres et Solidaires](https://chatons.org/) auquel nous sommes membres depuis [décembre 2021](https://www.chatons.org/chatons/resilien). + +Reprenez le contrôle sur vos données en utilisant exclusivement des **logiciels libres** et en les stockant sur du matériel de confiance. + +Engagez-vous dans la transition écologique 🍃 en optant pour une **sobriété numérique**. + +Si vous avez une connexion Internet suffisante, hébergez dans votre local votre serveur contenant vos propres données. L'équipe de RésiLien en fera la maintenance à distance. + +RésiLien est aujourd'hui une association porté par des valeurs éthiques, une entreprise de l'**Économie Sociale et Solidaire**. + +## Quels services propose RésiLien ? + +Tous les services sont : +- open source +- accompagnés d’une formation personnalisée si besoin +- avec des sauvegardes effectuées quotidiennement sur un autre lieu diff --git a/portails/resilien.fr/content/home-bottom.md b/portails/resilien.fr/content/home-bottom.md new file mode 100644 index 0000000..70490b1 --- /dev/null +++ b/portails/resilien.fr/content/home-bottom.md @@ -0,0 +1,29 @@ +--- +headless: true +--- + +## Comment bénéficier des services de RésiLien ? + +Ayant à cœur d’avoir une relation de proximité, nous vous conseillons de contacter l’antenne la plus proche. Celle-ci vous enverra une proposition commerciale en fonction de vos besoins. Chaque prestation inclut une période d’accompagnement pour l’utilisation des services. + +
+
+
+ +> Antenne Loire +> Simon Constans +> loire@resilien.fr +> 07 57 18 01 68 + +
+ +
+ +> Antenne Côtes d’Armor +> Killian Kemps +> cotesdarmor@resilien.fr +> 07 64 70 62 94 + +
+
+
\ No newline at end of file diff --git a/portails/resilien.fr/data/services.yml b/portails/resilien.fr/data/services.yml new file mode 100644 index 0000000..46853be --- /dev/null +++ b/portails/resilien.fr/data/services.yml @@ -0,0 +1,11 @@ +- name: directus +- name: gitea +- name: hedgedoc +- name: listmonk +- name: metabase +- name: mobilizon +- name: nextcloud +- name: outline +- name: signaturepdf +- name: vaultwarden +- name: vikunja diff --git a/portails/resilien.fr/layouts/index.html b/portails/resilien.fr/layouts/index.html new file mode 100644 index 0000000..aba1d18 --- /dev/null +++ b/portails/resilien.fr/layouts/index.html @@ -0,0 +1,79 @@ +{{ define "main" }} +
+
+
+

{{ .Title | safeHTML }}

+
+
+ {{ .Content }} +
+
+
+{{ end }} + +{{ define "sidebar-prefooter" }} +
+
+
+ {{ range $service := index site.Data.services }} + {{ $defaultValues := index site.Data.portails.services $service.name }} +
+

+ {{- $icon := $service.icon | default $defaultValues.icon -}} + {{- partial "inline-svg" $icon -}}  + {{- $service.title | default $defaultValues.title -}} + {{- partial "service/title-after.html" $service -}} +

+

{{ $service.description | default $defaultValues.description | markdownify }}

+
+ {{ $url := $service.doc | default $defaultValues.doc }} + {{ if site.GetPage $url }} + Guide + {{ end }} + {{ $url := "" }} + {{ if $service.subdomain }} + {{ $url = print "https://" $service.subdomain "." site.Params.domain "/" }} + {{ else if $service.link }} + {{ $url = print $service.link "/" }} + {{ else }} + {{ $url = print "https://" $defaultValues.subdomain "." site.Params.domain "/" }} + {{ end }} + + Accéder au service + +
+ {{ if site.Params.poweredBy }} +

Propulsé par {{ $defaultValues.tool.name }}

+ {{ end }} +
+ {{ end }} +
+
+
+
+
+
+
+ {{ with .Site.GetPage "/home-bottom" }} + {{ .Content }} + {{ end }} +
+
+
+{{ end }} + +{{ define "sidebar-footer" }} +{{ if site.Params.doks.sectionFooter -}} +
+
+
+

Start building with Doks today

+ {{ i18n "get-started" }} +
+
+
+{{ end -}} +{{ end }} diff --git a/portails/resilien.fr/layouts/partials/service/title-after.html b/portails/resilien.fr/layouts/partials/service/title-after.html new file mode 100644 index 0000000..3986c00 --- /dev/null +++ b/portails/resilien.fr/layouts/partials/service/title-after.html @@ -0,0 +1,5 @@ + {{ if (.subscription | default false) -}} +{{- partial "inline-svg" (dict "src" "currency-euro" "stroke-width" "1" "stroke" "#ee52b7" "height" "1rem" "width" "1rem" "class" "svg-inline-custom") }} +{{ else }} +{{- partial "inline-svg" (dict "src" "currency-euro-off" "stroke-width" "1" "stroke" "#ee52b7" "height" "1rem" "width" "1rem" "class" "svg-inline-custom") }} +{{ end }}