Grist

stack Database / Productivity

Spreadsheet that works like a database, with typed columns, Python formulas, linked tables, charts and forms.

Install Grist

It isn't in the main Portainer Templates list yet, so use this one. Portainer takes one URL at a time, so it swaps out whatever list you had before.

In Portainer, head to Settings --> App Templates, paste this in as the URL and save.

https://raw.githubusercontent.com/NotAFlightRisk/portainer-templates-extras/main/templates.json
  1. Open App Templates and pick Grist.
  2. Fill in Session secret. Everything else can stay as it is.
  3. Hit Deploy the stack, then open http://<your-server>:8484 in a browser.

Before you start

Set the session secret before you deploy, since the stack won't start without one. Then open http://<your-host>:8484 (or whichever port you picked). It asks for a boot key first, which Grist prints in the container's logs every time it starts (look for BOOT KEY), then an admin email, then walks you through Quick setup. Take care on its sign-in step: No authentication means anyone who can reach the port can open and edit everything, so only pick it on a private network. Sign in with getgrist.com and forwarded headers (for Authelia and the like) are the free options, and OIDC needs an activation key. The last step has product telemetry switched on, so untick it there if you'd rather it didn't. Documents, users and settings all live in the grist-data volume. Docs: support.getgrist.com/self-managed

Settings

What the Portainer form asks for. With compose they go in the .env file instead.

VariableWhat it's forDefault
GRIST_SESSION_SECRETSession secret (required) Signs everyone's login cookies. Generate one with: openssl rand -hex 32 Needs filling in
GRIST_PORTHost port for the web UI 8484

Services

The containers this stack runs, with ports as they come out of the box.

ServiceImagePorts
gristgristlabs/grist:18484:8484

More apps