Skip to content
Eigenlaut

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

  1. Get the code and install it.
  2. Set the edition in the configuration: billing off, your domain and your sign-up domains.
  3. Create the D1 database and the queue, then apply the database migrations.
  4. Store the service account key and the OAuth client secret as Worker secrets.
  5. 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