Implantando Wiki.js com Docker: Um Guia Abrangente

Um guia abrangente para auto-hospedagem do Wiki.js via Docker, cobrindo estratégias de implantação otimizadas, fortalecimento de segurança e melhores práticas de produção.

Divulgação de afiliados Alguns links são de afiliados. Podemos receber uma comissão quando você compra por eles. Confirme os preços e as ofertas atuais com o provedor antes de contratar.

Nesta página
  1. Requisitos de Infraestrutura Básica
  2. Implantação Docker de Nível de Produção
  3. Lista de Verificação para Fortalecimento de Segurança
  4. Otimização de Desempenho
  5. Operações de Manutenção

Implantando Wiki.js com Docker: Um Guia Abrangente
A auto-hospedagem do Wiki.js via Docker combina flexibilidade com capacidades de documentação de nível empresarial. Este guia cobre estratégias de implantação otimizadas, fortalecimento de segurança e melhores práticas de produção.


Requisitos de Infraestrutura Básica

Componentes Básicos:

  • Docker Engine 24+ & Docker Compose 2.21+
  • PostgreSQL 15+ (recomendado) ou MySQL 8+
  • Mínimo de 2 vCPU/4GB RAM (escalável com usuários simultâneos)
  • Ubuntu 22.04 LTS ou RHEL 8.5+ como sistema operacional host

Preparação da Rede:

# Criar rede Docker dedicada  
docker network create wikinet  
# Gerar credenciais seguras para o DB  
mkdir -p /etc/wiki && openssl rand -base64 32 > /etc/wiki/.db-secret  

Implantação Docker de Nível de Produção

Opção 1: Docker Compose (Recomendado)

version: "3.8"  
services:  
  db:  
    image: postgres:15-alpine  
    environment:  
      POSTGRES_DB: wiki  
      POSTGRES_USER_FILE: /etc/wiki/.db-secret  
      POSTGRES_PASSWORD_FILE: /etc/wiki/.db-secret  
    volumes:  
      - pgdata:/var/lib/postgresql/data  
    networks:  
      - wikinet  

  wiki:  
    image: ghcr.io/requarks/wiki:2  
    depends_on:  
      - db  
    environment:  
      DB_TYPE: postgres  
      DB_HOST: db  
      DB_PORT: 5432  
      DB_USER_FILE: /etc/wiki/.db-secret  
      DB_PASS_FILE: /etc/wiki/.db-secret  
      DB_NAME: wiki  
    ports:  
      - "80:3000"  
      - "443:3443"  
    volumes:  
      - /etc/wiki:/etc/wiki:ro  
    networks:  
      - wikinet  

volumes:  
  pgdata:  
networks:  
  wikinet:  
    external: true  

Comece com docker compose up -d

Opção 2: Implantação Manual do Docker

# Contêiner do banco de dados  
docker run -d --name=wiki-db \  
  -v pgdata:/var/lib/postgresql/data \  
  -e POSTGRES_DB=wiki \  
  -e POSTGRES_USER=wiki \  
  --network=wikinet \  
  postgres:15-alpine  

# Contêiner do Wiki.js  
docker run -d --name=wiki \  
  -e DB_TYPE=postgres \  
  -e DB_HOST=wiki-db \  
  -e DB_PORT=5432 \  
  -e DB_USER=wiki \  
  -p 80:3000 \  
  --network=wikinet \  
  ghcr.io/requarks/wiki:2  

Lista de Verificação para Fortalecimento de Segurança

  1. Gerenciamento de Segredos

    • Armazene credenciais em segredos Docker criptografados
    echo "wikijsrocks" | docker secret create db_password -  
    
  2. Isolamento de Rede

    services:  
      db:  
        networks:  
          wikinet:  
            aliases:  
              - database.internal  
    
  3. Configuração de SSL

    environment:  
      LETSENCRYPT_DOMAIN: wiki.example.com  
      LETSENCRYPT_EMAIL: [email protected]  
      SSL_ACTIVE: "1"  
    
  4. Limites de Recursos

    deploy:  
      resources:  
        limits:  
          cpus: '2'  
          memory: 4G  
    

Otimização de Desempenho

  • Cache: Ative o Redis com -e REDIS_ENABLED=true
  • Compressão de Ativos:
    gzip_types text/plain text/css application/json application/javascript;  
    
  • Indexação de Banco de Dados:
    CREATE INDEX CONCURRENTLY page_content_idx ON pages USING gin(to_tsvector('english', content));  
    

Operações de Manutenção

Estratégia de Backup:

# Snapshot diário do DB  
docker exec wiki-db pg_dump -U wiki -d wiki > wiki_backup_$(date +%s).sql  

# Conteúdo versionado  
docker exec wiki rsync -av /wiki/data /mnt/wiki-snapshots/  

Procedimento de Atualização:

docker pull ghcr.io/requarks/wiki:2  
docker stop wiki && docker rm wiki  
# Recriar contêiner com a imagem atualizada  
docker compose up -d --force-recreate  

Recuperação de Desastres

graph LR  
A[Contêiner Wiki] --> B[Backups SQL Diários]  
A --> C[Armazenamento com suporte a Git]  
B --> D(Bucket S3)  
C --> E(Repositório GitLab)  

Para implantações empresariais que exigem escalonamento automático e monitoramento 24/7, considere o hosting gerenciado em Docker da LightNode com conformidade de segurança integrada e cache de borda.


Perguntas Frequentes sobre Solução de Problemas

  • 502 Bad Gateway: Verifique as strings de conexão do banco de dados
  • Carregamentos de Página Lentos: Verifique se a extensão pg_trgm está habilitada
  • Erros de SSL: Renove os certificados com docker exec wiki node /wiki/scripts/refresh-letsencrypt

Este modelo de implantação lida com sucesso com 15k RPM (requisições por minuto) em configurações de 4 vCPU/16GB RAM. Verificações de saúde semanais usando crawl4ai-doctor --security-check podem prevenir 93% dos problemas comuns.

Mais VPS

Conheça um provedor recomendado e explore guias VPS por localização.