Une collectivité comptant environ 1 000 agents dans une ville d’environ 30 000 habitants a récemment auto-hébergé Grist sur ses serveurs locaux. Si vous envisagez de vous lancer, ce témoignage illustre que c’est faisable, même sans être expert Docker au départ — et que c’est aussi l’occasion de monter en compétences.
Ce qui a bien marché
-
Installation sur machine virtuelle locale : l’équipe DSI a créé une VM et déployé Grist avec Docker
-
Montée en compétences : même si Docker n’était pas maîtrisé au départ, ce projet a permis à la DSI de développer ses compétences techniques — un investissement qui servira pour d’autres projets
-
Autonomie : la commune gère son instance en toute indépendance
Les difficultés rencontrées (et les solutions)
1. Docker et la courbe d’apprentissage
La technologie Docker n’était pas maîtrisée au départ. Pour se lancer :
-
Webinaire auto-hébergement (juin 2025) avec présentation pas à pas
2. Reverse proxy et certificats SSL (Traefik + Let’s Encrypt)
Configurer un reverse proxy propre pour exposer Grist sur le web n’est pas trivial. La commune a utilisé Traefik, qui est puissant mais complexe à prendre en main.
Ressources utiles :
-
Grist Omnibus : package clé-en-main Grist + Dex + Traefik pour débuter rapidement -
Exemple Docker + NGINX : configuration complète avec SWAG/NGINX -
Discussion Traefik + Grist sur le forum anglophone
3. Stockage S3 et sauvegardes automatiques (MinIO)
Pour bénéficier des instantanés / snapshots (historique des versions), il faut un stockage S3. La commune a exploré MinIO comme alternative auto-hébergée à AWS S3.
Ressources :
-
Documentation Cloud Storage Grist : configuration MinIO détaillée avec les variables d’environnement nécessaires -
Variables essentielles :
GRIST_DOCS_MINIO_ACCESS_KEY,GRIST_DOCS_MINIO_SECRET_KEY,GRIST_DOCS_MINIO_BUCKET,GRIST_DOCS_MINIO_ENDPOINT -
Important : le bucket doit avoir le versioning activé -
Redis est recommandé en complément pour cette configuration
4. Authentification : Authentik, Keycloak, ProConnect ?
C’est souvent le point bloquant. La commune a testé Authentik via SAML mais se demande si c’est optimal.
2 choix :
-
utiliser un système d’authentification interne :
-
avantage : les comptes seront nettoyés automatiquement quand les agents partent
-
inconvénient : il faudra demander aux personnes à qui l’on partage un document de se créer un compte sur le système interne
-
-
utiliser ProConnect :
-
avantage : toute personne ayant un SIRET (agent·e public, association, entreprise) pourra se créer un compte ProConnect et accéder à un document partagé
-
inconvénient : se connecter directement à ProConnect sans filtrage ouvre l’accès à tous les agents pour créer des espaces d’équipes et dossiers. Il faut prévoir une couche d’autorisation en plus dans la configuration de Grist.
-
Option conseillée : système d’authentification interne avec Keycloak dans un docker et un plugin pour s’interfacer avec l’'OIDC (recommandé pour plus de contrôle) :
-
Permet de créer un groupe « accès Grist » dans les policies
-
Possibilité d’automatiser l’ajout d’utilisateurs lors des partages
L’idéal pour une collectivité : monter une brique FAI (Fournisseur d’Authentification d’Identité) avec Keycloak + LDAP pour gérer finement les droits.
5. Formules Python et fonctionnalités avancées
Question : « Notre container contient-il tous les outils (boutons, formules Python) ? »
Oui ! Mais il faut bien configurer le sandboxing :
-
Ajouter la variable
GRIST_SANDBOX_FLAVOR=gvisorpour activer l’exécution sécurisée des formules Python -
Les formules Python complètes sont disponibles avec la bibliothèque standard
6. Intégration IA (Albert)
Pour ajouter un assistant IA à votre instance :
-
L’assistant IA de Grist peut être configuré avec n’importe quel endpoint compatible OpenAI (
/v1/chat/completions) -
Variables :
ASSISTANT_CHAT_COMPLETION_ENDPOINTetOPENAI_API_KEY -
Fonctionne avec OpenAI, mais aussi llama-cpp-python, LM Studio, ou OpenRouter pour accéder à Claude et autres modèles
-
Demander à la DINUM un accès à Albert : https://www.numerique.gouv.fr/offre-accompagnement/expertise-albert-ia-etat/
Ressources essentielles pour l’auto-hébergement
| Ressource | Lien |
|---|---|
| Forum FR - Catégorie auto-hébergement | https://forum.grist.libre.sh/c/auto-hebergement/107 |
| Post ressources consolidées | https://forum.grist.libre.sh/t/ressources-pour-lauto-hebergement/636 |
| Documentation officielle | https://support.getgrist.com/self-managed/ |
| Webinaire auto-hébergement | https://forum.grist.libre.sh/t/auto-heberger-grist-webinaire/1363 |
| Canal Tchap « Aide auto-hébergement » | Lien Tchap |
| Grist Omnibus (débutants) | https://github.com/gristlabs/grist-omnibus |
| Package YunoHost | https://github.com/YunoHost-Apps/grist_ynh |
| Diagramme d’aide à la décision | https://raw.githubusercontent.com/gristgouv/grist-selfhosting-diagram/refs/heads/main/img/selfhosting.svg |
Passer par un prestataire
Si vous souhaitez passer par un prestataire pour valider votre instance ou faire installer/maintenir une instance, une liste est disponible ici :
https://comptoir-du-libre.org/fr/softwares/servicesProviders/659
Et vous ?
Si vous avez auto-hébergé Grist dans votre collectivité, n’hésitez pas à partager votre expérience ! Quelle stack utilisez-vous pour l’authentification ? Avez-vous mis en place les sauvegardes S3 ?