Making Grist easier to self-host

I’m working on “Grist Omnibus”, a single docker image that packages Grist together with everything needed to put it on a public server, in the hope that it’ll make life easier for self-hosters. There are so many ways to do authentication, often needing quite fiddly configuration. Setting up certificates for https traffic can also be pretty daunting if you haven’t done it before. Grist Omnibus tries to take care of all that.

I’d be interested in feedback from any self-hosters willing to try it out:

The risk in trying to package something all-in-one like this is that it may not be flexible enough for what people really need, and stretching it would make it complex and defeat the purpose :slight_smile:

Thanks for checking it out!

12 Likes

Thank you, this is a very important work to promote Grist.
And as usual, a few questions:

  1. Will it support team sites out of the box?
  2. Will user management be done in the Grist UI and, as a result, user management in the Grist REST API?
  3. Fine-tuning the installation if Traefik is not used (if installed on Synology, it have its own Reverse Proxy and SSL Certificate Manager)?
  4. Where is user data stored in dex way? Should we prepare to move to dex if we continue to use grist-core?
  5. Support for scaling during further operation (I think this is a privilege of the EE version)?

No, I focused on a single-team setup for omnibus since it is easier to configure.

Omnibus doesn’t change anything about Grist, it just packages it with some other compatible services. If you look at GitHub - gristlabs/grist-omnibus: an opinionated Grist+Dex+Traefik package for first-time self-hosters, you’ll see there’s really not much to it, it is just a few files.

I’d recommending setting the omnibus HTTPS variable to external in that case. You can find details in the README.

You can read about Dex storage options on their documentation. I have it configured to use Sqlite by default. No there’s no particular reason to move to Dex, it is just one way among many to handle authentication. I used if for the omnibus because it was particularly neatly self-contained.

My main goal is to have a good solution to point to for someone getting going with Grist, if they are stumbling on authentication and certificates and the like. As someone who has used Grist for a while, I don’t think it changes anything for you - except that it might help you recommend Grist to someone else if you’re confident they’ll be able to install it :slight_smile:

SSL would just be the ingress on the chart?

Is the work in this already done? The topic seemed a little… open, since nobody gave feedback.

It works, and people use it, but the regular Grist docker image is used a lot more.

2 Likes

Thank you for making this, but could you provide a docker-compose file as I’m utterly new to docker

When I self host Grist with Omnibus, can I give Public Access to my documents in an iframe without requiring LOGIN?

Because I am unable to do it. Any link I try to open from another site requires authentication, login with email.

Hi @Rogerio_Penna, I think this may be the same issue as:

It is an awkward little problem, very fixable but we at Grist Labs haven’t gotten to it yet, I’m sorry.

Ok, no problem. It’s part of a bigger problem imho, which is the fact I am not being able to limit what the user can see by using the LinkKey and access rules. Tried everything.

Either the user sees everything (if I am myself, as an administrator or sees nothing, despite the linkkeys)

How do I upgrade Grist if I installed the Omnibus version?

Update the docker image:

docker pull gristlabs/grist-omnibus

Then stop your container. I assume you’re starting it with the command given here: so stopping it will remove the container (but not your data, that are within the persist folder), thanks to the --rm flag.

docker stop grist

Then start it again, with the same command you used to create it.

2 Likes

does it use a special docker image? Or should I expect the same Grist version that I would get pulling a "common’ docker image?

I’m not sure I understand what you exactly mean. If the question is whether it’s the same image as grist-core, it isn’t. To know whether the update is recent or not, you may refer to grist tags and grist-omnibus tags.

1 Like