---
title: "Docmost com Docker Compose e hospedagem em um clique"
description: "Docmost: wiki e documentação open source com espaços, edição em tempo real e diagramas. Auto-hospede a alternativa ao Confluence e ao Notion em um clique."
---

[← Todos os templates](https://pethost.dev/pt/templates/) · [Notas e wikis](https://pethost.dev/pt/templates/notes/)

# 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.

[Fazer deploy no Pethost](https://console.pethost.dev/?template=docmost)

## 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

1. 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.
2. Novo projeto abre em Docmost. Você preenche o que ele pede e clica em Criar projeto: **Usuário**, **E-mail**, **Senha do administrador**.
3. 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.
4. É 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:
```

[compose.yaml](https://pethost.dev/templates/docmost/compose.yaml)[Ver no GitHub](https://github.com/pethost-dev/templates/tree/main/docmost)

## [Mais em Notas e wikis](https://pethost.dev/pt/templates/notes/)

- [**Memos**Notas curtas em Markdown em uma linha do tempo privada](https://pethost.dev/pt/templates/memos/)
- [**HedgeDoc**Notas em Markdown que você escreve com outras pessoas, em tempo real](https://pethost.dev/pt/templates/hedgedoc/)
- [**Obsidian LiveSync**Um servidor CouchDB que sincroniza seus cofres do Obsidian com o Self-hosted LiveSync](https://pethost.dev/pt/templates/obsidian-livesync/)
- [**BookStack**Uma wiki organizada em estantes, livros, capítulos e páginas](https://pethost.dev/pt/templates/bookstack/)
- [**Etherpad**Documentos editados em conjunto em tempo real: cada autor com a sua cor, com chat, histórico e plugins](https://pethost.dev/pt/templates/etherpad/)
- [**MediaWiki**O software de wiki da Wikipédia: páginas que qualquer pessoa pode ler, editadas no editor visual ou no de código-fonte](https://pethost.dev/pt/templates/mediawiki/)

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Templates](https://pethost.dev/pt/templates/)
- [Sobre nós](https://pethost.dev/about/)
- [Docs](https://pethost.dev/docs/)
- [Blog](https://pethost.dev/pt/blog/)
- [API](https://pethost.dev/docs/api/)
- [CLI](https://pethost.dev/docs/cli/)
- [Plugin](https://github.com/pethost-dev/plugin)
- [Termos](https://pethost.dev/terms/)
- [Privacidade](https://pethost.dev/privacy/)
- [Reembolsos](https://pethost.dev/refunds/)
- [support@pethost.dev](mailto:support@pethost.dev)

Bancos de dados

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

Comparativos

- [Coolify vs Dokploy vs CapRover vs Dokku](https://pethost.dev/pt/blog/coolify-vs-dokploy-vs-caprover-vs-dokku/)
- [Coolify Cloud vs Dokploy Cloud](https://pethost.dev/pt/blog/coolify-cloud-vs-dokploy-cloud/)
- [Preços Railway vs Render vs Fly.io](https://pethost.dev/pt/blog/railway-vs-render-vs-fly-io-pricing/)
- [Hospedagem gerenciada de Docker Compose](https://pethost.dev/pt/blog/managed-docker-compose-hosting/)

Alternativas

- [Alternativas ao Railway](https://pethost.dev/pt/blog/railway-alternatives/)
- [Alternativas ao Heroku](https://pethost.dev/pt/blog/heroku-alternatives/)
- [Alternativas ao Dokploy](https://pethost.dev/pt/blog/dokploy-alternatives/)
- [Alternativas ao Coolify](https://pethost.dev/pt/blog/coolify-alternatives/)
- [Alternativas ao Render](https://pethost.dev/pt/blog/render-alternatives/)
- [Alternativas ao Sliplane](https://pethost.dev/pt/blog/sliplane-alternatives/)
