Instalação · 10 min read · Dec 19, 2025

Como Instalar Wiki.js no Ubuntu 22.04 LTS

Wiki.js é um software wiki leve e de código aberto. Ele é construído sobre o framework JavaScript Node.js. Pode ser usado para escrever documentação, wikis e conteúdo da web usando um editor Markdown para desenvolvedores e um editor WYSIWYG para pessoas não técnicas. Suporta múltiplos tipos de conteúdo, incluindo diagramas UML, expressões matemáticas usando a sintaxe Tex ou MathML, e código. Inclui múltiplos módulos para várias funções, incluindo análises, autenticação, registro, mecanismos de busca de terceiros e múltiplos serviços de armazenamento para sincronizar seu conteúdo.

Neste tutorial, você aprenderá a instalar o Wiki.js em um servidor Ubuntu 22.04 usando o banco de dados PostgreSQL e o servidor Nginx para proxy.

Pré-requisitos

  • Um servidor rodando Ubuntu 22.04.
  • Um usuário não-root com privilégios sudo.
  • Um nome de domínio totalmente qualificado (FQDN) apontando para seu servidor. Para nossos propósitos, usaremos wiki.example.com como o nome de domínio.
  • Certifique-se de que tudo está atualizado. $ sudo apt update && sudo apt upgrade
  • Instale pacotes utilitários básicos. Alguns deles podem já estar instalados. $ sudo apt install wget curl ca-certificates gnupg gnupg2 nano unzip lsb-release ubuntu-keyring -y

Passo 1 - Configurar o Firewall

Antes de instalar qualquer pacote, o primeiro passo é configurar o firewall para permitir conexões HTTP e HTTPS.

Verifique o status do firewall.

$ sudo ufw status

Você deve ver algo como o seguinte.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

Permita as portas HTTP e HTTPS.

$ sudo ufw allow http
$ sudo ufw allow https

Verifique o status novamente para confirmar.

$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443                        ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)

Passo 2 - Instalar PostgreSQL e Utilitários

O Ubuntu 22.04 vem com uma versão mais antiga do PostgreSQL. Vamos instalar o Postgres 14 para nosso tutorial.

Instale o repositório para o PostgreSQL.

$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

Importe a chave GPG do PostgreSQL.

$ curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/apt.postgresql.org.gpg >/dev/null

Atualize a lista de repositórios do sistema.

$ sudo apt update

Instale o servidor PostgreSQL 14.

$ sudo apt install -y postgresql-14

Verifique o status do serviço.

$ sudo systemctl status postgresql
? postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
     Active: active (exited) since Tue 2022-10-25 06:24:24 UTC; 10min ago
   Main PID: 4032 (code=exited, status=0/SUCCESS)
        CPU: 1ms

Oct 25 06:24:24 wiki systemd[1]: Starting PostgreSQL RDBMS...
Oct 25 06:24:24 wiki systemd[1]: Finished PostgreSQL RDBMS.

Passo 3 - Configurar PostgreSQL

Faça login no shell do PostgreSQL.

$ sudo -i -u postgres psql

Crie um novo banco de dados para o Wiki.js.

postgres=# CREATE DATABASE wikidb;

Crie um novo usuário de banco de dados com uma senha forte.

postgres=# CREATE USER wikiuser WITH ENCRYPTED PASSWORD 'wikipassword';

Conceda os direitos ao usuário para usar o banco de dados.

postgres=# GRANT ALL PRIVILEGES ON DATABASE wikidb TO wikiuser;

Saia do Shell do Postgres.

postgres=# \q

Passo 4 - Instalar Node.js

O Wiki.js suporta Node v16 no momento da redação deste tutorial.

Instale o repositório Node usando o seguinte comando.

$ curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -

Instale o Node.

$ sudo apt install nodejs -y

Verifique a instalação do Node.

$ node --version
v16.18.0

Passo 5 - Baixar Wiki.js

Crie uma pasta para instalar o Wiki.js.

$ sudo mkdir -p /var/www/wikijs

Defina o usuário atualmente logado como o proprietário da pasta.

$ sudo chown $USER:$USER /var/www/wikijs

Mude para o diretório e baixe o arquivo de código do Wiki.js.

$ cd /var/www/wikijs && wget https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz

Extraia o arquivo baixado.

$ tar xzf wiki-js.tar.gz

Delete o arquivo.

$ rm wiki-js.tar.gz

Passo 6 - Configurar e Executar Wiki.js

Crie o arquivo de configuração a partir do exemplo.

$ cp config.sample.yml config.yml

Abra o arquivo de configuração para edição.

$ nano config.yml

Encontre as seguintes configurações do banco de dados e atualize seus valores com os configurados no passo 3.

# PostgreSQL / MySQL / MariaDB / MS SQL Server only:
host: localhost
port: 5432
user: wikiuser
pass: wikipassword
db: wikidb
ssl: false

Encontre a linha bindIP: 0.0.0.0 e atualize-a da seguinte forma.

bindIP: 127.0.0.1

Isso fará com que o Wiki.js escute no endereço de loopback porque usaremos o proxy Nginx para acessá-lo de fora.

Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.

Execute o Wiki.js usando o seguinte comando.

$ node server

Você receberá uma saída semelhante confirmando uma instalação bem-sucedida.

Loading configuration from /var/www/wikijs/config.yml... OK
2022-10-25T06:40:46.294Z [MASTER] info: =======================================
2022-10-25T06:40:46.296Z [MASTER] info: = Wiki.js 2.5.289 =====================
2022-10-25T06:40:46.296Z [MASTER] info: =======================================
2022-10-25T06:40:46.296Z [MASTER] info: Initializing...
2022-10-25T06:40:46.962Z [MASTER] info: Using database driver pg for postgres [ OK ]
2022-10-25T06:40:46.974Z [MASTER] info: Connecting to database...
2022-10-25T06:40:47.067Z [MASTER] info: Database Connection Successful [ OK ]
2022-10-25T06:40:47.345Z [MASTER] warn: DB Configuration is empty or incomplete. Switching to Setup mode...
2022-10-25T06:40:47.345Z [MASTER] info: Starting setup wizard...
2022-10-25T06:40:47.510Z [MASTER] info: Starting HTTP server on port 3000...
2022-10-25T06:40:47.511Z [MASTER] info: HTTP Server on port: [ 3000 ]
2022-10-25T06:40:47.515Z [MASTER] info: HTTP Server: [ RUNNING ]
2022-10-25T06:40:47.515Z [MASTER] info: .......................................................................
2022-10-25T06:40:47.515Z [MASTER] info: 
2022-10-25T06:40:47.516Z [MASTER] info: Browse to http://YOUR-SERVER-IP:3000/ to complete setup!
2022-10-25T06:40:47.516Z [MASTER] info: 
2022-10-25T06:40:47.516Z [MASTER] info: ............................................................................

Pressione Ctrl + C para parar o processo.

Passo 7 - Configurar um Serviço Systemd

O processo acima para manter o Wiki.js em execução é temporário. Para tornar o processo permanente, precisaremos criar um serviço systemd para o Wiki.js para executá-lo como um serviço em segundo plano. Isso permitirá que o Wiki.js seja executado após reinicializações do sistema.

Crie um arquivo de serviço systemd para o Wiki.js e abra-o para edição.

$ sudo nano /etc/systemd/system/wikijs.service

Cole o seguinte código nele. Substitua o valor da variável User pelo nome do seu usuário do sistema.

[Unit]
Description=Wiki.js
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/node server
Restart=always

User=navjot
Environment=NODE_ENV=production
WorkingDirectory=/var/www/wikijs

[Install]
WantedBy=multi-user.target

Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.

Recarregue o daemon do sistema.

$ sudo systemctl daemon-reload

Habilite o serviço Wiki.js.

$ sudo systemctl enable wikijs

Passo 8 - Instalar Nginx

O Ubuntu 22.04 vem com uma versão mais antiga do Nginx. Você precisa baixar o repositório oficial do Nginx para instalar a versão mais recente.

Importe a chave oficial do Nginx.

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
    | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Configure o repositório oficial para o Nginx.

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
  http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

Fixe o repositório para dar preferência ao repositório oficial sobre o do Ubuntu.

$ echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \
     | sudo tee /etc/apt/preferences.d/99nginx

Atualize a lista de repositórios do sistema.

$ sudo apt update

Instale o servidor Nginx.

$ sudo apt install nginx -y

Verifique a instalação.

$ nginx -v
nginx version: nginx/1.22.1

Inicie o servidor Nginx.

$ sudo systemctl start nginx

Verifique o status do serviço.

$ sudo systemctl status nginx
? nginx.service - nginx - high performance web server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2022-10-25 06:50:05 UTC; 2s ago
       Docs: https://nginx.org/en/docs/
    Process: 5522 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
   Main PID: 5523 (nginx)
      Tasks: 2 (limit: 1030)
     Memory: 1.8M
        CPU: 4ms
     CGroup: /system.slice/nginx.service
             ??5523 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
             ??5524 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""

Oct 25 06:50:05 wiki systemd[1]: Starting nginx - high performance web server...

Passo 9 - Instalar SSL

Precisamos instalar o Certbot para gerar o certificado SSL. Você pode instalar o Certbot usando o repositório do Ubuntu ou pegar a versão mais recente usando a ferramenta Snapd. Usaremos a versão Snapd.

O Ubuntu 22.04 vem com o Snapd instalado por padrão. Execute os seguintes comandos para garantir que sua versão do Snapd esteja atualizada.

$ sudo snap install core
$ sudo snap refresh core

Instale o Certbot.

$ sudo snap install --classic certbot

Use o seguinte comando para garantir que o comando Certbot possa ser executado criando um link simbólico para o diretório /usr/bin.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Execute o seguinte comando para emitir o certificado.

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d wiki.example.com

O comando acima fará o download de um certificado para o diretório /etc/letsencrypt/live/wiki.example.com em seu servidor.

Gere um certificado de grupo Diffie-Hellman.

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Verifique o serviço agendador de renovação do Certbot.

$ sudo systemctl list-timers

Você encontrará snap.certbot.renew.service como um dos serviços agendados para execução.

NEXT                        LEFT          LAST                        PASSED    UNIT                           ACTIVATES              

.................................................................................................................................
Tue 2022-10-25 00:00:00 UTC 17h left      Tue 2022-10-25 04:49:20 UTC 2h ago    logrotate.timer                logrotate.service
Tue 2022-10-25 02:39:09 UTC 20h left      Tue 2022-10-25 06:47:33 UTC 12min ago apt-daily.timer                apt-daily.service
Tue 2022-10-25 06:02:00 UTC 8h left       n/a                         n/a       snap.certbot.renew.timer       snap.certbot.renew.service

Faça um teste do processo para verificar se a renovação do SSL está funcionando bem.

$ sudo certbot renew --dry-run

Se você não ver erros, está tudo pronto. Seu certificado será renovado automaticamente.

Passo 10 - Configurar Nginx

Crie e abra o arquivo /etc/nginx/conf.d/wikijs.conf para edição.

$ sudo nano /etc/nginx/conf.d/wikijs.conf

Cole o seguinte código nele.

# enforce HTTPS
server {
  listen 80;
  listen [::]:80;
  server_name wiki.example.com;
  return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name wiki.example.com;

    root /var/www/wikijs;

    access_log  /var/log/nginx/wiki.access.log;
    error_log   /var/log/nginx/wiki.error.log;

    http2_push_preload on; # Enable HTTP/2 Server Push

    ssl_certificate /etc/letsencrypt/live/wiki.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/wiki.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/wiki.example.com/chain.pem;
    ssl_session_timeout 1d;

    # Enable TLS versions (TLSv1.3 is required upcoming HTTP/3 QUIC).
    ssl_protocols TLSv1.2 TLSv1.3;

    # Enable TLSv1.3's 0-RTT. Use $ssl_early_data when reverse proxying to
    # prevent replay attacks.
    #
    # @see: https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_early_data
    ssl_early_data on;

    ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384';
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:50m;

    # OCSP Stapling ---
    # fetch OCSP records from URL in ssl_certificate and cache them
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;

    add_header X-Early-Data $tls1_3_early_data;

    location / {
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://127.0.0.1:3000;
    }
}

# This block is useful for debugging TLS v1.3. Please feel free to remove this
# and use the `$ssl_early_data` variable exposed by NGINX directly should you
# wish to do so.
map $ssl_early_data $tls1_3_early_data {
  "~." $ssl_early_data;
  default "";
}

Substitua a localização raiz no arquivo acima pelo diretório em seu servidor.

Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.

Abra o arquivo /etc/nginx/nginx.conf para edição.

$ sudo nano /etc/nginx/nginx.conf

Adicione a seguinte linha antes da linha include /etc/nginx/conf.d/*.conf;.

server_names_hash_bucket_size  64;

Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.

Verifique sua configuração do Nginx.

$ sudo nginx -t

Se você não ver erros, significa que está tudo pronto.

Inicie o serviço Wiki.js.

$ sudo systemctl start wikijs

Recarregue o servidor Nginx.

$ sudo systemctl reload nginx

Passo 11 - Finalizar a Instalação

Visite a URL https://wiki.example.com para finalizar a instalação.

Página de Configuração do Wiki.js

Preencha os detalhes da sua conta de administrador e a URL. Desative a Telemetria desmarcando a opção Permitir Telemetria. Você também pode desativá-la a partir do painel de Administração. Clique no botão Instalar para prosseguir.

Você será levado à página de login.

Página de Login do Wiki.js

Insira os detalhes da sua conta e clique no botão Entrar para prosseguir para a página de administração.

Página de Administração do Wiki.js

Agora você pode começar a usar o Wiki.js.

Conclusão

Isso conclui nosso tutorial, onde você aprendeu como instalar o Wiki.js em um servidor Ubuntu 22.04. Se você tiver alguma dúvida, poste nos comentários abaixo.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.