Overview

What self-hosting Proliferate means, and whether you should.

Proliferate is open source and fully self-hostable. Self-hosting means running the Proliferate server (the API and database your team connects to) yourself; your team keeps using the same official desktop app, pointed at your server. For most teams the hosted service is the recommended setup. Self-host when you have a concrete reason: compliance, data locality, or a network boundary you can't send data across.

Choose your path

Deploying on a cloud provider? Use the AWS one-click stack, or bring Docker to any server.

The pieces

A self-hosted deployment is a small server plus the official desktop app, with two optional add-ons.

The base install already gives you sign-in with email and password, one shared organization (self-hosted servers run in single-org mode by default), invitations, and workspaces that run on each user's machine. First run is never gated on add-ons: no GitHub App, no E2B account, no model gateway. You can enable them later, or not at all. GitHub sign-in and OIDC SSO are optional layers on top.

Not in self-hosting yet

Being upfront about the gaps in v1:

  • Automations and scheduled background jobs are not available on self-hosted servers yet; the stack does not ship a worker tier.
  • The web app is not self-hostable. Your team uses the desktop app.
  • Desktops connect through a one-line config file today; in-product connect and proliferate://connect deep links are planned.
  • Enabling cloud sandboxes involves manual steps today (creating the GitHub App by hand, building the sandbox template with a script); one-click flows are planned.

How updates work

Info:

Updating is one command on the server (./update.sh): pull the new image, run migrations, restart. The server reports its versions at GET /meta, and your users' desktop apps follow the version the server pins, so updating the server updates the whole fleet. See Updates & versioning.

Telemetry

Self-hosted servers run with PROLIFERATE_TELEMETRY_MODE=self_managed: anonymous, first-party telemetry only, with no third-party vendors. Set PROLIFERATE_ANONYMOUS_TELEMETRY_DISABLED=1 for zero telemetry. See Telemetry & privacy.

On this page