Control
Fork guide & generator What this is
Fork
A fork is this codebase with your identity stamped into it: your domain, your server, your app name, your signing keys. Nothing here phones home — there is no licence check and no shared infrastructure. Everything below is what you must supply, and the generator at the bottom writes the configuration for all four repositories from one form.
Requirements
Five hostnames, all pointing at your server. Nothing needs a proxy in front of it; if you use Cloudflare, leave these DNS-only, because the upload host moves ~300 MB artifacts and a proxy will cap the body size.
| Host | Serves |
|---|---|
example.com | the server and admin panel |
stream.example.com | remote-desktop streaming |
upload.dev.example.com | dev-release API — build uploads |
dl.dev.example.com | dev-release artifacts — client downloads |
probe.example.com | fingerprint probe (optional) |
80 and 443 reachable (Caddy issues certificates automatically), plus 7022 for the FRP tunnels.| What | Needed for | If you skip it |
|---|---|---|
| GitHub OAuth app | "Sign in with GitHub" | Email/password sign-in still works |
| Google OAuth app | "Sign in with Google" | Email/password sign-in still works |
| An LLM provider key | Chat | No model is offered at all — /config withholds every model that has no credential |
| Android keystore | Shipping the Android app | Cannot install or update the app |
| Code-signing certificate | Windows SmartScreen reputation | Installs, with a warning |
OAuth apps are per-deployment by definition — the callback URL contains your host,
so no app can be shared with another product. Register
https://example.com/auth/github/callback and
https://example.com/auth/google/callback.
Generator
Every identity the four client apps ship with is derived from these fields, so they are required and validated before anything is generated — a value that is not a legal application id, hostname or port is refused here rather than discovered at build time. Values update live below so you can see exactly what will be written before anything is generated.
frpc on Android cannot resolve names.94.16.104.37:7022 is core's live
pair and is refused.
Where we reply about your fork. Not published anywhere.
Create seven empty repositories you own and paste their URLs. We push your finished, branded fork straight into them, so it is yours from the first commit. You grant us write access for a few days while we deliver and fix anything you need, then you revoke it and keep everything. Leave blank if you have not created them yet - you can send them later.
An operator can generate a branded source ZIP from this specification — no repositories or access tokens are needed for that. Tick the client platforms to include, choose whether the clients run without a window, and optionally upload a square PNG logo (1024×1024 or larger); icons for every platform are generated from it in your browser.
At least one. Each selected platform is branded and packaged in the export.
These are runtime identifiers, written into the built apps, installers and
services from the fields above. They are renamed for you. Source code namespaces
(for example am.checkout.corecontrol) are deliberately not
rewritten — they are a shared internal identity so patches and tools keep working
across a core and every fork of it.
Next
Your secrets were generated in this browser and are never sent to us - download them below and keep them; you will need them when you deploy. Sending the request shares only your identity and repository URLs.
| Type | Name | Value |
|---|
Written into the server's .env. They are masked by default; reveal them only on a private screen or download them now, then store them in a password manager or vault. They are not recoverable from anywhere else.