🚀 Инструкция по запуску Docmost через docker-compose


📁 Подготовка файлов

Создайте директорию проекта и сохраните docker-compose.yml:

mkdir docmost && cd docmost

Создайте docker-compose.yml с содержимым:

cat << 'EOF' > docker-compose.yml
version: "3"

services:
  docmost:
    image: docmost/docmost:latest
    container_name: "docmost-app"
    depends_on:
      - docmost-postgres
      - docmost-redis
    environment:
      APP_URL: "https://docmost.example.com"
      APP_SECRET: "you-generate-secret"
      DATABASE_URL: "postgresql://docmost:<youpassword>@docmost-postgres:5432/docmost?schema=public"
      REDIS_URL: "redis://docmost-redis:6379"
      MAIL_DRIVER: "smtp"
      SMTP_HOST: "smtp.post.example"
      SMTP_PORT: "465"
      SMTP_USERNAME: "docmost@example"
      SMTP_PASSWORD: "you-password"
      SMTP_SECURE: "true"
      MAIL_FROM_ADDRESS: "docmost@example.com"
      MAIL_FROM_NAME: "Docmost"
    restart: unless-stopped
    volumes:
      - app_data:/app/data/storage
    labels:
      - traefik.enable=true
      - traefik.http.middlewares.docmost_https.redirectscheme.scheme=https
      - traefik.http.routers.docmost.entrypoints=web
      - traefik.http.routers.docmost.middlewares=docmost_https@docker
      - traefik.http.routers.docmost.rule=Host(`docmost.example.com`)
      - traefik.http.routers.docmost_https.entrypoints=websecure
      - traefik.http.routers.docmost_https.rule=Host(`docmost.example.com`)
      - traefik.http.routers.docmost_https.tls=true
      - traefik.http.routers.docmost_https.tls.certresolver=le
      - traefik.http.services.docmost.loadbalancer.server.port=3000

  docmost-postgres:
    image: postgres:16-alpine
    container_name: "docmost-postgres"
    environment:
      POSTGRES_DB: docmost
      POSTGRES_USER: docmost
      POSTGRES_PASSWORD: youpassword
    restart: unless-stopped
    volumes:
      - postgres_data:/var/lib/postgresql/data

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

volumes:
  app_data:
  postgres_data:
  redis_data:

networks:
  default:
    external:
      name: traefik_network
EOF

🔐 Настройка переменных

Перед запуском замените значения:

  • APP_SECRET — сгенерируйте командой:

    openssl rand -hex 32
  • <youpassword> — придумайте и вставьте свой пароль для базы данных
  • SMTP_USERNAME, SMTP_PASSWORD, MAIL_FROM_ADDRESS — данные вашей SMTP-почты
  • APP_URL, Host(...) — ваш реальный домен

🚢 Запуск контейнеров

Запустите всё в фоновом режиме:

docker compose up -d

Проверьте, что контейнеры работают:

docker compose ps

🌍 Доступ к приложению

После запуска перейдите в браузере:

https://docmost.example.com