Démarrer rapidement un projet logiciel.

Logo Grist

Grist

Alternative auto-hébergée à Airtable : base relationnelle en interface tableur, formules Python, API REST et collaboration en temps réel. Un conteneur, SQLite.

512 Mo RAM 1 vCPU Port 8484 Disponible

Stack technique

DockerNode.jsPythonSQLite
RAM minimum512 Mo
CPU minimum1 vCPU
Port par défaut8484
OS compatiblesubuntu-24.04

Grist (licence Apache-2.0, environ 11 400 étoiles sur GitHub, écrit en TypeScript) est un tableur qui se comporte comme une base de données relationnelle. Contrairement à Google Sheets ou Excel, il structure vos données en véritables tables : colonnes typées (texte, nombre, date, référence, pièce jointe), relations entre tables par colonnes de référence, et formules Python exécutées côté serveur dans un bac à sable, avec accès aux bibliothèques standard comme `datetime`, `math`, `re` ou `uuid`. Le tout reste manipulable dans une grille familière, sans écrire une ligne de SQL.

Sur un VPS ServOrbit, Grist tient dans un seul conteneur : aucun service de base de données externe à administrer, chaque document étant un fichier SQLite rangé dans le volume monté sur `/persist`. Vous composez plusieurs vues sur les mêmes données — grille, fiche, graphique, calendrier, widget personnalisé —, vous définissez des règles d'accès jusqu'à la ligne et la colonne, et chaque document expose automatiquement une API REST interrogeable depuis n8n, Make ou n'importe quel client HTTP. L'édition est collaborative en temps réel, avec un journal indiquant qui a modifié quoi et quand. C'est l'outil adapté aux données structurées qui débordent d'un tableur à plat sans justifier une application SQL complète : suivi de projet, inventaire, budgets, contacts, résultats d'enquête, préparation de jeux de données.

Fonctionnalités clés

Modèle de données relationnel : colonnes typées (texte, nombre, date, référence, pièce jointe), tables reliées par colonnes de référence et formules portant sur plusieurs tables, comme dans un tableur.
Formules Python avec accès aux bibliothèques : écrivez vos colonnes calculées en Python — datetime, math, re, uuid et toute bibliothèque pur Python — dans un bac à sable exécuté côté serveur, pas dans le navigateur.
Vues personnalisées : grille, fiche, graphique, calendrier et widget sur mesure à partir des mêmes données ; chaque vue se configure et se filtre indépendamment sans toucher à la table sous-jacente.
Règles d'accès par ligne et par colonne : restreignez la lecture ou l'écriture de chaque ligne et de chaque colonne selon les attributs de l'utilisateur, assez finement pour héberger plusieurs entités dans un même document.
API REST immédiate : chaque document expose des points d'entrée GET/POST/PUT/PATCH/DELETE pour toutes ses tables, sans une ligne de code serveur — de quoi brancher n8n, Make ou n'importe quel client HTTP.
Collaboration en temps réel : plusieurs personnes éditent le même document simultanément, les changements se propagent en moins d'une seconde et un journal complet retrace qui a modifié quoi et quand.

Quand utiliser cette solution ?

1

Fichier de contacts et CRM relationnel

Modélisez contacts, sociétés, affaires et activités comme des tables reliées. Les colonnes de référence permettent de filtrer les contacts par chargé de compte ou par étape du pipeline sans écrire de SQL. Construisez une vue fiche pour les commerciaux et une vue graphique pour la direction : mêmes données, deux lectures différentes.

2

Suivi de budget et de dépenses

Suivez les dépenses par projet et par catégorie, avec des colonnes de formule pour les cumuls, les prévisions et l'écart au budget. Récupérez ensuite les données dans un tableau de bord via l'API REST ou exportez-les en CSV pour votre comptable — le tout depuis un document Grist unique.

3

Gestion d'inventaire et de commandes

Modélisez produits, variantes, niveaux de stock et commandes dans des tables reliées. Ajoutez une colonne de formule qui signale les articles passés sous le seuil de réapprovisionnement et déclenche un scénario n8n par webhook. La vue fiche offre au personnel d'entrepôt une interface utilisable sur mobile, sans application dédiée à développer.

4

Traitement de données d'enquête

Importez un CSV exporté de Typeform ou de Google Forms, ajoutez des colonnes calculées pour normaliser les libellés, filtrez les répondants par segment et exportez un jeu de données propre — dans un seul document Grist, sans code et sans environnement Python à installer.

Déployer Grist sur votre VPS

Guide optimisé pour les VPS Cloud ServOrbit.

01

Commander le VPS ServOrbit

Grist se contente de moins de 512 Mo de RAM au repos ; un VPS de 1 Go couvre confortablement un usage personnel ou une petite équipe. Les documents sont des fichiers SQLite stockés dans le volume monté sur /persist : aucun service de base de données externe n'est à prévoir.

02

Déployer depuis le Marketplace

Depuis votre espace client ServOrbit, allez dans Marketplace → Développement → Grist → Déployer. Le conteneur gristlabs/grist démarre en quelques secondes, avec un secret de session généré aléatoirement et le volume de persistance déjà monté.

03

Se connecter la première fois

Grist vous redirige vers un écran de connexion « boot » qui réclame une clé d'installation — saisissez la clé fournie. Vous enchaînez ensuite sur un assistant de configuration rapide, puis vous accédez à vos documents en tant qu'administrateur ([email protected]).

04

Ouvrir Grist et se connecter

Grist écoute sur le port 8484, publié sur la boucle locale du VPS : exposez-le derrière un vhost sur votre domaine, ou passez par un tunnel le temps d'une session avec ssh -L 8484:127.0.0.1:8484 root@<ip>. L'adresse administrateur par défaut [email protected] est préconfigurée et Grist vous connecte automatiquement au premier accès — aucun serveur SMTP ni vérification par e-mail n'est requis pour une mise en route mono-utilisateur.

05

Créer votre premier document

Cliquez sur « + Add document », partez d'un modèle ou d'une page blanche, puis définissez les colonnes de votre table (texte, nombre, date, référence…). Vous pouvez aussi importer un fichier CSV, Excel ou .grist existant depuis le menu File.

06

Inviter des collaborateurs et brancher l'authentification

Le menu Partager de chaque document permet d'inviter vos collègues avec les rôles lecteur, éditeur ou propriétaire. Pour un usage multi-utilisateurs avec de vraies adresses e-mail authentifiées, renseignez les variables d'environnement GRIST_OIDC_* pointant vers votre Google Workspace, votre instance Authentik ou votre Keycloak.

Questions fréquentes

Les deux. Grist stocke les données dans des tables typées et reliées, comme une base de données, et les présente dans une grille de type tableur. Vous écrivez des formules Python dans les cellules, vous reliez les tables par des colonnes de référence et vous construisez plusieurs vues sur les mêmes données — sans jamais écrire de SQL.

Intégrer le bouton de déploiement

Vous maintenez un projet qui utilise Grist ? Ce bouton permet à vos lecteurs de le déployer sur un VPS en un clic, sans lire de documentation Docker.

Deploy Grist on ServOrbit
Markdown
[![Deploy Grist on ServOrbit](https://servorbit.com/brand/deploy/button.svg)](https://servorbit.com/vps-cloud?template=grist&utm_source=deploy-badge&utm_medium=referral&utm_campaign=grist)
HTML
<a href="https://servorbit.com/vps-cloud?template=grist&utm_source=deploy-badge&utm_medium=referral&utm_campaign=grist"><img src="https://servorbit.com/brand/deploy/button.svg" alt="Deploy Grist on ServOrbit" height="40"></a>

Le bouton pointe vers la commande d'un VPS avec le template présélectionné. L'image est servie depuis servorbit.com — rien à héberger de votre côté.

Démarrer rapidement un projet logiciel.

Activez Grist sur votre infrastructure.

VPS Cloud dédié — IPv4 incluse, datacenter européen, support inclus. Vos données ne quittent jamais votre serveur.

Configuration recommandée : 512 Mo RAM · 1 vCPU

Besoin d'aide ?

Parcourez notre centre d'aide et notre FAQ, ou contactez notre équipe — rappel, WhatsApp ou e-mail. Support en français, anglais et arabe.

Écrire sur WhatsApps'ouvre dans un nouvel onglet