SSD Nodes Learn 8GB de RAM — $66/ano
Guias Matt ConnorPor Matt Connor · Atualizado 2026-08-02

BookStack, Wiki.js ou Outline: qual escolher?

Compare BookStack, Wiki.js e Outline por instalação, editores, login e busca. Veja a escolha mais simples para admins solo e a melhor opção para equipes.

Qual wiki você deve executar em ambiente próprio

Um wiki hospedado por você coloca os documentos da sua equipe em um único local pesquisável, em um servidor que você controla. BookStack, Wiki.js e Outline fazem esse trabalho. A principal diferença está na quantidade de componentes que você precisa configurar antes de a primeira página carregar e em quem tem permissão para fazer login.

BookStack é o mais simples de instalar e o que impõe a estrutura mais rígida. Wiki.js oferece a maior variedade de editores em uma única árvore de páginas. Outline proporciona a melhor experiência de escrita dos três e não permite que ninguém faça login até que você conecte um provedor de identidade externo.

Tudo abaixo foi obtido na documentação dos próprios projetos e nos arquivos de configuração publicados por eles. Esta é uma comparação de recursos, não um benchmark. Os números de versão e os requisitos têm uma data de referência porque os três projetos continuam evoluindo.

A estrutura é a escolha real

O BookStack define a estrutura do seu conteúdo. Uma página fica dentro de um livro, um livro pode conter capítulos, e as estantes agrupam livros. Você não pode criar um quinto nível. Esse limite é o produto: um novo redator sabe onde colocar uma página porque existe apenas um local possível. O custo é que o conteúdo que não se encaixa nessa estrutura precisa ser forçado a se adaptar a ela.

O Wiki.js usa uma árvore de caminhos, como diretórios em um disco. Uma página em ops/backup/restic fica onde você a coloca, e você escolhe a profundidade. Nada impede que duas pessoas arquivem o mesmo assunto em dois ramos diferentes, portanto uma instância do Wiki.js precisa de uma pessoa responsável pela árvore.

O Outline usa coleções com documentos aninhados em outros documentos. Para mover um documento, basta arrastá-lo com o mouse. É a opção mais flexível das três, portanto também é a mais fácil de deixar desorganizar.

BookStack: a instalação mínima

BookStack é uma aplicação PHP apoiada por MySQL. Em julho de 2026, os requisitos documentados são PHP 8.2 ou mais recente e MySQL 8.0 ou MariaDB 10.6 ou mais recente, além de Composer 2.2 ou mais recente se você instalar a partir do código-fonte. A linha de versões atual é 26.05.

O projeto publica um script de instalação para cada versão do Ubuntu. O script para 24.04 instala Apache, MySQL 8.0 e PHP 8.3 para você.

wget https://codeberg.org/bookstack/devops/raw/branch/main/scripts/installation-ubuntu-24.04.sh
chmod a+x installation-ubuntu-24.04.sh
sudo ./installation-ubuntu-24.04.sh

Leia o aviso desse script antes de executá-lo. A documentação informa que ele é "ONLY FOR A FRESH OS, it will install Apache, MySQL 8.0 & PHP 8.3 and could OVERWRITE any existing web setup on the machine". Em um servidor que já responde na porta 80, o script assume essa porta e reescreve a configuração do Apache. Nesse caso, use contêineres ou instale o BookStack manualmente sobre uma stack LAMP existente no Ubuntu 24.04.

A opção com contêiner usa a imagem do LinuxServer.io, indicada pela documentação do BookStack. O BookStack precisa de uma chave de criptografia de sessão e não exibirá páginas sem ela. Portanto, gere a chave primeiro.

docker run -it --rm --entrypoint /bin/bash lscr.io/linuxserver/bookstack:latest appkey

Copie o valor exibido para APP_KEY e escreva o serviço:

services:
  bookstack:
    image: lscr.io/linuxserver/bookstack:latest
    container_name: bookstack
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - APP_URL=https://wiki.example.com
      - APP_KEY=paste_the_generated_key_here
      - DB_HOST=bookstack_db
      - DB_PORT=3306
      - DB_USERNAME=bookstack
      - DB_PASSWORD=change_me
      - DB_DATABASE=bookstackapp
    volumes:
      - ./config:/config
    ports:
      - 6875:80
    restart: unless-stopped

APP_URL precisa corresponder ao endereço que os leitores realmente digitam, incluindo o esquema e qualquer porta. Defina-o como http://localhost e disponibilize o site por HTTPS. Caso contrário, os links gerados e os redirecionamentos apontarão para o host errado, e os leitores verão uma página de login que retorna para si mesma. Se os arquivos do Compose forem novidade para você, comece por Conceitos básicos do Docker Compose em um VPS antes deste tutorial.

Inicie o serviço e verifique se a aplicação responde, não apenas se o contêiner está em execução:

docker compose up -d
docker compose ps
curl -sI http://127.0.0.1:6875/login

Um 200 OK significa que a aplicação PHP foi iniciada e alcançou o banco de dados. Um 500 quase sempre significa que APP_KEY está vazio ou que as credenciais do banco de dados não correspondem. docker compose logs bookstack informa qual dos dois problemas ocorreu.

Wiki.js: uma árvore, vários editores

Wiki.js é uma aplicação Node.js. A configuração documentada do Docker usa PostgreSQL, embora o software também aceite MySQL, MariaDB, MSSQL e SQLite. Este é o arquivo compose da própria página do Docker do projeto:

services:
  db:
    image: postgres:15-alpine
    environment:
      POSTGRES_DB: wiki
      POSTGRES_PASSWORD: wikijsrocks
      POSTGRES_USER: wikijs
    logging:
      driver: none
    restart: unless-stopped
    volumes:
      - db-data:/var/lib/postgresql/data
  wiki:
    image: ghcr.io/requarks/wiki:2
    depends_on:
      - db
    init: true
    environment:
      DB_TYPE: postgres
      DB_HOST: db
      DB_PORT: 5432
      DB_USER: wikijs
      DB_PASS: wikijsrocks
      DB_NAME: wiki
    restart: unless-stopped
    ports:
      - "80:3000"
volumes:
  db-data:

Altere POSTGRES_PASSWORD e DB_PASS juntos antes de executá-lo, porque eles formam uma única credencial e o valor de exemplo é público. A tag está fixada em ghcr.io/requarks/wiki:2 de propósito. A documentação recomenda não usar latest, pois uma mudança de versão principal altera o esquema do banco de dados enquanto a instância está em execução.

A versão 2 é a linha que deve ser executada. Em julho de 2026, a versão 2 mais recente é 2.5.314, lançada em maio de 2026. A versão 3 existe, e a documentação própria diz: "Este site é destinado à versão beta instável do Wiki.js 3.0. Você NÃO deve instalar isto em produção." Trate a tag :3 como uma versão de prévia.

Na primeira abertura, o Wiki.js orienta você por uma configuração no navegador que cria a conta de administrador. Até concluí-la, qualquer pessoa que alcance a porta verá esse assistente. Portanto, coloque o serviço atrás do seu proxy reverso e de TLS (segurança da camada de transporte) antes de abrir o firewall. Um wiki em seu próprio nome de host fica naturalmente atrás do Traefik na frente de vários aplicativos Docker quando o servidor hospeda mais serviços além deste.

A escolha do editor é o motivo pelo qual as pessoas escolhem o Wiki.js. Uma instância pode armazenar lado a lado páginas Markdown, páginas do editor visual, páginas HTML puro e páginas AsciiDoc. Isso ajuda quando você importa conteúdo antigo em um formato que preferiria não converter. Também é uma forma de acabar com quatro padrões editoriais diferentes em um único wiki. Portanto, defina o editor padrão no primeiro dia e registre essa decisão.

Outline: o melhor editor, com os pré-requisitos mais pesados

Outline é o que as pessoas geralmente querem dizer quando procuram algo com a experiência de uma ferramenta comercial de anotações. É uma aplicação Node.js, e a versão atual em julho de 2026 é 1.9.2. O arquivo de ambiente de exemplo lista os requisitos: PostgreSQL por meio de DATABASE_URL, Redis por meio de REDIS_URL, dois segredos aleatórios e um URL acessível publicamente.

openssl rand -hex 32
openssl rand -hex 32

Execute isso duas vezes e mantenha os dois valores. O primeiro se torna SECRET_KEY, e o segundo, UTILS_SECRET. O núcleo do arquivo de ambiente fica assim:

NODE_ENV=production
URL=https://docs.example.com
PORT=3000
SECRET_KEY=<first openssl value>
UTILS_SECRET=<second openssl value>
DATABASE_URL=postgres://outline:change_me@postgres:5432/outline
PGSSLMODE=disable
REDIS_URL=redis://redis:6379
FILE_STORAGE=local
FILE_STORAGE_LOCAL_ROOT_DIR=/var/lib/outline/data

PGSSLMODE=disable só está correto quando o banco de dados fica na mesma máquina ou na mesma rede Docker. Omita essa configuração quando o banco de dados for acessado pela rede; caso contrário, a conexão será transmitida sem criptografia. Os anexos não exigem mais armazenamento de objetos: FILE_STORAGE=local grava os uploads no diretório acima. Esse diretório deve ser um volume no qual o contêiner possa gravar e que esteja incluído nos seus backups. Defina FILE_STORAGE=s3 usando os valores de AWS_* se quiser armazenar esses arquivos em um bucket compatível com S3.

Agora vem a parte que surpreende muitas pessoas. Outline não tem login integrado com nome de usuário e senha. A configuração de exemplo do próprio produto informa que são necessárias credenciais de login de terceiros: "pelo menos UMA destas opções é necessária para uma instalação funcional; caso contrário, você não terá opções de login". Os provedores documentados incluem Google, Slack, Microsoft Entra, Discord e qualquer servidor genérico de OpenID Connect (OIDC), por meio de OIDC_CLIENT_ID, OIDC_CLIENT_SECRET, OIDC_AUTH_URI, OIDC_TOKEN_URI e OIDC_USERINFO_URI.

Portanto, o custo real do Outline é Outline mais PostgreSQL, Redis e um provedor de identidade. Se sua equipe já usa o Google Workspace ou o Microsoft Entra para fazer login, essa última parte leva dez minutos e torna o Outline uma opção muito atraente. Se não usa, você também terá de hospedar algo como Keycloak ou Authentik. Isso adiciona um segundo serviço para corrigir e incluir nos backups. Planeje a memória adequadamente: a orientação do próprio Outline é de aproximadamente 512 MB por processo web, definido por WEB_CONCURRENCY, além do banco de dados e do Redis.

Como cada um determina quem pode ler o quê

O BookStack oferece contas locais com email e senha por padrão e aceita LDAP, SAML2 e OIDC como alternativas. As permissões são definidas por função e podem ser substituídas em uma única estante, livro, capítulo ou página. Como a hierarquia é fixa, as permissões são herdadas de forma previsível.

O Wiki.js também oferece contas locais e adiciona uma longa lista de estratégias que você habilita na área de administração. As regras de página concedem ou negam acesso com base em padrões de caminho. Isso é poderoso e fácil de configurar incorretamente, porque uma regra escrita para ops/* cobre silenciosamente todas as páginas que você arquivar nesse caminho posteriormente.

O Outline delega toda essa questão ao provedor de identidade. A associação segue o provedor de identidade e, dentro do Outline, você controla o acesso por coleção e por grupo. Nenhuma conta local permanece quando alguém deixa a empresa. Isso é uma vantagem real quando o provedor de identidade já é o sistema usado para desprovisionar contas.

Como a pesquisa funciona em cada plataforma

A pesquisa define se um wiki justifica seu uso ou se vira uma pasta de arquivos esquecidos.

O BookStack pesquisa o banco de dados e oferece aos leitores uma linguagem de consulta que pode ser aprendida em um minuto. Colocar uma frase entre aspas, como em "london meeting", exige essa sequência exata de caracteres. Colchetes pesquisam tags: [location=london] encontra correspondências pelo nome da tag, pelo valor ou por ambos, com comparações que incluem !=, >= e like. Chaves filtram metadados, como em {created_after:2016-12-30}. Qualquer termo exato, de tag ou de filtro pode ser negado com o prefixo -. O BookStack limita quantos termos de cada tipo uma consulta pode conter. Por isso, uma consulta muito longa é truncada em vez de ser executada.

O Wiki.js trata a pesquisa como um módulo conectável. Os mecanismos documentados são um mecanismo básico de banco de dados, um mecanismo PostgreSQL, Elasticsearch, Algolia, AWS CloudSearch e Azure Search. O mecanismo básico é suficiente para algumas centenas de páginas. Se você usa PostgreSQL, altere para o mecanismo PostgreSQL na área administrativa, porque ele usa o próprio índice de texto completo do banco de dados em vez de uma correspondência simples. Use Elasticsearch somente quando o wiki for grande o bastante para justificar a execução e a aplicação de patches em um segundo serviço de pesquisa.

O Outline pesquisa índices de texto completo do PostgreSQL. Não há mecanismo para escolher nem parâmetros para ajustar. Ele também pesquisa o texto dentro dos documentos enviados. Para um wiki de equipe com poucos milhares de documentos, essa é a opção que exige menos trabalho entre as três. Também não há um recurso de ajuste disponível caso a pesquisa deixe de ser rápida o suficiente.

Qual opção é adequada para você

Escolha o BookStack se quiser colocar a wiki em funcionamento ainda hoje e preferir discutir o conteúdo em vez da estrutura. Ele tem o menor número de componentes: uma aplicação PHP e um banco de dados MySQL. É adequado para runbooks internos e documentação de clientes, além de atender bem a equipes nas quais a maioria dos redatores não é formada por engenheiros. Também é o mais fácil dos três para fazer backup, porque todo o estado está em um dump do banco de dados e no diretório de uploads.

Escolha o Wiki.js se precisar de um editor específico ou de uma estratégia de autenticação específica que os outros não oferecem, ou se estiver importando uma grande quantidade de Markdown ou AsciiDoc existente e quiser preservar a estrutura de caminhos. Aceite que você estará executando uma stack mais pesada e fixe a tag da versão principal.

Escolha o Outline se a qualidade da escrita for o aspecto mais importante, se a wiki for destinada a uma equipe e não ao público, e se você já tiver um provedor de identidade. Essa configuração oferece como benefício um editor que as pessoas realmente gostam de usar. Não o escolha como sua primeira aplicação self-hosted.

Se nenhuma das três opções for adequada, o problema geralmente está no tipo de conteúdo. Faturas e contratos digitalizados pertencem a um sistema de gerenciamento de documentos, como o Paperless-ngx, e não a uma wiki. Forçar esse tipo de conteúdo em uma wiki é o motivo pelo qual tantas wikis acabam abandonadas. Para ter uma visão mais ampla do que também merece um lugar no seu próprio servidor, consulte a lista curta de opções de self-hosting para 2026.

Dimensionamento e backups

Os três cabem em um VPS pequeno, mas o mínimo realista varia conforme o que existe por trás de cada um. BookStack usa um processo da aplicação e MySQL. Wiki.js usa um processo Node e PostgreSQL. Outline usa um processo Node, PostgreSQL e Redis, normalmente com um provedor de identidade junto. Por isso, é o que precisa de mais memória.

Faça backup do banco de dados e dos uploads em conjunto. Restaure os dois em uma instância descartável pelo menos uma vez antes de confiar nesse backup. Um backup de wiki que nunca foi restaurado é apenas uma suposição. Para BookStack, isso significa mysqldump e o volume /config. Para Wiki.js e Outline, significa pg_dump e o volume de dados. Para Outline, também inclui tudo o que estiver em FILE_STORAGE_LOCAL_ROOT_DIR.

FAQ

Qual wiki auto-hospedado é mais fácil de instalar?

BookStack. É uma aplicação PHP única com um banco de dados MySQL, e o projeto fornece um script de instalação para Ubuntu 24.04 que configura Apache, MySQL 8.0 e PHP 8.3 em uma única execução. A imagem de contêiner precisa apenas de um APP_KEY e das credenciais do banco de dados. Wiki.js adiciona um runtime Node e um servidor PostgreSQL, enquanto Outline adiciona Redis e um provedor de identidade externo.

Posso usar o Outline sem o Google ou outro provedor de SSO?

Não. O Outline não tem login local com nome de usuário e senha. A configuração de exemplo informa que pelo menos um provedor de autenticação de terceiros é obrigatório; caso contrário, você não terá nenhuma opção de login. Você pode usar Google, Slack, Microsoft Entra, Discord ou qualquer servidor OpenID Connect genérico, como um Keycloak ou Authentik auto-hospedado. Executar esse provedor faz parte do custo de executar o Outline.

Devo instalar o Wiki.js 3 ou o Wiki.js 2?

A versão 2. Em julho de 2026, a versão 2 mais recente é a 2.5.314, de maio de 2026, e a documentação da versão 3 informa claramente que ela é uma versão beta instável que não deve ser instalada em produção. Fixe sua imagem em ghcr.io/requarks/wiki:2 em vez de latest, porque uma mudança de versão principal altera o esquema do banco de dados em uma instância em execução.

Qual deles tem a melhor pesquisa?

Eles são fortes em aspectos diferentes. O BookStack oferece aos leitores uma linguagem de consulta com frases exatas, filtros de tags como [location=london] e filtros de metadados como {created_after:2016-12-30}. Qualquer um desses termos pode ser negado com um - no início. O Outline não exige configuração e pesquisa o texto dentro dos arquivos enviados. O Wiki.js é o mais configurável, pois você escolhe o mecanismo, e vale a pena mudar para o mecanismo PostgreSQL assim que seu wiki ultrapassar algumas centenas de páginas.

Posso mover meu conteúdo de um para outro mais tarde?

Parcialmente, e você deve esperar algum trabalho manual. Os três exportam e importam Markdown, portanto o texto das páginas geralmente é preservado. A estrutura não é preservada corretamente: os livros e capítulos do BookStack não têm equivalente nos documentos aninhados do Outline, e os caminhos do Wiki.js não correspondem à hierarquia fixa do BookStack. Anexos, permissões e histórico das páginas são os itens com maior probabilidade de serem perdidos. Por isso, exporte uma amostra e verifique esses itens antes de iniciar uma migração.

#bookstack#wikijs#outline#wiki#self-hosting#knowledge-base