← Todos os templates · Notas e wikis
Faça deploy de Docmost em um clique
Wiki e documentação colaborativas, com espaços, edição em tempo real e diagramas
Uma alternativa auto-hospedada para Notion e Confluence.
O que é Docmost?
O Docmost é um software de código aberto para wikis e documentação. As páginas ficam em espaços, cada um com os próprios membros e permissões, e várias pessoas podem editar a mesma página ao mesmo tempo. O editor aceita comandos slash, tabelas, anexos de arquivos e incorporações como Airtable, Loom e Miro, e desenha diagramas com Draw.io, Excalidraw e Mermaid. Cada página guarda o seu histórico, que pode ser restaurado, as pessoas comentam o que leem, a busca cobre o texto completo, e uma página pode ser compartilhada publicamente por link.
Equipes auto-hospedam o Docmost como base de conhecimento ou wiki interna no lugar do Confluence ou do Notion, com páginas importadas do Notion, de Markdown ou de HTML. Este template roda a edição Community, gratuita, com PostgreSQL e Redis, e cria o workspace e o proprietário dele a partir dos campos antes de o Docmost responder a qualquer pessoa. O porém: SSO, autenticação de dois fatores, IA, chaves de API, permissões por página e o importador do Confluence ficam na edição Business, paga.
Hospedagem de Docmost no Pethost
- Você entra no Pethost com uma passkey, GitHub ou Google. Ainda não tem máquina? Você escolhe um plano, e o link espera até ela ficar pronta.
- Novo projeto abre em Docmost. Você preenche o que ele pede e clica em Criar projeto: Usuário, E-mail, Senha do administrador.
- Em um ou dois minutos Docmost está no ar no próprio endereço com HTTPS. Os segredos são gerados ao acaso, e os dados vão para o backup noturno.
- É um projeto como qualquer outro: você ou seu agente podem alterá-lo, fazer rollback ou restaurá-lo.
Perguntas sobre Docmost
O Docmost é gratuito?
Sim. A edição Community é de código aberto sob a AGPL-3.0 e gratuita para auto-hospedar, com colaboração em tempo real, espaços e busca no texto completo. A edição Business custa US$ 6 por usuário por mês, com cobrança anual de pelo menos 10 usuários, e adiciona SSO, autenticação de dois fatores, IA, chaves de API e permissões por página.
Docmost, Confluence ou Notion?
Como wiki, o Docmost cobre o mesmo terreno: espaços, páginas em árvore, edição em tempo real, comentários e histórico da página. O Confluence e o Notion rodam na nuvem das empresas que os fazem, enquanto o Docmost roda onde você fizer o deploy dele, e a edição Community é gratuita para qualquer número de usuários.
Posso importar minhas páginas do Notion para o Docmost?
Sim. O Docmost importa para um espaço uma exportação do Notion e arquivos Markdown e HTML. O importador do Confluence faz parte da edição Business, paga.
Várias pessoas podem editar uma página do Docmost ao mesmo tempo?
Sim. O editor dele é colaborativo em tempo real: todos numa página veem as alterações dos outros enquanto eles digitam, e o histórico da página guarda cada versão.
Como convido pessoas para o Docmost?
Com “Convidar pessoas”, por e-mail e com uma função. O Docmost não tem cadastro público, então uma pessoa entra pelo convite dela, que ele envia por e-mail depois que o SMTP_HOST e as outras variáveis SMTP_ estiverem no .env do projeto. Até lá, “Copiar link” num convite pendente em Configurações → Membros dá o link para você mesmo enviar.
De quanta memória e disco Docmost precisa?
O Docmost é leve: cerca de 300 MB de memória com o Postgres e o Redis, e as páginas crescem devagar; os anexos ocupam o que os arquivos deles ocupam. No Pethost, o plano Starter basta, com espaço para outros apps ao lado.
Arquivo Docker Compose de Docmost
O template é este compose.yaml e as variáveis gravadas no .env do projeto quando ele é criado. O Pethost roda o arquivo exatamente como está escrito.
Containers: docmost (docmost/docmost:0.97), postgres (postgres:18-alpine), redis (redis:8-alpine).
Volumes, no backup noturno: 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:
Mais em Notas e wikis
- MemosNotas curtas em Markdown em uma linha do tempo privada
- HedgeDocNotas em Markdown que você escreve com outras pessoas, em tempo real
- Obsidian LiveSyncUm servidor CouchDB que sincroniza seus cofres do Obsidian com o Self-hosted LiveSync
- BookStackUma wiki organizada em estantes, livros, capítulos e páginas
- EtherpadDocumentos editados em conjunto em tempo real: cada autor com a sua cor, com chat, histórico e plugins
- MediaWikiO software de wiki da Wikipédia: páginas que qualquer pessoa pode ler, editadas no editor visual ou no de código-fonte
