Self-host quickstart
Install the open-source pod on your own Linux server, create the first admin and connect your laptop.
This installs a Synap pod from a published release: pre-built container images pulled by digest, behind Caddy with automatic HTTPS. Nothing is built on your server. The Run section covers each step in depth.
What you need
-
A Linux server you can reach as root (
sudo), with ports 80 and 443 open to the internet. -
A domain you control. The pod uses two host names, for example:
pod.example.comfor the pod itself (API, sign-in, MCP),pod-admin.example.comfor the pod's admin console.
Point a DNS
A(orAAAA) record for both names at the server before you install, so the certificates can be issued. -
An email address for Let's Encrypt.
The installer installs Docker (from get.docker.com) if it is missing, and curl, tar, jq and openssl through
apt-get if they are missing. On a distribution without apt-get, install those yourself first. Docker Compose v2 is
required.
1. Install
curl -fsSL https://github.com/synap-core/backend/releases/download/channel-stable/install.sh \
| sudo bash -s -- --domain pod.example.com --email you@example.comWhat this does:
- Resolves the latest stable release and downloads its release manifest (
release.json). - Downloads that release's deploy bundle, checks it against the manifest's SHA-256, and unpacks it into
/opt/synap. - Links the server CLI to
/usr/local/bin/synap. - Runs
synap install --non-interactivewith your flags: writes/opt/synap/deploy/.envwith generated secrets, pulls the images and starts the stack.
The admin console host name is derived from --domain: pod.example.com gives pod-admin.example.com.
Two tools called synap
The installer puts a server CLI named synap on the server (/usr/local/bin/synap). It installs, updates and
backs up the pod. The user CLI, @synap-core/cli, also runs as synap, but on your laptop: it connects
your computer and your agents to a pod. Keep the user CLI off the server.
2. Check the pod
The server CLI works on the deploy directory. Run it from there:
cd /opt/synap/deploy
sudo synap health
curl -fsS https://pod.example.com/healthIf a certificate is not issued yet, check that both DNS records point at the server, then look at Caddy's logs with
sudo synap logs caddy.
3. Create the first admin
Ignore the installer's /admin/bootstrap line
The installer of current releases (v1.1.3 and earlier) ends with "Open: https://pod.example.com/admin/bootstrap" and a token. That page does not exist. Ignore those lines and create the admin with the command below.
Mint a one-hour sign-up link for the first admin, and open it in your browser:
cd /opt/synap/deploy
sudo synap setup admin --email you@example.com --magic-linkThe command prints a link to https://pod.example.com/setup?token=…. Open it and choose your password.
To create the admin directly instead, without a link:
sudo synap setup admin --email you@example.com --password '<a strong password>'sudo synap setup admin --status prints needed while the pod has no admin, and ready once it has one.
4. Connect your laptop and agents
On your laptop (not on the server):
npx @synap-core/cli init --pod-url https://pod.example.comIt asks you to approve your laptop with a code (sign in to your pod in the browser to approve), connects the AI agents it finds (Claude Code, Codex, Cursor), and offers a pairing link for Relay on your phone. See the Cloud quickstart for each step; they are the same against your own pod.
5. Set up off-host backups
The pod dumps its databases every hour on the server, but a copy on the same disk does not survive losing the server. Configure an off-host repository and keep the recovery kit it prints: Backups.
Next
- Configuration: change a setting with
synap config. - Upgrades:
synap update, release channels and automatic updates. - Operations: health, logs and troubleshooting.
