Connect the desktop app

Point the official desktop app at your self-hosted server.

By default the desktop app connects to Proliferate Cloud. Your users run the same official signed app and point it at your server with a one-line config file. Self-hosted Proliferate is desktop-only in v1: there is no self-hosted web app, so connecting the desktop app is how everyone gets in.

Connect with the config file

The desktop app reads ~/.proliferate/config.json exactly once, at startup. Setting apiBaseUrl there is the supported way to connect to a self-hosted server today.

Install the official desktop app

Download and install the desktop app from Proliferate as usual. You never build or distribute a custom binary; self-hosted deployments run the same signed builds as Proliferate Cloud.

Write the config file

Create ~/.proliferate/config.json in the user's home directory:

{
  "apiBaseUrl": "https://proliferate.company.com"
}

apiBaseUrl is your server's public URL: https:// plus the SITE_ADDRESS you configured on the server (the same value the server derives for its own API_BASE_URL).

Restart the app

The file is read once at startup, so quit and reopen the app to apply the change. The app connects to one server at a time; to switch back to Proliferate Cloud, remove the apiBaseUrl line and restart again.

Sign in

On launch the app asks your server which sign-in methods it offers (it calls GET /auth/desktop/methods) and shows the matching sign-in screen. Sign in with the method your server is configured for, described below.

Screenshot: Desktop sign-in screen, email and password form against a self-hosted server

The desktop sign-in screen after apiBaseUrl is set, showing the email/password form served when GitHub OAuth is not configured.

Which sign-in screen users see

The desktop app adapts to your server's configuration automatically:

  • Email and password (the default). When GitHub OAuth is not configured on the server, the desktop shows an email and password form. The first account is the one you created when you claimed the server at https://<site>/setup; every other user is invited by an admin and creates their account in a browser through the invite link (the server's /register page; registering requires the invitation token from that link). See Email & password.
  • GitHub sign-in (optional). Set GITHUB_OAUTH_CLIENT_ID and GITHUB_OAUTH_CLIENT_SECRET on the server, with the OAuth callback URL https://<site>/auth/desktop/github/callback, and the desktop offers GitHub sign-in. See GitHub sign-in.

Config file reference

KeyTypeEffect
apiBaseUrlstringPoints the app at your server instead of Proliferate Cloud.
telemetryDisabledbooleantrue turns off desktop telemetry for this install. See Telemetry & privacy.

Both keys live in the same file:

{
  "apiBaseUrl": "https://proliferate.company.com",
  "telemetryDisabled": true
}

Changes take effect on the next app start.

Fleet provisioning

For MDM or fleet setups, push the same ~/.proliferate/config.json to every machine with your device management tool. Because the app reads the file at startup, installs provisioned this way connect to your server on first launch with no user action.

Info:

Planned: in-product connect. A "connect to self-hosted server" entry on the sign-in screen, a switch-server option in settings, and a shareable proliferate://connect deep link (with a confirmation of exactly which server you are trusting) are planned. Until they ship, the config file above is the supported flow.

Staying up to date

Desktop updates follow the version your server advertises. The app checks GET /desktop/updater/latest.json on your server, which redirects to the official signed update manifest for the version your server release pins. When you update the server, every connected desktop app picks up the matching version; you never manage desktop rollouts separately. See Updates & versioning.

On this page