Skip to main content

Docmost

Quick Overview

Purpose: Collaborative document management and knowledge sharing platform
Category: Collaboration & Documentation
Access URL: [https://docmost.billpantzartzis.info]
Status: 🟢 Active

📋 Description

Docmost is a powerful, self-hosted collaborative document management and knowledge sharing platform designed to enhance team productivity and streamline information workflows. It provides a centralized space where teams can create, organize, and share documents efficiently with real-time collaboration features.

Key Features:

  • 📝 Real-time collaborative editing with multiple users
  • 📚 Version control and document history tracking
  • 🔐 Granular access control and permissions management
  • 🔍 Powerful search and organization capabilities
  • 🔗 Integration with third-party tools and services
  • 📱 Responsive web interface for all devices
  • 📊 Analytics and usage tracking
  • 🏷️ Tagging and categorization system
  • 📄 Rich text editor with markdown support
  • 🔄 Document templates and workflows

🏗️ Architecture

🚀 Deployment

Production Setup

This is the current production configuration running on billpantzartzis.info

docker-compose.yml
services:
docmost:
image: docmost/docmost:0.20.3
depends_on:
- db
- redis
environment:
APP_URL: 'https://docmost.billpantzartzis.info'
APP_SECRET: 'your-secure-secret-key'
DATABASE_URL: 'postgresql://docmost:your-password@db:5432/docmost?schema=public'
REDIS_URL: 'redis://redis:6379'
MAIL_DRIVER: smtp
SMTP_HOST: smtp.gmail.com
SMTP_PORT: 587
SMTP_USERNAME: 'your-email@gmail.com'
SMTP_PASSWORD: 'your-app-password'
MAIL_FROM_ADDRESS: contact@billpantzartzis.info
MAIL_FROM_NAME: 'IT Crowd'
TZ: Europe/Amsterdam
DISABLE_TELEMETRY: 'true'
ports:
- "3636:3000"
restart: unless-stopped
volumes:
- docmost:/app/data/storage

db:
image: postgres:16-alpine
environment:
POSTGRES_DB: docmost
POSTGRES_USER: docmost
POSTGRES_PASSWORD: 'your-secure-password'
TZ: Europe/Amsterdam
restart: unless-stopped
volumes:
- /usr/share/zoneinfo/Europe/Amsterdam:/etc/localtime:ro
- db_data:/var/lib/postgresql/data

redis:
image: redis:7.2-alpine
restart: unless-stopped
environment:
- TZ=Europe/Amsterdam
volumes:
- redis_data:/data

volumes:
docmost:
db_data:
redis_data:

⚙️ Configuration

Required Environment Variables

VariableDescriptionDefaultRequired
APP_URLApplication URLhttp://localhost:3000
APP_SECRETSecret key for encryption-
DATABASE_URLPostgreSQL connection string-
REDIS_URLRedis connection stringredis://redis:6379
MAIL_DRIVEREmail driver (smtp/sendmail)smtp
SMTP_HOSTSMTP server host-
SMTP_PORTSMTP server port587
SMTP_USERNAMESMTP username-
SMTP_PASSWORDSMTP password-
MAIL_FROM_ADDRESSFrom email address-
MAIL_FROM_NAMEFrom name-
TZTimezoneUTC
DISABLE_TELEMETRYDisable telemetryfalse

Volume Mappings

Container PathHost PathDescription
/app/data/storagedocmostApplication data and file storage
/var/lib/postgresql/datadb_dataPostgreSQL database files
/dataredis_dataRedis data persistence

Network Configuration

Network Mode

This setup uses a custom bridge network for optimal container communication.

  • Port Mappings: 3636:3000 (production) or 3000:3000 (development)
  • Network Mode: Custom bridge network
  • Database: PostgreSQL 16 with Redis 7.2 for caching

📖 Usage

Initial Setup

  1. First Login

    Navigate to: https://docmost.billpantzartzis.info
    Create your first admin account
  2. Configuration Steps

    • Set up your organization profile
    • Configure user roles and permissions
    • Create initial document templates
    • Set up team workspaces
    • Configure integrations if needed

Common Tasks

📝 How to create and organize documents
  1. Create New Document

    • Click "New Document" button
    • Choose template or start blank
    • Add title and description
    • Select workspace/folder
  2. Organize Documents

    • Use folders and subfolders
    • Apply tags for categorization
    • Set document permissions
    • Create document templates
👥 How to manage team collaboration
  • Invite Users

    • Go to Settings → Users
    • Send email invitations
    • Assign roles and permissions
  • Real-time Collaboration

    • Multiple users can edit simultaneously
    • See live cursors and changes
    • Use comments for discussions
    • Track document history
🔍 How to search and filter content
  • Global Search

    • Use the search bar for full-text search
    • Filter by document type, author, or date
    • Search within specific workspaces
  • Advanced Filters

    • Filter by tags, categories, or status
    • Sort by creation date, modification date, or relevance
    • Save search queries for quick access
📊 How to manage document versions
  1. Version Control

    • Automatic versioning on saves
    • Manual version creation
    • Compare versions side-by-side
    • Restore previous versions
  2. Document History

    • View all changes and authors
    • Track document lifecycle
    • Export version reports
🔄 How to backup data
# Stop the containers
docker-compose down

# Backup PostgreSQL database
docker run --rm -v docmost_db_data:/data -v $(pwd):/backup postgres:16-alpine \
tar czf /backup/docmost-db-backup-$(date +%Y%m%d).tar.gz -C /data .

# Backup application data
docker run --rm -v docmost_docmost:/data -v $(pwd):/backup alpine \
tar czf /backup/docmost-app-backup-$(date +%Y%m%d).tar.gz -C /data .

# Restart containers
docker-compose up -d
🔄 How to update the container
# Pull the latest image
docker pull docmost/docmost:latest

# Update docker-compose.yml with new version
# Stop and recreate containers
docker-compose down
docker-compose up -d

🔧 Troubleshooting

Common Issues

Container Won't Start

Check logs with: docker logs docmost

Common causes:

  • Database connection issues
  • Redis connection problems
  • Missing environment variables
  • Port conflicts (3636 or 3000)
  • Permission issues with volumes
Database Connection Errors
  • Verify PostgreSQL container is running: docker ps
  • Check database credentials in environment variables
  • Ensure network connectivity between containers
  • Verify database exists and is accessible
Email Configuration Issues

If SMTP is not working:

  • Verify SMTP credentials and settings
  • Check firewall rules for SMTP ports
  • Test SMTP connection independently
  • Consider using app-specific passwords for Gmail
Data Loss Prevention

Always backup your data before:

  • Updating the container
  • Changing database configuration
  • Migrating to new hardware
  • Modifying volume mappings
  • Changing environment variables

Performance Optimization

  • Database: Use SSD storage for PostgreSQL data directory
  • Memory: Allocate at least 2GB RAM for the application
  • Redis: Configure Redis persistence for better performance
  • Files: Use fast storage for document file storage
  • Network: Ensure low latency between containers

🔗 Resources

📊 Monitoring

  • Health Check Endpoint: http://localhost:3636/health
  • Application Logs: docker logs docmost
  • Database Logs: docker logs docmost-db
  • Redis Logs: docker logs docmost-redis
  • Storage Usage: Monitor volume sizes

🏷️ Labels & Metadata

labels:
- "traefik.enable=true"
- "traefik.http.routers.docmost.rule=Host(`docmost.billpantzartzis.info`)"
- "traefik.http.routers.docmost.tls=true"
- "traefik.http.routers.docmost.tls.certresolver=letsencrypt"
- "com.centurylinklabs.watchtower.enable=true"

Last Updated

This documentation was last updated on December 2024. For the latest information, check the official documentation.