Post

Grist à mi-chemin entre Excel et Access

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é

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’image gristlabs/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 avec docker.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";
    }
}
Cet article est sous licence CC BY 4.0 par l'auteur.