Self-hosting
The self-hosted edition is the same code as the hosted one, on your own Cloudflare account with your own Google service account. It is free, and nobody but you holds a key to your Workspace.
What you need
- A Cloudflare account
- Workers, a D1 database, a queue for sync jobs and an hourly cron. Eigenlaut is one Worker.
- A Google Cloud project
- A service account for domain-wide delegation, and an OAuth client for Sign in with Google.
- A Google Workspace super admin
- To authorise your service account, as in the setup guide.
How it differs from hosted
- Billing is off. There is no subscription, no trial and no seat limit.
- Sign-up is limited to your domains, so nobody outside your organisation can create an account on your copy.
- Your own service account. Its key is a secret of your own Worker, and it can act only in the Workspace that authorised it.
- Your data location. Create the D1 database and the queue in Cloudflare’s EU jurisdiction if your data must stay in the EU. Cloudflare sets the jurisdiction when they are created.
- You deploy updates when a new version is out.
The steps in short
- Get the code and install it.
- Set the edition in the configuration: billing off, your domain and your sign-up domains.
- Create the D1 database and the queue, then apply the database migrations.
- Store the service account key and the OAuth client secret as Worker secrets.
- Deploy the Worker, sign in and follow the setup guide with your own client ID.
npx wrangler d1 create eigenlaut --jurisdiction=eu
npx wrangler queues create eigenlaut-sync --jurisdiction=eu
npx wrangler deploy