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