Skip to content

Self-host Docmost

updated Sep 2026prices checked · Jul 2026Install verified on Ubuntu 26.04 · Sep 2026 · how we test
We earn commissions when you shop through the links below. Full disclosure →

A collaborative wiki and documentation tool that positions itself as an open-source alternative to Confluence and Notion: real-time co-editing, spaces, groups and permissions, comments, page history, search, attachments, and built-in Draw.io, Excalidraw, and Mermaid diagrams. The core is AGPL-3.0 and runs as one Node.js container beside PostgreSQL and Redis; Bases (databases), SSO, AI features, audit logs, and SCIM are licensed Business/Enterprise features.

Key facts

CategoryWiki & docs
LicenseAGPL-3.0
StackTypeScript, Node.js, PostgreSQL, Redis
Min RAM1024 MB
Official imageyes
Measured idle RAM592 MB
Difficulty
Our recommendation

Pick Docmost when you want the Notion/Confluence shape — spaces, real-time co-editing, comments, page history, diagrams — under a genuinely open AGPL-3.0 core and a three-container compose file the docs hand you directly. Know where the paywall sits first: Bases (databases), SSO, AI features, audit logs and SCIM are licensed Business or Enterprise features, so a team that needs SAML or LDAP login is buying a license even when self-hosting.

Follow the Docmost deploy guide →

What you need

  • Any VPS with at least 1024 MB of RAM
  • A domain you control — most self-hosted setups need HTTPS in front of them
  • Under an hour if you've used Docker before
Where to host itaffiliate disclosure
Hetzner Cloudrun it on
From $23.59/mo · 2 vCPU / 4 GB / 80 GB · EU + US
Get Hetzner Cloud (opens in new tab)
Kamaterafree trial
From $4/mo · 1 vCPU / 1 GB / 20 GB · US + EU + Asia
Start free on Kamatera → (opens in new tab)
DigitalOceanalso works on
From $6/mo · 1 vCPU / 1 GB / 25 GB · US + EU + Asia
Deploy on DigitalOcean → (opens in new tab)

Paid link — we earn a commission if you shop through it.

Install

Run these commands on your server:

# Docmost — the official compose file (app + PostgreSQL + Redis), as the docs install it
mkdir -p docmost && cd docmost
curl -O https://raw.githubusercontent.com/docmost/docmost/main/docker-compose.yml
# APP_URL must be a real URL — Docmost exits on a placeholder like SERVER_IP. This uses the box's first IP, which on a cloud VM is usually the private one; use your public IP or domain instead. APP_SECRET gets a 32+ char secret,
# and the Postgres password (it appears twice — the /g rewrites both with the same value)
sed -i "s|http://localhost:3000|http://$(hostname -I | cut -d' ' -f1):3000|; s|REPLACE_WITH_LONG_SECRET|$(openssl rand -hex 32)|; s|STRONG_DB_PASSWORD|$(openssl rand -hex 16)|g" docker-compose.yml
docker compose up -d   #  →  http://SERVER_IP:3000  (finish the workspace setup in the browser)

What you take on

Docmost is moving fast and its open-core split is explicit; both deserve a look before you adopt it:

non-negotiableIt is pre-1.0 — releases are still 0.x — so expect breaking changes between versions and read the release notes before pulling a new image.
non-negotiableThe Business edition is priced per seat with a minimum seat count, and Enterprise is custom-priced; the gated list (Bases, SSO via SAML/OIDC/LDAP, AI and MCP, audit logs, SIEM, SCIM) lives in the same repository under a separate enterprise license.
non-negotiableAPP_SECRET must be at least 32 characters and the database password appears twice in the compose file — change both or the app cannot reach Postgres.
non-negotiableThe stack is three containers (app, PostgreSQL, Redis with append-only persistence). The 1 GB floor is our estimate for that trio; the project publishes no RAM minimum.

An alternative to

Head-to-head

More in Wiki & docs

Common questions

Docmost exits with {"isUrl":"APP_URL must be a URL address"}. What is wrong?

Docmost validates APP_URL at startup and exits if it is not a valid URL. A placeholder such as http://SERVER_IP:3000 fails the check (an underscore is not allowed in a hostname), so the container stops seconds after docker compose up -d reports success. Set APP_URL to the address you will actually open: your domain, or http://:3000. The install above fills in the server's first IP address, which on a cloud VM is usually the private one, so replace it if you connect from outside.

We use analytics cookies (Google Analytics, PostHog) to see which guides are useful. No ad networks, no cross-site tracking. See our privacy policy.