User Tools

This is an old revision of the document!


Grist

Grist Grist is a modern relational spreadsheet. It combines the flexibility of a spreadsheet with the robustness of a database.

Installation

Create the usual dedicated user. Also, all data needs to be located in a dedicated folder that will be /data/grist:

useradd -d /data/daemons/grist -m grist
mkdir /data/grist
chown grist:grist /data/grist

Now, as grist user, create the following docker compose file:

docker-compose.yml
services:
  grist:
    ports:
      - 8484:8484
    volumes:
      - /data/grist:/persist
    environment:
      - GRIST_SESSION_SECRET=here_write_a_secret_passcode
      - GRIST_DEFAULT_EMAIL=me@mydomain.com
      - APP_HOME_URL=https://grist.mydomain.com/
    stdin_open: true
    tty: true
    image: gristlabs/grist-oss
    networks:
      - grist-net

networks:
  grist-net: {}

Remember to set an available port (8484)!

Now pull it:

podman compose pull

Single Sign On

Reverse Proxy

You can run Grist only on a sub-domain.

I assume it will be reachable as https://grist.mydomain.com.

Following this page create a NGINX config file called /etc/nginx/com.mydomain/grist/grist.conf like this:

grist.conf
server {
        server_name grist.mydomain.com;
        listen 443 ssl; 
        listen 8443 ssl; 

        access_log /var/log/nginx/grist.mydomain.com_access_log main;
        error_log /var/log/nginx/grist.mydomain.com_error_log info;

        location / {
                proxy_pass http://127.0.0.1:8484/;
        }
}

Autostart

To start it, and set it up on boot, as usual follow my indications Using Containers on Gentoo, so link the user-containers init script:

ln -s /etc/init.d/user-containers /etc/init.d/user-containers.grist

and create the following config file:

/etc/conf.d/user-containers.grist
USER=grist
DESCRIPTION="Online spreadsheet"

Add the service to the default runlevel and start it now:

rc-update add user-containers.grist default
rc-service user-containers.grist start

Reset password

Actual budget relies on a single password for authentication. If you need to replace it, these are the commands.

You can find your container ID with:

podman ps
su - actualbuget
podman exec -it <<container-id>> /bin/sh

Then type:

node /app/src/scripts/reset-password.js

This website uses technical cookies only. No information is shared with anybody or used in any way but provide the website in your browser.

More information