Privacy

Last updated 5 September 2026

This describes what the onctl hosted runner service actually stores today. It is a beta draft, not a lawyer-reviewed privacy policy. For deletion or questions: hello@onctl.io.

Who we are

onctl.io / app.onctl.io is operated as a small hosted GitHub Actions runner service. Workloads run on dedicated hosts in Falkenstein, Germany. Job metadata is stored in hosted Postgres (Supabase). Sign-in is GitHub OAuth.

What we collect

  • GitHub account identity needed to sign in (name, avatar, user id, OAuth tokens we use to check App installation status).
  • GitHub App installation id and the repo names the App covers.
  • Job metadata: repo, job id, job name, profile/label, queued / started / completed times, duration, runner name.
  • Usage: vCPU-weighted seconds per job, for the monthly minute cap and (when live billing is on) metering.
  • Controller logs (provisioning, watchdogs, errors) on the control-plane VM. We do not currently run a secret-scrubbing pipeline on those logs.

We do not store your repository source. Checkout happens inside the ephemeral job VM.

What we don't do

We don't sell personal data. We don't use it for advertising. We don't have a dedicated App per customer — one GitHub App serves every installation, with per-installation tokens.

Retention

There is no automatic deletion of job or usage rows today. They accumulate until you ask us to delete them. Ephemeral VM disks are destroyed after the job.

Subprocessors

  • GitHub — sign-in and Actions webhooks.
  • Hetzner — hosts and control-plane VM (Falkenstein, Germany).
  • Supabase — Postgres for job/usage state.
  • Vercel — this website.
  • Stripe — checkout and metering, when billing is enabled.
  • Cloudflare — object storage used to publish runner images (R2).

Your requests

Email hello@onctl.io to access or delete the data we hold for your installation.