What is Docmost? How to configure it?

Finding the Perfect Wiki? Meet Docmost, an Open-Source Gem!

You know that moment when your team is looking for the perfect documentation tool, and you go down the rabbit hole of comparing Notion, Confluence, Wiki.js, and a dozen other options? Yeah, we’ve all been there. Some tools are great but come with a hefty price tag. Others are flexible but lack collaboration features.

That’s when you start wondering—is there an open-source, self-hosted alternative that just works?

Well, meet Docmost, a rising star in the world of collaborative wikis and documentation platforms. It’s open-source, self-hosted, and packed with features that make team knowledge management effortless.

Delivering cost-optimized solutions is essential for a DevOps or FinOps professional, and Docmost can be a great choice for a collaborative wiki and documentation platform. Let’s explore the options!

What is Docmost?

At its core, Docmost is an open-source, self-hosted alternative to tools like Confluence and Notion. It provides teams with a centralized space for documentation, collaboration, and knowledge sharing—without locking you into a proprietary system.

It’s perfect for teams looking for:

  • Real-time collaboration – multiple users can edit documents simultaneously.
  • Powerful organization – nested pages, spaces, and groups for structured documentation.
  • Markdown support – because plain text just isn’t enough.
  • Security & access control – fine-grained permissions to manage who sees what.
  • Diagrams & embeds – built-in support for Draw.io, Excalidraw, and Mermaid.

Key Features That Make Docmost Stand Out

  1. Real-Time Collaborative Editing – The rich-text editor enables users to collaborate in real-time, supporting diagrams, tables, LaTeX for mathematical expressions, embeds, and more.
  2. Spaces & Nested Pages – Organize your content into workspaces, and nest pages in an easy-to-manage structure. Drag-and-drop reordering makes it intuitive.
  3. Permissions & Groups – Control who gets access to what—whether it’s public documentation or internal-only notes.
  4. Powerful Search – Powered by PostgreSQL’s full-text search, finding documentation is quick and seamless.
  5. Version History – Accidentally delete something? No worries! Every change is tracked, so you can restore older versions when needed.

How to Get Started with Docmost?

Since Docmost is self-hosted, you must set it up on your server. The easiest way is to use Docker.

Prerequisites

  • Before you begin, make sure you have Docker installed on your server
  • Server Access: You’ll need a server (local or cloud-based) with sufficient resources (e.g., 2GB RAM minimum recommended).
  • Domain (Optional): For public access, a domain name with DNS pointing to your server is useful.
  • SMTP (Optional): For email invitations, you’ll need SMTP credentials (e.g., Gmail, Postmark, or your own mail server).
Installation and Configuration of Docmost
Figure 1.1 Installation and Configuration of Docmost

Installation and Configuration Steps

Create a directory for Docmost on your server:

mkdir docmost && cd docmost

Download the default docker-compose.yml file from the official repository:

curl -O https://raw.githubusercontent.com/docmost/docmost/main/docker-compose.yml

Open the docker-compose.yml file in a text editor. You’ll need to customize the environment variables under the docmost service. Here’s an example of the default structure:

version: '3'

services:
  docmost:
    image: docmost/docmost:latest
    depends_on:
      - db
      - redis
    environment:
      APP_URL: 'http://localhost:3000'
      APP_SECRET: 'LNQQu8iRNudQLz_m6XeCJEJ!^(6x2NE!'
      DATABASE_URL: 'postgresql://docmost:docmost@db:5432/docmost?schema=public'
      REDIS_URL: 'redis://redis:6379'
    ports:
      - "3000:3000"
    restart: unless-stopped
    volumes:
      - docmost:/app/data/storage

  db:
    image: postgres:16-alpine
    environment:
      POSTGRES_DB: docmost
      POSTGRES_USER: docmost
      POSTGRES_PASSWORD: docmost
    restart: unless-stopped
    volumes:
      - db_data:/var/lib/postgresql/data

  redis:
    image: redis:7.2-alpine
    restart: unless-stopped
    volumes:
      - redis_data:/data

volumes:
  docmost:
  db_data:
  redis_data:

Essential Configuration Components

Docmost Service
  • Image: docmost/docmost:latest – The official Docker image for Docmost.
  • Environment Variables:
    • APP_URL: Specify your domain or local IP/port (e.g., https://docmost.example.com).
    • APP_SECRET: A secure key is generated using openssl rand -hex 32; replace it with your key.
    • DATABASE_URL: PostgreSQL database connection string.
    • REDIS_URL: Redis connection string.
  • Ports: 3000:3000 – Maps port 3000 on the host to port 3000 inside the container for accessing Docmost’s web interface.
  • Volumes:
    • docmost:/app/data/storage – Stores Docmost’s data persistently.
PostgreSQL Service
  • Environment Variables:
    • POSTGRES_DB: Name of the database for Docmost.
    • POSTGRES_USER: Database username.
    • POSTGRES_PASSWORD: A secure database password (replace STRONG_DB_PASSWORD with your own).
  • Volumes:
    • db_data:/var/lib/postgresql/data – Ensures PostgreSQL data is stored persistently.
Redis Service
  • Volumes:
    • redis_data:/data – Stores Redis data persistently.

Docmost requires an email driver to invite users. Add these variables under environment in the docmost service:

For SMTP (e.g., Gmail):

MAIL_DRIVER: smtp
SMTP_HOST: smtp.gmail.com
SMTP_PORT: 465
SMTP_USERNAME: your-email@gmail.com
SMTP_PASSWORD: your-app-specific-password
SMTP_SECURE: true
MAIL_FROM_ADDRESS: your-email@gmail.com
MAIL_FROM_NAME: YourName

For Postmark:

MAIL_DRIVER: postmark
POSTMARK_TOKEN: your-postmark-token
MAIL_FROM_ADDRESS: your-email@domain.com
MAIL_FROM_NAME: Docmost

By default, Docmost uses local storage. To use S3-compatible storage (e.g., AWS S3, MinIO, Backblaze), add:

STORAGE_DRIVER: s3
AWS_S3_ACCESS_KEY_ID: your-access-key
AWS_S3_SECRET_ACCESS_KEY: your-secret-key
AWS_S3_REGION: your-region
AWS_S3_BUCKET: your-bucket-name
AWS_S3_ENDPOINT: your-s3-endpoint (optional for non-AWS)
AWS_S3_FORCE_PATH_STYLE: true (set to false for AWS)
  • Save the docker-compose.yml file.
  • Start the services:
docker-compose up -d
  • Open a browser and navigate to your APP_URL (e.g., http://localhost:3000 or your domain).
  • You should see the Docmost setup page. Follow the prompts to create your workspace and admin account.
  • Reverse Proxy: For public access, set up a reverse proxy (e.g., Nginx or Traefik) with SSL (e.g., Let’s Encrypt). Ensure WebSockets are enabled for real-time editing.
  • Permissions: If uploads fail, ensure the docmost volume has proper permissions (e.g., chmod 775 -R /path/to/docmost).
  • Troubleshooting: Check logs with docker-compose logs docmost if issues arise.

That’s it! Docmost should now be configured and ready for collaborative use. For more details, refer to the official documentation at docmost.com/docs.

Subscribe to Blog via Email

Enter your email address to subscribe to
this blog and receive notifications of new posts by email.
0 Shares:
You May Also Like