Grist now available in Unraid's Community Application library!

Today, I created an XML template that pulls grist-core from Github and installs it as a docker container in Unraid.

If you’re an existing Unraid user, you can search for Grist on the Apps tab and follow the install prompts with just a few clicks.

By default, it will show up using port 8484. If you have a conflicting internal port you’ll need to change this to something that is not in use. Once it is installed using the community application store, you can simply left-click on the Grist icon from the dashboard or the docker tab to open in a new tab!

FYI, Unraid is an OS built on Linux for storing and managing your data. I use it to build my home NAS server. I like its app support and use it for managing Docker containers.

5 Likes

Hey @Adrian_Green, and welcome to the forum! :wave:

This is super-cool, thank you for sharing!

1 Like

A user commented on the Unraid forum asking if there is any way to have Grist store document data in a specific share?

Typically, in Unraid, the appdata share that houses the docker container is on a cache pool and data files are stored on a spinning disc pool.

I don’t think this would hurt anything unless there’s a document with hundreds of thousands of lines with embedded media though?

Let me know what you think!

When running Grist using docker, you can tell Grist to store data files in another folder using a flag like -v <host-dir>:/persist, i.e. mapping some directory to be visible as /persist in the container.

I am not sure what Unraid’s method would be for creating such a mapping. I think it might only be a matter of changing /config to /persist in the Appdata line of unraid-templates/grist.xml at main · bonedrums/unraid-templates · GitHub.

You can see how /persist is actually used in grist-core/Dockerfile at main · gristlabs/grist-core · GitHub – in particular, you could override GRIST_DATA_DIR environment variable instead of remapping /persist.

The data files Grist actually stores are essentially SQLite files, both for documents and for the database with document metadata (/persist/home.sqlite3 in the docker setup). SQLite is totally happy to use spinning disks, and I don’t anticipate any issues with keeping data on those.

The only kind of data share NOT to try is a network folder shared by multiple independent Grist instances (not that I see any reason for anyone to do that). That pattern will not work: a Grist instance assumes that all changes to its data files go through that instance.

1 Like