Deploy Deploy salt.md Team Docs with MCP

Team docs and databases your AI agents can edit over MCP.

Deploy Deploy salt.md Team Docs with MCP

Just deployed

/data

Deploy and Host self hosted salt.md (Team Docs and Databases) on Railway

This template deploys salt.md, a self-hosted docs and databases workspace, as one Railway service with a persistent volume that people and MCP clients can edit.

About Hosting salt.md open-source software on Railway (self hosted salt.md template)

This template runs the unmodified upstream salt.md 1.1.7 binary from the official image, with a start script that creates the owner account before the public port opens.

Why Deploy salt.md, the self-hosted docs and databases workspace on Railway (Railway Free Trial)

Notion keeps your pages on its servers; salt.md is free AGPL-3.0 software storing everything in one SQLite file you control.

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying salt.md on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.

Railway vs Other Hosting Providers and VPS for salt.md self hosting

Railway handles the volume, HTTPS and owner setup; a VPS leaves them to you.

ProviderWhat You Get with RailwayWhat You Get with the Other Provider
DigitalOceanA template that creates the salt.md service, a /data volume and HTTPS.A droplet you set up yourself, with Docker, storage, firewall and certificates.
AWSOne service and volume from a template, with the owner created on first start.Full control of EC2, EBS and security groups, with more setup work.
HetznerManaged deployment with no server size to choose or updates to run.Low-cost servers where you handle the install, backups and upgrades.

Choose a VPS for machine control, and Railway for less server work.

Common Use Cases for hosted salt.md

  • Team pages and wikis with realtime editing: A small team keeps its handbook, meeting notes and onboarding guides in one workspace, with live cursors.
  • Databases with views: Project trackers, client lists or content calendars live in a database that the team can browse as a table, board, calendar or timeline, each view with its own filters.
  • AI assistants working in the same pages over MCP: Claude, ChatGPT or Cursor connects to /mcp and drafts pages, fills database rows or updates status, using only the access you grant.
  • Sharing pages outwards: A page can be published as a read-only link with an optional password or expiry date, with no account needed.
  • Importing and exporting Markdown: Markdown files, CSVs or a Notion export come in through the import menu, and pages or whole workspaces export back out as Markdown or ZIP.

Dependencies for salt.md Docker hosted on Railway

This template runs one service built from ghcr.io/onepush-dev/salt-md:1.1.7, which wraps the official salt.md image without changing the upstream binary.

Deployment Dependencies for Managed salt.md Service (one Go binary, SQLite database, uploads and search index on a /data volume; no database server, cache or object store)

salt.md is one Go binary with no database server, cache or object store.

Implementation Details for salt.md (ghcr.io/onepush-dev/salt-md:1.1.7 runs the unmodified upstream binary; the start script creates the owner through POST /api/setup on a loopback-only port before the public port opens, then runs as the salt user via su-exec; SALT_MEMORY_MB=2048 baked)

The image runs the unmodified upstream binary. Change the owner email and password after first sign-in.

How does salt.md compare against other tools

salt.md vs Notion (Notion Alternative)

  • Data Location: Notion stores your workspace on its servers, while salt.md runs as one binary with one SQLite file on infrastructure you control.
  • Cost Model: Notion is a hosted subscription, while salt.md is free AGPL-3.0 software and you pay only for its infrastructure.
  • Agent Access: salt.md exposes its workspace over MCP at /mcp, scoped to the permissions you grant.
  • Where Notion Wins: Notion has a larger feature set and a polished editor for a fully managed product.

salt.md vs Outline (Outline Alternative)

  • Footprint: Outline is typically deployed alongside a database server and other services, while salt.md needs none of them.
  • Storage: salt.md keeps pages, uploads and the search index in one /data volume, so backups mean handling one directory.
  • Where Outline Wins: Outline is a mature wiki that suits teams already running its expected services.

salt.md vs AppFlowy (AppFlowy Alternative)

  • Client Model: AppFlowy is a desktop application with a separate server, while salt.md is one HTTP server you reach from a browser.
  • Where AppFlowy Wins: AppFlowy fits if you prefer a native desktop app on each machine.

salt.md with Docker vs Railway (Self-Hosting Comparison)

  • Setup Effort: Docker means managing the container, volume and HTTPS yourself, while the Railway template defines the volume and health check for you.
  • Owner Creation: The Railway image creates the owner from SALT_ADMIN_PASSWORD before the public port opens, so a stranger cannot claim the instance.
  • Where Docker Wins: Plain Docker on your own machine gives you full control over networking and hardware.

How to use salt.md on Railway?

Once the deploy finishes, work through these steps.

  1. Open your Railway public URL and sign in as admin@example.com. The password is the SALT_ADMIN_PASSWORD value in the service's Variables tab.
  2. Go to your account settings and change both the email address and the password. The generated password is only there to get you in, so replace it straight away.
  3. Open Administration and set up mail and invitations so colleagues can sign in with their own accounts.
  4. Connect your MCP client, such as Claude, ChatGPT or Cursor, to https://your-domain/mcp. Give it only the access you actually want an agent to have.

Check that the service is healthy by requesting the health endpoint:

curl https://your-domain/api/health

If you try POST /api/setup again, it should answer 403 with "setup already completed", which confirms the owner account is locked in.

How to self host salt.md on other VPS Services (salt.md self hosting guide)

Clone the Repository

Clone the upstream project and check out the v1.1.7 tag so you get the release this template uses.

git clone https://github.com/saltmd/salt.md.git
cd salt.md
git checkout v1.1.7

Install Dependencies

You need only a Linux or macOS host with curl and sh; salt.md is one Go binary with SQLite and the frontend embedded.

Configure Environment Variables

The Docker image needs only a port and a /data volume. Pin the image to 1.1.7. On stock upstream, whoever completes setup first becomes the owner, so finish setup before exposing the instance publicly. See the upstream self-hosting guide for the full list of options.

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

Start the salt.md Application

On a Linux server, run the upstream install script, which installs the latest release, sets up a systemd service and prints the address to open.

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

On your own VPS you manage all of this yourself; Railway handles the volume and HTTPS.

Official Pricing of salt.md (salt.md pricing)

salt.md is free AGPL-3.0 software to self-host. Railway bills by usage, so check current rates before deploying.

salt.md hosted vs self hosted comparison (Pricing, features, costs, and more)

salt.md is free AGPL-3.0 software, so the choice is where it runs and who operates it. Self hosting on Railway means paying only for the infrastructure used.

Monthly cost of self hosting salt.md on Railway

Railway bills by usage, so monthly cost depends on RAM and CPU use, the /data volume size and any attached services.

System Requirements for Hosting salt.md on a VPS

salt.md is one Go binary with a SQLite file, so it needs no separate database server, cache or object store.

Frequently Asked Questions (FAQs)

How do I sign in to my salt.md instance on Railway?

Open the public URL and sign in as admin@example.com with the SALT_ADMIN_PASSWORD value from the service's Variables tab. Change the email and password in your account settings after the first login.

Can a stranger claim the instance before I do?

No. The start script creates the owner account on a loopback-only port before the public port opens, and /api/setup then answers 403 for anyone else.

How do AI agents connect to my workspace?

Point an MCP client such as Claude, ChatGPT or Cursor at https://your-domain/mcp. Agents get the same access as the person whose token they use, and nothing beyond it.

Does this need Let's Encrypt or certificates set up by me?

No. Railway terminates HTTPS for the public domain, so the built-in certificate option is not needed in this template.

Why should I raise SALT_MEMORY_MB?

It tells salt.md how much memory it may assume when indexing PDFs for search, and the default is 2048.

What should I back up?

Back up the /data volume, which holds the SQLite database, uploaded files and the search index. Copying that volume while the service is stopped gives you a consistent copy of your instance. Upstream also documents a salt backup command, and the owner can download a full instance backup from the interface. Only the owner can do this, because the archive contains every workspace and password hash.

Are there mobile apps?

No. Upstream has no mobile apps, though the web app works on a phone. This is independent community packaging, not affiliated with or endorsed by salt.md.


Template Content

More templates in this category

View Template
Rocky Linux
Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀

codestorm
51
View Template
Foundry Virtual Tabletop
A Self-Hosted & Modern Roleplaying Platform

Lucas
71
View Template
Letta Code Remote
Run a Letta Code agent 24/7. No inbound ports, just deploy.

Letta
52