Docs / Start control

Start control

After migrations pass, enable the control and dispatcher services:

create_control_service = true
control_desired_count = 1
dispatcher_desired_count = 1

For the standard profile, confirm that the DNS name in public_url points at control_load_balancer_dns_name before using the service publicly.

Apply the change:

tofu apply

Check the public URL:

CONTROL_URL=$(tofu output -raw control_url)
curl -fsS "$CONTROL_URL/healthz"
curl -fsS "$CONTROL_URL/readyz"

Use /healthz for process liveness. Use /readyz for database, Redis/Valkey, and migration readiness. If /healthz passes but /readyz fails, check the database URL secret, HELMR_REDIS_URL, and migration task logs.

Keep at least one dispatcher task running when schedules are used. The dispatcher repairs schedule next-fire entries from the database into Redis/Valkey, leases due fires, and creates scheduled runs.

For initial setup, populate HELMR_SETUP_TOKEN, then sign in at the public URL. If no organization exists yet, Helmr sends the signed-in user to /organizations/new and asks for the setup token. After the first organization is created, Helmr sends the owner to /projects/new for the first project. The first project automatically gets a default Production environment.

Self-hosted Helmr uses one organization per instance. After the first organization exists, users who are not members cannot create another organization; an owner must invite them.