Une commune auto-héberge Grist : retour d'expérience!

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 :

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 :

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 :

  • :open_book: 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

  • :warning: Important : le bucket doit avoir le versioning activé

  • :bulb: 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) :

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=gvisor pour activer l’exécution sécurisée des formules Python

  • Les formules Python complètes sont disponibles avec la bibliothèque standard

  • :open_book: Documentation sur les formules Python

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_ENDPOINT et OPENAI_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/


:books: Ressources essentielles pour l’auto-hébergement


:handshake: 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

:speech_balloon: 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 ?

3 « J'aime »