One image, one database, three variables.

This page gets Farmer running. The self-hosting guide in the repository has the Compose file, the upgrade steps and the backup steps.

DockerPostgresAGPLv3
01

Have a Postgres database

Any recent Postgres works: a managed one or a container next to Farmer. It is the only required dependency. S3 storage for uploads is optional and can be added later.

02

Run the image

shell
docker run -d --name farmer -p 3000:3000 \
  -e DATABASE_URL=postgres://farmer:…@db:5432/farmer \
  -e BETTER_AUTH_SECRET=$(openssl rand -base64 32) \
  -e BETTER_AUTH_URL=https://time.example.com \
  ghcr.io/profico/farmer:latest

profico/farmer is the repository this instance was built from. Migrations run on start.

03

The three required variables

DATABASE_URLPostgres connection string.
BETTER_AUTH_SECRETA long random string that signs sessions. Keep it secret and stable.
BETTER_AUTH_URLThe public address of this instance, with https.
04

Start the background worker

The worker runs the scheduled jobs: calendar and GitHub sync, recurring blocks, Slack reminders, the month-end reminder, the admin digest and web push. It runs in-process on the web host by default; a single instance is enough. Without it — or if every job is disabled — the app works, but nothing fills itself in.

Worker setup on GitHub
05

Open it and set up Farmer

The first visit asks for a name, email and password. That account administers the instance. From Settings, add a sign-in provider, connect integrations and invite people.

Optional integrations

Most of these are set in the app by an administrator, not in the environment.

Google
Sign-in, and Calendar sync per person.
GitHub App
Commits and pull requests, per organization.
Slack
Reminders, digests and invitations as DMs.
OpenRouter
Your own key for the assistant.
S3 storage
For uploaded logos and project icons.
Email
Invitations and notices over SMTP.

Also: any OpenID Connect provider for sign-in, single-organization mode, and switches to turn off the assistant, MCP or CLI per deployment.

Rather not run it yourself? Get early access to hosted Farmer.