services/README.md

101 lines
5.8 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Services
Vous trouverez dans ce dépôt l'ensemble des services Open Source que RésiLien utilise et met à jour de façon presque hebdomadaire. L'ensemble des variables d'environnement enregistrées dans les fichiers `.env` est présent pour une logique d'exemple et n'a jamais été utilisé en production. Nous vous conseillons de ne jamais le faire si vous utilisez le dépôt.
## Liste des services
### Pour les utilisateurs
- [Directus](./directus) : Permet d'administrer une base de données
- [HedgeDoc](./hedgedoc) : Prise de note en Markdown collaborative en temps réel
- [listmonk](./listmonk) : Gestionnaire de listes de diffusion et de newsletter
- [Mobilizon](./mobilizon): Permet l'organisation d'évènements et de gestion de groupes
- [Nextcloud](./nextcloud) : Site d'hébergement de fichiers et une plateforme de collaboration
- [signaturepdf](./signaturepdf) : Logiciel WEB libre permettant de modifier un fichier PDF facilement
- [Plausible](./plausible) : Plausible est une plateforme d'analyse Web légère et open source
- [Vaultwarden](./vaultwarden) : Gestionnaire de mot de passe compatible avec Bitwarden
- [Vikunja](./vikunja) : L'application pour organiser sa vie
### Pour les devs / ops
- [ClickHouse](./clickhouse) : Un logiciel libre de base de données orientée colonnes pour le traitement analytique en ligne
- [Drone](./drone) : Un service d'intégration continue
- [GeoIP Update](./geoipupdate) : Permet de télécharger la base de données GeoIP2 permettant de localiser les IPs
- [Gitea](./gitea) : Un service Git très simple à installer et à utiliser. Il est similaire à GitHub, Bitbucket ou Gitlab.
- [Grafana](./grafana) : Un outil de supervision simple et élégant
- [LLDAP](./lldap): Implémentation légère de LDAP pour l'authentification
- [PostgreSQL](./postgres) : PostgreSQL est un système de gestion de base de données relationnelle et objet.
- [Prometheus](./prometheus) : Un logiciel de surveillance informatique
- [Redis](./redis) : Système de gestion de base de données clé-valeur extensible, très hautes performances
- [Registry Docker](./registry) : Une application qui permet de distribuer des images Docker
- [Traefik](./traefik) : Traefik, un reverse-proxy pour vos conteneurs
- [Uptime Kuma](./uptimekuma) : outil de surveillance de site ou service WEB
- [Watchtower](./watchtower) : Automatiser la mise à jour d'image docker
## Comment ça marche ?
Vous pouvez réutiliser ce dépôt pour vos services, il existe une documentation dans le dossier [_examples_](./examples).
### Docker et Docker Compose
L'ensemble des services est géré avec [Docker](https://docs.docker.com/engine/) et [Docker Compose](https://docs.docker.com/compose/).
Voici les commandes de base :
- `docker-compose up -d` : Permet de lancer un service
- `docker-compose down -v` : Permet de supprimer un service (avec l'option -v on supprime aussi les volumes donc attention de pas perdre des données)
### ./run
> 🚧 RésiLien a changé de façon de faire et nous n'utilisons plus les scripts `run`. Nous passons maintenant par Ansible. Les scripts ne seront plus mis à jour et finiront peut être par être supprimés. Utilisez les avec précaution.
Vous pourrez trouver dans les dossiers des services un script bash `run`. Le principe est de faciliter la maintenance de chaque service.
Vous pouvez lancer le script sans paramètres pour afficher la documentation du script.
## Documentation
### `set -eu` ?
En haut de chaque script il y a `set -eu` qui veut dire :
- -e Exit immediately if a command exits with a non-zero status.
- -u Treat unset variables as an error when substituting.
### Références
- [Gestion de service avec Traefik](https://github.com/lfache/awesome-traefik)
- [Exemple de service docker](https://github.com/crazy-max)
- [LinuxServer qui construit et maintient des images Docker](https://www.linuxserver.io/)
## Tâches
> 🚧 Ses tâches ne sont pas à jour
Général :
- [ ] Mettre en place une rotation des logs
- [ ] Mettre à jour la documentation des services (HedgeDoc, Drone, Gitea, Grafana, Nextcloud, Postgres, Prometheus, Registry, Traefik, Watchtower)
Services :
- [ ] [HedgeDoc] Mettre à jour les scripts de sauvegarde et restauration pour correspondre à la nouvelle architecture
- [ ] [Drone] Création d'un script de sauvegarde et restauration
- [ ] [Nextcloud] Ajout des informations SMTP
- [ ] [Nextcloud] Prendre les bonnes pratique sur le dépot de [crazy-max](https://github.com/crazy-max/docker-nextcloud/blob/master/examples/traefik/docker-compose.yml)
- [ ] [Nextcloud] Mise à jour de Redis en version 6.2 (problème lors de la mise à jour à creuser)
- [ ] [Traefik] Mise en place d'un script pour sauvegarder/restaurer les certificats et la configuration
- [ ] [Traefik] Mettre en place les _metrics_
- [ ] [Traefik] Mettre en place l'_accesslog_
- [ ] [WireGuard] Ajouter le service pour la création de tunnel VPN
- [ ] [PostgreSQL] Faire la mise à jour à la [version 13](https://www.postgresql.org/docs/release/13.0/)
Réalisées :
- [x] ~~[CodiMD] Modifier l'image pour utiliser le fork [HedgeDoc](https://hedgedoc.org/) (2021-07-27)~~
- [x] ~~[Nextcloud] Mise à jour de Redis en version [6.0.13](https://github.com/redis/redis/releases/tag/6.0.13) (2021-05-04)~~
- [x] ~~[Grafana] Mise à jour en version [7.5.5](https://github.com/grafana/grafana/releases/tag/v7.5.5) (2021-05-04)~~
- [x] ~~Mettre à jour la documentation général et rapatrier les tâches des services ici (2021-05-04)~~
- [x] ~~[Nextcloud] Mise en place d'une sauvegarde / restauration de sauvegarde~~
- [x] ~~[Nextcloud] [Modifier la gestion des jobs](https://docs.nextcloud.com//server/latest/admin_manual/configuration_server/background_jobs_configuration.html#cron)~~
- [x] ~~[Nextcloud] [Ajouter un redis](https://www.it-connect.fr/nextcloud-activer-et-configurer-le-cache-redis/) pour une meilleure performance~~