Prepare for your own Kinjot deployment.
You run this deployment. Kinjot never holds your database, deployment credentials or notes. Start with synced notes; add AI or your own web host later.
What you will operate
- A Supabase project for authentication, your database, and app functions.
- The included byo.kinjot.com app, or your own static host.
- Your backups and migration updates.
What you will bring
Kinjot Self-host is licensed under the Kinjot Self-host License; setting it up means you accept it.
- Your receipt license key, stored as
KINJOT_LICENSE_KEY. - A Supabase database URL in
KINJOT_DATABASE_URL. - A classic Management API token in
SUPABASE_ACCESS_TOKENto deploy app functions. - The project reference in the
KINJOT_SUPABASE_PROJECT_REFrepository variable.
The classic token is account-wide across every Supabase organization and project you can reach. Keep it only in your deployment secret store. Read Supabase’s access-token guide.
OpenAI, Voyage AI, and Cloudflare credentials are not needed for the first note.
Installing
Purchasing has not opened yet. These steps apply once you have a license key. You can use local mode or compare the hosted plans on the pricing page in the meantime.
Your license key arrives in your Lemon Squeezy receipt email. Keep it private. It never appears in this URL, and this page does not ask you to paste it.
- Generate your own private repository from the deployment template. It contains reviewable workflows and a public signature trust root. Create a Supabase project for it. When you create it, untick Automatically expose new tables under Security; left on, it grants every new table in
publicto the Data API roles. Keep the repository private because Actions logs can contain provider diagnostics. - Add the three repository secrets and project-reference variable above. The workflow uses
backend-onlyby default. In Supabase Auth, set the Site URL tohttps://byo.kinjot.comand allowhttps://byo.kinjot.com/appas a redirect. - Open Actions → Kinjot deployment → Run workflow and select
setup. It checks the target, links an unlinked license, installs the signed release, runs core diagnostics, and then updates to the newest release. Safe retries resume the recorded release and skip completed license work. - After setup installs the schema, create one confirmed operator account in Supabase Auth with signups closed. Existing Auth users are backfilled during installation.
- Open byo.kinjot.com, enter your receipt license at its access gate, then Connect with the public project URL and publishable key from Supabase. Sign in with the operator account.
- Save your first note, open a second browser session, connect and sign in, and confirm the note appears there.
Cloudflare is optional: host the web app yourself
Create a Direct Upload Pages project first. Add CLOUDFLARE_API_TOKEN and CLOUDFLARE_ACCOUNT_ID as secrets; set KINJOT_PAGES_PROJECT and KINJOT_DEPLOYMENT_MODE=full as variables. Set KINJOT_PAGES_BRANCH if your production branch is not main. Use that Pages origin and its exact /app redirect in Supabase Auth. Moving an installed backend-only deployment to full mode requires a newer signed release.
AI comes later
Notes and sync work without provider keys. When you want Recall and Tidy, add OPENAI_API_KEY and VOYAGE_API_KEY only in Supabase secrets, then use Recheck in Kinjot’s Settings → AI provider → Enable AI. Do not duplicate those keys in GitHub.
Updates use the same durable workflow. An ambiguous activation stops with explicit recovery instructions. Moving the deployment itself requires unlinking first.