Files

3.4 KiB

Docmost

Overview

Docmost is a collaborative wiki and documentation platform, similar to Notion or Outline. It supports real-time editing, page hierarchies, and rich content. This stack includes PostgreSQL for data storage and Redis for session management and caching.

Project Details

Getting Started

Open http://localhost:8000 in your browser:

  1. In sample.env, set APP_SECRET (at least 32 characters — openssl rand -hex 32), DB_PASSWORD, and APP_URL to your public URL (e.g. https://docs.example.com)
  2. Deploy the stack and open the site — on first visit you create the workspace and admin account
  3. Start creating spaces and pages

Environment Variable Notes

Variable Description
DOCMOST_IMAGE Docmost container image (default: docmost/docmost:latest)
POSTGRES_IMAGE PostgreSQL image (default: postgres:16-alpine)
REDIS_IMAGE Redis image (default: redis:7-alpine)
DOCMOST_RESTART Restart policy for all services (default: unless-stopped)
DOCMOST_PORT Published port for the web UI (default: 8000)
VOL_PATH Base path for persistent data volumes (default: /data)
APP_URL Public-facing URL of your Docmost instance (used in links and invites; must match the URL you browse to)
APP_SECRET Secret key for encryption and sessions — must be at least 32 characters or Docmost will refuse to start (openssl rand -hex 32)
DB_PASSWORD Password for the PostgreSQL database user

Volume Notes

Volume Purpose
${VOL_PATH:-/data}/docmost/storage Docmost uploads and data storage
${VOL_PATH:-/data}/docmost/db PostgreSQL database files
${VOL_PATH:-/data}/docmost/redis Redis persistence data

Network Notes

  • proxy — external network for reverse proxy access to the Docmost web UI
  • internal — bridge network for Docmost ↔ PostgreSQL/Redis; the database and Redis are only on this network

Create the proxy network once with:

docker network create proxy

Docker Run

This is a multi-service stack — use docker compose instead of individual docker run commands.

Additional Notes / Gotchas

  • APP_SECRET length: the default ChangeThisPassword is too short on purpose — the container won't start until you set a real 32+ character secret.
  • Reverse proxy: in Nginx Proxy Manager point the host at docmost:3000 and enable Websockets Support — real-time collaborative editing depends on it.
  • Email (invites, password reset): not configured by default. Add MAIL_DRIVER=smtp, SMTP_HOST, SMTP_PORT, SMTP_USERNAME, SMTP_PASSWORD, MAIL_FROM_ADDRESS, MAIL_FROM_NAME to the docmost service environment — see the Docmost docs.
  • Postgres upgrades: don't bump POSTGRES_IMAGE major versions (e.g. 16 → 17) on an existing data dir; dump and restore instead.

Dockhand Stack, Deploy from Git

  • Cookbooks Repository
  • stackname: docmost
  • Compose file path: docmost/compose.yaml
  • Additional env file (optional): docmost/sample.env

Load docmost/sample.env into the Environment variables in Dockhand, then create the Stack.