Grist à mi-chemin entre Excel et Access
Grist est une application web open-source (Apache-2.0 license) et gratuite, à mi-chemin entre Excel et Access, éditée par l’entreprise Gristlabs. La ressemblance avec les logiciels privateurs s’arrête là car l’outil est bien plus puissant.
Grist
Example using Docker and NGINX
Installation de Grist
Forget about Excel - I self-host Grist to manage my spreadsheets
Backend Grist
Vous devez disposer de la distribution Docker la plus récente, y compris l’extension docker compose
installée.
Pour préparer l’environnement hôte, créez un répertoire
1
mkdir -p /home/alpi/docker-data/grist
Grist Autogéré
Le moyen le plus simple d’installer Grist est en tant que conteneur. Nous allons décrire comment faire en utilisant Docker, mais il existe de nombreux autres outils et services pour exécuter des conteneurs.
Pour essayer Grist avec Docker, créez un répertoire vide pour que Grist y stocke des données (par exemple ~/grist) et ensuite vous pouvez faire :
1
2
3
4
5
docker run --name grist \
-p 8484:8484 \
-v ../docker-data/grist:/persist \
-e GRIST_SESSION_SECRET=PattuGoyimMurageMagyare \
-it gristlabs/grist
Vous devriez alors pouvoir visiter http://localhost:8484 dans votre navigateur. Vous pourrez déjà créer et modifier des documents Grist, et ouvrir et modifier des documents téléchargés depuis une autre installation Grist (comme notre SaaS).
Si vous utilisez un autre outil ou service, voici les points importants :
- Le nom de l’image principale est
gristlabs/grist
, qui est notre image Docker combinée Noyau et Entreprise. L’imagegristlabs/grist-oss
existe également, qui utilise uniquement du code libre et open source. Cette image utilise uniquement Grist Noyau, et n’a pas de fonctionnalités d’entreprise disponibles. (Pour certains outils comme Podman, vous devrez peut-être préfixer ces noms d’image avecdocker.io/
.) - Un volume (ou montage, ou répertoire) doit être disponible à l’emplacement
/persist
dans le conteneur. Il peut être initialement vide - Grist le remplira. Sans ce volume, rien de ce que vous faites ne sera stocké à long terme. - Le port 8484 sur le conteneur doit être exposé. Cela peut être changé si vous définissez également la variable d’environnement
PORT
pour le conteneur. - La variable d’environnement
GRIST_SESSION_SECRET
doit être définie sur quelque chose de secret pour le conteneur.
Installé de cette manière, Grist est accessible uniquement par vous. En général, vous voudrez prendre au moins les étapes suivantes :
- Configurer le sandboxing - cela est important pour limiter ce que les formules peuvent faire.
- Servir depuis un hôte public afin de pouvoir collaborer en direct avec d’autres.
- Activer une méthode d’authentification afin que les utilisateurs puissent se connecter. Souvent, vous voudrez connecter Grist à un service “SSO” (Single Sign-On) que vous utilisez déjà. Nous supportons certaines méthodes d’authentification très générales qui couvrent de nombreux cas, et une méthode d’authentification spéciale pour des cas personnalisés.
- Envisager d’activer le support des snapshots si vous souhaitez que Grist gère les sauvegardes de documents.
docker-compose
Créer un fichier docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
services:
grist:
image: gristlabs/grist
restart: unless-stopped
container_name: grist
ports:
- "8484:8484"
environment:
GRIST_SESSION_SECRET: "PattuGoyimMurageMagyare"
GRIST_SANDBOX_FLAVOR: "gvisor"
GRIST_DEFAULT_EMAIL: "grist@cinay.eu"
APP_HOME_URL: "https://grist.home.arpa/"
volumes:
- /home/alpi/docker-data/persist:/persist
Créer et exécuter le conteneur
1
docker-compose up -d
Nginx
Le serveur nginx est sur cwwk (rnmkcy.eu)
Proxy nginx /etc/nginx/conf.d/grist.home.arpa.conf
, pour que l’instance NGINX achemine correctement vers Grist.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
# Adjust to your needs!
server_name grist.home.arpa;
ssl_certificate /etc/ssl/private/grist.home.arpa.crt;
ssl_certificate_key /etc/ssl/private/grist.home.arpa.key;
location / {
proxy_pass http://192.168.10.212:8484;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}