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
- 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.
- Spaces & Nested Pages – Organize your content into workspaces, and nest pages in an easy-to-manage structure. Drag-and-drop reordering makes it intuitive.
- Permissions & Groups – Control who gets access to what—whether it’s public documentation or internal-only notes.
- Powerful Search – Powered by PostgreSQL’s full-text search, finding documentation is quick and seamless.
- 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 Steps
1. Set Up the Project Directory
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
2. Edit the Configuration
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 usingopenssl 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 (replaceSTRONG_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.
3. Optional: Configure Email
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
4. Optional: Configure Storage
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)
5. Save and Deploy
- Save the docker-compose.yml file.
- Start the services:
docker-compose up -d
6. Verify Installation
- 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.
7. Additional Considerations
- 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.