← Усі шаблони · Нотатки й вікі
Задеплойте Docmost в один клік
Вікі й документація для спільної роботи: простори, редагування в реальному часі й діаграми
Альтернатива Notion і Confluence на вашій машині.
Що таке 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
- Ви входите в Pethost — з ключем доступу, через GitHub або Google. Машини ще немає? Ви обираєте тариф, і посилання чекає, доки машина не буде готова.
- Вікно «Новий проєкт» відкривається на застосунку Docmost. Ви заповнюєте те, що він просить, і натискаєте «Створити проєкт»: Ім’я користувача, Електронна пошта, Пароль адміністратора.
- За хвилину-дві Docmost працює за власною адресою з HTTPS. Секрети створюються випадково, а дані потрапляють у щонічний бекап.
- Це проєкт як будь-який інший: ви або ваш агент можете його змінити, відкотити або відновити.
Питання про 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:
Ще в категорії «Нотатки й вікі»
- MemosКороткі нотатки в Markdown на приватній стрічці
- HedgeDocНотатки в Markdown, які ви пишете разом з іншими в реальному часі
- Obsidian LiveSyncСервер CouchDB, що синхронізує ваші сховища Obsidian через Self-hosted LiveSync
- BookStackВікі, розкладена по полицях, книгах, розділах і сторінках
- EtherpadДокументи, які редагують разом у реальному часі: у кожного автора свій колір, є чат, історія й плагіни
- MediaWikiРушій вікі, на якому працює Вікіпедія: сторінки, які читає кожен, а редагують у візуальному редакторі або в редакторі коду
