Self-host

Install it in about a minute.

Pick the way you like. All three end at the same place: one process listening on port 8420, with your data in a directory you chose.

Interactive setup

Let your assistant install it with you.

Paste this into ChatGPT, Claude, Gemini, Copilot or whatever you already have open. It reads the machine-readable docs and then walks you through it, asking about your setup before it hands you commands.

Works in any assistant that can open a URL. If yours cannot browse, paste the contents of llms.txt after the question. llms.txt

Prompt

Read https://salt.md/llms.txt in full, then walk me through self-hosting Salt.md and connecting you to it over MCP. Ask me what operating system, hosting and domain I have before giving me any commands, and give me one step at a time. Flag the licence terms and the security pitfalls as we reach them rather than at the end.

Install options

macOS / Linux

install.sh
$ curl -fsSL https://raw.githubusercontent.com/salt-md/salt.md/main/install.sh | sh
$ salt

Downloads the prebuilt binary for your platform, then starts on port 8420.

http://localhost:8420

Docker

docker
$ docker run -d -p 8420:8420 -v salt-data:/data ghcr.io/salt-md/salt.md

Multi-arch image for amd64 and arm64.

From source

make
$ make build
$ ./salt

Needs Go ≥ 1.25 and Node ≥ 20. Embeds the frontend into the binary.

  1. Install

    Run the one-liner, start the Docker container, or build from source.

  2. Open the browser

    Go to http://localhost:8420 and create your admin account. There is no setup wizard beyond that.

  3. Make it reachable

    Put it behind your reverse proxy, hand it TLS certificates, or let it open a Cloudflare tunnel.

Configuration

Four environment variables.

The defaults are sensible; most instances never set anything but the data directory.

VariableDefaultDescription
SALT_ADDR:8420Listen address
SALT_DATA./dataData directory (SQLite file + uploads)
SALT_TLS_CERTTLS certificate file, serves HTTPS directly
SALT_TLS_KEYTLS key file, used with the certificate
Backups

A backup is one command.

The snapshot is transactionally consistent, so you do not have to stop the instance to take one.

$ ./salt backup salt-backup.tar.gz

Snapshot the database and uploaded files

$ ./salt restore salt-backup.tar.gz

Restore into an empty data directory

Upgrades

Swap the binary, restart.

Re-run the installer or pull the new image, then restart the service. Open browser tabs detect the version change and reload themselves.

An upgrade replaces the binary only. State lives in the data directory, so nothing you wrote depends on the version you just deleted. Take a snapshot first anyway.

Downloads

Prebuilt for the usual suspects.

Every release ships binaries with checksums. Current version: 1.5.2.

Linux

amd64 · arm64

Installer supported

macOS

amd64 · arm64

Installer supported

Windows

amd64

Binary in the release, install manually

Docker

amd64 · arm64

ghcr.io/salt-md/salt.md

One command. Then it is yours.

Install it, open the browser, create your admin account. If you do not like it, delete one directory and it is gone.

$ curl -fsSL https://raw.githubusercontent.com/salt-md/salt.md/main/install.sh | sh