---
title: "Docmost: Docker Compose і хостинг в один клік"
description: "Docmost — вікі й документи з відкритим кодом: простори, редагування в реальному часі й діаграми. Self-hosted альтернатива Confluence і Notion в один клік."
---

[← Усі шаблони](https://pethost.dev/uk/templates/) · [Нотатки й вікі](https://pethost.dev/uk/templates/notes/)

# Задеплойте Docmost в один клік

Вікі й документація для спільної роботи: простори, редагування в реальному часі й діаграми

Альтернатива Notion і Confluence на вашій машині.

[Задеплоїти на Pethost](https://console.pethost.dev/?template=docmost)

## Що таке Docmost?

Docmost — програма з відкритим кодом для вікі й документації. Сторінки живуть у просторах, кожен зі своїми учасниками й правами доступу, і кілька людей можуть редагувати одну сторінку водночас. Редактор розуміє слеш-команди, таблиці, вкладені файли й вбудовування на кшталт Airtable, Loom і Miro, а діаграми малює за допомогою Draw.io, Excalidraw і Mermaid. Кожна сторінка зберігає свою історію, з якої її можна відновити, люди коментують прочитане, пошук іде по всьому тексту, а сторінкою можна публічно поділитися за посиланням.

Команди хостять Docmost у себе як базу знань чи внутрішню вікі замість Confluence або Notion і переносять туди сторінки з Notion, Markdown чи HTML. Цей шаблон запускає безкоштовну редакцію Community з PostgreSQL і Redis та створює робочий простір і його власника з полів ще до того, як Docmost комусь відповість. Підводний камінь: SSO, двофакторна автентифікація, ШІ, API-ключі, права доступу до окремих сторінок та імпорт із Confluence є лише в платній редакції Business.

## Хостинг Docmost на Pethost

1. Ви входите в Pethost — з ключем доступу, через GitHub або Google. Машини ще немає? Ви обираєте тариф, і посилання чекає, доки машина не буде готова.
2. Вікно «Новий проєкт» відкривається на застосунку Docmost. Ви заповнюєте те, що він просить, і натискаєте «Створити проєкт»: **Ім’я користувача**, **Електронна пошта**, **Пароль адміністратора**.
3. За хвилину-дві Docmost працює за власною адресою з HTTPS. Секрети створюються випадково, а дані потрапляють у щонічний бекап.
4. Це проєкт як будь-який інший: ви або ваш агент можете його змінити, відкотити або відновити.

## Питання про Docmost

**Docmost безкоштовний?**

Так. Редакція Community має відкритий код за ліцензією AGPL-3.0, і її можна безкоштовно хостити в себе, зі спільною роботою в реальному часі, просторами й повнотекстовим пошуком. Редакція Business коштує 6 $ за користувача на місяць з оплатою за рік, щонайменше за 10 користувачів, і додає SSO, двофакторну автентифікацію, ШІ, API-ключі та права доступу до окремих сторінок.

**Docmost, Confluence чи Notion?**

Як вікі Docmost уміє те саме: простори, дерево сторінок, редагування в реальному часі, коментарі й історію сторінок. Confluence і Notion працюють у хмарах своїх розробників, а Docmost — там, де ви його задеплоїте, і його редакція Community безкоштовна для будь-якої кількості користувачів.

**Чи можна імпортувати сторінки Notion у Docmost?**

Так. Docmost імпортує в простір експорт із Notion, а також файли Markdown і HTML. Імпорт із Confluence входить до платної редакції Business.

**Чи можуть кілька людей редагувати сторінку Docmost водночас?**

Так. Його редактор розрахований на спільну роботу в реальному часі: кожен на сторінці бачить зміни інших, поки ті друкують, а історія сторінки зберігає кожну версію.

**Як запросити людей у Docmost?**

Кнопкою «Запросити людей», поштою та з роллю. Публічної реєстрації в Docmost немає, тож людина приєднується за своїм запрошенням, яке Docmost надсилає поштою, щойно в .env проєкту з’являться SMTP_HOST та інші налаштування SMTP_. Доти пункт «Копіювати посилання» біля запрошення, що очікує, у розділі «Налаштування → Учасники» дає посилання, яке ви надішлете самі.

**Скільки пам’яті й диска потрібно Docmost?**

Docmost має скромні вимоги: близько 300 MB пам’яті разом із Postgres і Redis, а сторінки ростуть повільно; вкладення займають стільки, скільки їхні файли. На Pethost йому вистачить тарифу Starter, і поруч залишиться місце для інших застосунків.

## Docmost: файл Docker Compose

Шаблон — це цей compose.yaml і змінні, які записуються в .env проєкту під час його створення. Pethost запускає файл так, як його написано.

**Контейнери:** docmost (docmost/docmost:0.97), postgres (postgres:18-alpine), redis (redis:8-alpine).

**Томи, у щонічному бекапі:** data, db, redis.

```
services:
  docmost:
    image: docmost/docmost:0.97
    restart: unless-stopped
    # Docmost does not stop on SIGTERM as the first process: an init passes it on.
    init: true
    # Any setting of Docmost can be added to the project's .env, such as SMTP_HOST and the other
    # SMTP_ settings, which send its invitations and password resets by email.
    env_file: .env
    environment:
      APP_URL: ${URL}
      APP_SECRET: ${APP_SECRET}
      DATABASE_URL: postgresql://docmost:${POSTGRES_PASSWORD}@postgres:5432/docmost
      REDIS_URL: redis://redis:6379
      ADMIN_NAME: ${ADMIN_NAME}
      ADMIN_EMAIL: ${ADMIN_EMAIL}
      ADMIN_PASSWORD: ${ADMIN_PASSWORD}
    # A new Docmost offers its setup, which makes the workspace and its owner, to whoever opens it
    # first. So while it has no workspace, it runs on port 3001, which nobody reaches, and the
    # owner is made there from the fields; only then does Docmost answer on 3000.
    command:
      - sh
      - -c
      - |
        set -e
        cd /app/apps/server
        if ! node -e '
          const sql = require("postgres")(process.env.DATABASE_URL, { max: 1 });
          (async () => {
            for (let i = 0; i < 60; i++) {
              try {
                const [row] = await sql`select count(*)::int as n from workspaces`;
                process.exit(row.n > 0 ? 0 : 1);
              } catch (error) {
                // No such table: a new database, which the migrations of Docmost have yet to fill.
                if (error.code === "42P01") process.exit(1);
                await new Promise((done) => setTimeout(done, 1000));
              }
            }
            process.exit(1);
          })();
        '; then
          NODE_ENV=production PORT=3001 node dist/main &
          setup=$$!
          node -e '
            const setUp = async () => {
              const response = await fetch("http://127.0.0.1:3001/api/auth/setup", {
                method: "POST",
                headers: { "content-type": "application/json" },
                body: JSON.stringify({
                  workspaceName: "Docmost",
                  name: process.env.ADMIN_NAME,
                  email: process.env.ADMIN_EMAIL,
                  password: process.env.ADMIN_PASSWORD
                })
              });
              // 403: a workspace exists already, made by an earlier start.
              if (response.ok || response.status === 403) return;
              const body = await response.text();
              if (response.status === 400) {
                console.error("Docmost refused the administrator: " + body);
                process.exit(1);
              }
              throw new Error("setup: " + response.status + " " + body);
            };
            (async () => {
              let failure;
              for (let i = 0; i < 180; i++) {
                try {
                  return await setUp();
                } catch (error) {
                  failure = error;
                  await new Promise((done) => setTimeout(done, 1000));
                }
              }
              console.error(failure);
              process.exit(1);
            })();
          '
          kill $$setup
          wait $$setup || true
        fi
        NODE_ENV=production exec node dist/main
    volumes:
      - data:/app/data/storage
    depends_on:
      postgres:
        condition: service_healthy
      redis:
        condition: service_healthy

  postgres:
    image: postgres:18-alpine
    restart: unless-stopped
    environment:
      POSTGRES_DB: docmost
      POSTGRES_USER: docmost
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
    volumes:
      - db:/var/lib/postgresql
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -h 127.0.0.1 -U docmost -d docmost"]
      interval: 5s
      timeout: 5s
      retries: 10
      start_period: 30s

  redis:
    image: redis:8-alpine
    restart: unless-stopped
    command: ["redis-server", "--appendonly", "yes", "--maxmemory-policy", "noeviction"]
    volumes:
      - redis:/data
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 5s
      timeout: 5s
      retries: 10

volumes:
  data:
  db:
  redis:
```

[compose.yaml](https://pethost.dev/templates/docmost/compose.yaml)[Відкрити на GitHub](https://github.com/pethost-dev/templates/tree/main/docmost)

## [Ще в категорії «Нотатки й вікі»](https://pethost.dev/uk/templates/notes/)

- [**Memos**Короткі нотатки в Markdown на приватній стрічці](https://pethost.dev/uk/templates/memos/)
- [**HedgeDoc**Нотатки в Markdown, які ви пишете разом з іншими в реальному часі](https://pethost.dev/uk/templates/hedgedoc/)
- [**Obsidian LiveSync**Сервер CouchDB, що синхронізує ваші сховища Obsidian через Self-hosted LiveSync](https://pethost.dev/uk/templates/obsidian-livesync/)
- [**BookStack**Вікі, розкладена по полицях, книгах, розділах і сторінках](https://pethost.dev/uk/templates/bookstack/)
- [**Etherpad**Документи, які редагують разом у реальному часі: у кожного автора свій колір, є чат, історія й плагіни](https://pethost.dev/uk/templates/etherpad/)
- [**MediaWiki**Рушій вікі, на якому працює Вікіпедія: сторінки, які читає кожен, а редагують у візуальному редакторі або в редакторі коду](https://pethost.dev/uk/templates/mediawiki/)

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Шаблони](https://pethost.dev/uk/templates/)
- [Про нас](https://pethost.dev/about/)
- [Документація](https://pethost.dev/docs/)
- [Блог](https://pethost.dev/uk/blog/)
- [API](https://pethost.dev/docs/api/)
- [CLI](https://pethost.dev/docs/cli/)
- [Плагін](https://github.com/pethost-dev/plugin)
- [Умови](https://pethost.dev/terms/)
- [Конфіденційність](https://pethost.dev/privacy/)
- [Повернення коштів](https://pethost.dev/refunds/)
- [support@pethost.dev](mailto:support@pethost.dev)

Бази даних

- [Postgres](https://pethost.dev/uk/postgres/)

Порівняння

- [Coolify vs Dokploy vs CapRover vs Dokku](https://pethost.dev/uk/blog/coolify-vs-dokploy-vs-caprover-vs-dokku/)
- [Coolify Cloud vs Dokploy Cloud](https://pethost.dev/uk/blog/coolify-cloud-vs-dokploy-cloud/)
- [Ціни Railway vs Render vs Fly.io](https://pethost.dev/uk/blog/railway-vs-render-vs-fly-io-pricing/)
- [Керований хостинг Docker Compose](https://pethost.dev/uk/blog/managed-docker-compose-hosting/)

Альтернативи

- [Альтернативи Railway](https://pethost.dev/uk/blog/railway-alternatives/)
- [Альтернативи Heroku](https://pethost.dev/uk/blog/heroku-alternatives/)
- [Альтернативи Dokploy](https://pethost.dev/uk/blog/dokploy-alternatives/)
- [Альтернативи Coolify](https://pethost.dev/uk/blog/coolify-alternatives/)
- [Альтернативи Render](https://pethost.dev/uk/blog/render-alternatives/)
- [Альтернативи Sliplane](https://pethost.dev/uk/blog/sliplane-alternatives/)
