← Все шаблоны · Заметки и вики
Задеплойте 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 — с passkey, через 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-заметки в личной ленте
- HedgeDocMarkdown-заметки, которые вы пишете вместе с другими в реальном времени
- Obsidian LiveSyncСервер CouchDB, который синхронизирует ваши хранилища Obsidian через Self-hosted LiveSync
- BookStackВики, разложенная по полкам, книгам, главам и страницам
- EtherpadДокументы, которые редактируют вместе в реальном времени: у каждого автора свой цвет, есть чат, история и плагины
- MediaWikiДвижок вики, на котором работает Википедия: страницы, которые может читать любой, а править можно в визуальном редакторе или в редакторе кода
