Pesquisa de site

Como instalar Wiki.js com proxy reverso Apache2 no Ubuntu 22.04


Nesta página

  1. Pré-requisitos
  2. Instalando Node.js
  3. Instalando o banco de dados PostgreSQL
  4. Instalando Wiki.js
  5. Configurando o Apache2 como proxy reverso
  6. Configurando a instalação do Wiki.js
  7. Conclusão

Wiki.js é um software wiki gratuito e de código aberto baseado em Node.js, Git e Markdown. É lançado sob a licença AGPL-v3 e projetado para desempenho e conservação de recursos do sistema. Wiki.js é um software Wiki poderoso que pode ser instalado em qualquer lugar do seu sistema; você pode instalá-lo em seu sistema operacional ou usando serviços de nuvem como Heroku e também implantar Wiki.js em seus ambientes de contêiner como Docker e Kubernetes.

Wiki.js é compatível com o banco de dados PostgreSQL e fornece mais de 50 integrações para autenticação adicional, sistemas de registro, mecanismos de pesquisa, renderização e armazenamento. É um poderoso software Wiki construído em interfaces bonitas e intuitivas para o painel e páginas de administração. é um software wiki totalmente personalizável para documentar sua pilha de tecnologia.

Neste guia, você instalará e configurará o Wiki.js em um servidor Ubuntu 22.04, usando PostgreSQL como banco de dados padrão e Apache2 como proxy reverso. Além disso, você terá uma conexão HTTPS/SSL segura na instalação do Wiki.js. Quando terminar, você terá um Wiki.js totalmente funcional e seguro em seu sistema Ubuntu.

Pré-requisitos

Para concluir este guia, primeiro você precisará dos seguintes requisitos:

  • Um servidor Ubuntu 22.04.
  • Um usuário não root com privilégios root/administrador.
  • Um nome de domínio apontado para o endereço IP do seu servidor Ubuntu.

Instalando Node.js

Antes de instalar o Wiki.js, você deve instalar as dependências exigidas pelo Wiki.js.

Wiki.js é um software wiki escrito principalmente em JavaScript para que você instale o tempo de execução JavaScript Node.js nesta primeira etapa. O repositório Ubuntu padrão fornece o pacote Node.js, mas para este guia, você usará o repositório Nodesource para instalar o Node.js.

Execute o comando curl abaixo para adicionar o repositório Nodesource ao seu sistema Ubuntu. No momento da redação deste artigo, o Wiki.js exigia pelo menos Node.js v8 e superior. E para este guia, você instalará a versão LTS do Node.js v16.

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

Agora você pode instalar o pacote Node.js usando o comando apt abaixo.

sudo apt install nodejs

Após a conclusão da instalação, verifique e verifique a versão do Node.js usando o seguinte comando. Você deverá ver a versão Node.js v16 LTS na tela do seu terminal.

node --version
npm --version

Instalando o banco de dados PostgreSQL

O WIki.js padrão suporta vários RDBMS, como PostgreSQL, MySQL/MariaDB e SQLite (padrão), mas o banco de dados recomendado para produção é PostgreSQL. Você instalará o pacote PostgreSQL no sistema Ubuntu e, em seguida, criará o banco de dados e o usuário para o Wiki.js.

Para começar, execute o seguinte comando apt para instalar o banco de dados PostgreSQL em seu servidor. Insira Y para confirmar a instalação e pressione ENTER para continuar e a instalação começará.

sudo apt install postgresql postgresql-common

Quando a instalação for concluída, execute o seguinte comando systemctl para verificar e verificar o serviço PostgreSQL. E você deverá ver que o serviço PostgreSQL está habilitado, o que significa que ele será iniciado automaticamente na inicialização do sistema. E o status atual do serviço PostgreSQL é "Ativo".

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

Faça login no console PostgreSQL usando o comando abaixo para criar o banco de dados e o usuário PostgreSQL.

sudo -u postgres psql

Execute o seguinte comando em seu console PostgreSQL para criar um novo banco de dados e usuário para Wiki.js. Neste exemplo, estamos criando um banco de dados "wikijs" e o usuário "wiki" com a senha "wikijspassword".

CREATE DATABASE wikijs;
CREATE USER wiki WITH ENCRYPTED PASSWORD 'wikijspassword';
GRANT ALL PRIVILEGES ON DATABASE wikijs TO wiki;

Agora você pode usar "Ctrl+d" para sair do console do PostgreSQL ou simplesmente usar o comando "\q" para sair.

Instalando Wiki.js

Agora você instalará o Wiki.js manualmente em seu sistema Ubuntu. Através deste guia, você criará um usuário de sistema para Wiki.js, baixará o código-fonte do Wiki.js, configurará o Wiki.js com o banco de dados PostgreSQL e, por último, executará o Wiki.js como um serviço systemd.

Primeiro, execute o seguinte comando para criar um novo usuário para Wiki.js. Neste exemplo, estamos criando um novo usuário do sistema chamado "wiki" com o diretório inicial padrão "/opt/wikijs" e como este é um usuário do sistema, nós estão desabilitando o acesso ao shell.

sudo useradd -r -d /opt/wikijs -s /usr/sbin/nologin wiki

Agora baixe o código-fonte do Wiki.js usando o comando wget abaixo.

wget https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz

Quando o download terminar, crie um novo diretório "/opt/wikijs" e extraia o código-fonte do Wiki.js nele. Você deverá ver que o código-fonte do Wiki.js está disponível no diretório de instalação "/opt/wikijs".

mkdir -p /opt/wikijs
tar xzf wiki-js.tar.gz -C /opt/wikijs

Para configurar o Wiki.js com o banco de dados PostgreSQL, você copiará a configuração de amostra padrão "config.sample.yml" e a modificará/editará usando seu editor de texto.

Execute o comando a seguir para copiar o arquivo de configuração Wiki.js de exemplo para "/opt/wikijs/config.yml". Em seguida, edite o novo arquivo "/opt/wikijs/config.yml" usando o editor nano.

cp /opt/wikijs/config.sample.yml /opt/wikijs/config.yml
nano /opt/wikijs/config.yml

Altere a configuração padrão conforme abaixo.

Neste exemplo, executaremos o Wiki.js na porta TCP padrão "3000". Certifique-se de alterar o nome, usuário e senha do banco de dados PostgreSQL. Na opção "bindIP", mude para localhost ou "127.0.0.1". Para a configuração do log do Wiki.js, usaremos o nível padrão "info" com o formato "json".

# default port wikijs will run
port: 3000
# PostgreSQL database details
db:
  type: postgres
  host: localhost
  port: 5432
  user: wiki
  pass: wikijspassword
  db: wikijs
  ssl: false
# bind wikijs to localhost only
bindIP: 127.0.0.1
# setup log and the format
loglevel: info
logFormat: json

Salve e feche o arquivo quando terminar.

Agora execute o comando chown abaixo para alterar a propriedade do diretório de instalação do Wiki.js "/opt/wikijs" para o usuário "wiki".

sudo chown -R wiki:wiki /opt/wikijs

Neste exemplo, executaremos Wiki.js como um serviço systemd. Portanto, você precisa criar um novo arquivo de serviço systemd para Wiki.js.

Execute o seguinte comando para criar um novo arquivo de serviço systemd "/etc/systemd/system/wikijs.service".

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

Adicione a seguinte configuração ao arquivo.

[Unit]
Description=Wiki.js
After=network.target postgresql.service
[Service]
Type=simple
ExecStart=/usr/bin/node server
Restart=always
User=wiki
Environment=NODE_ENV=production
WorkingDirectory=/opt/wikijs
[Install]
WantedBy=multi-user.target

Salve e feche o arquivo quando terminar.

Em seguida, execute o seguinte comando para recarregar o gerenciador do sistema e aplicar o novo arquivo de serviço "wikijs.service"

sudo systemctl daemon-reload

Agora você pode iniciar e ativar o serviço "wikijs" usando o seguinte comando.

sudo systemctl start wikijs
sudo systemctl enable wikijs

Por último, verifique e verifique o serviço "wikijs" usando o seguinte comando. Agora você deve ver que o serviço "wikijs" está sendo executado na porta TCP padrão "3000" com PostgreSQL como banco de dados padrão.

sudo systemctl status wikijs

Configurando o Apache2 como proxy reverso

Neste exemplo, o Wiki.js agora está sendo executado na porta TCP “3000”. Para expor a redes externas ou à Internet, é melhor configurar o proxy reverso na frente do Wiki.js e aplicar HTTPS/SSL sobre ele para proteger quaisquer credenciais e login. Você também usará o Apache2 como proxy reverso para Wiki.js.

Execute o comando apt abaixo para instalar o pacote Apache2. Insira Y para confirmar a instalação e pressione ENTER para continuar e a instalação começará.

sudo apt install apache2

Após a conclusão da instalação, execute o comando “ufw” abaixo para abrir as portas HTTP e HTTPS em seu sistema Ubuntu. Em seguida, verifique a lista de regras do UFW.

sudo ufw allow "Apache Full"
sudo ufw status

A seguir, habilite alguns módulos do Apache2 usando o seguinte comando. Você usará esses módulos para configurar o proxy reverso Apache2.

sudo a2enmod proxy proxy_http ssl remoteip http2

Agora crie uma nova configuração de host virtual Apache2 "/etc/apache2/sites-available/wikijs.conf" usando o seguinte comando.

sudo nano /etc/apache2/sites-available/wikijs.conf

Adicione a seguinte configuração ao arquivo. Neste exemplo, usaremos o domínio "wiki.howtoforge.local" para a instalação do Wiki.js e os certificados SSL do letsencrypt. Certifique-se de alterar o nome de domínio e o caminho dos certificados SSL.

<VirtualHost *:80>
    ServerName wiki.howtoforge.local
    # Comment to prevent HTTP to HTTPS redirect
    Redirect permanent / https://wiki.howtoforge.local
    ErrorLog /var/log/apache2/wiki.howtoforge.local-error.log
    CustomLog /var/log/apache2/wiki.howtoforge.local-access.log combined
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName wiki.howtoforge.local
    ProxyPreserveHost On
    ProxyPass "/" "http://127.0.0.1:3000/"
    ProxyPassReverse "/" "http://127.0.0.1:3000/"
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/wiki.howtoforge.local/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/wiki.howtoforge.local/privkey.pem
    Protocols h2 http/1.1
    # Enable only strong encryption ciphers and prefer versions with forwarding Secrecy
    SSLCipherSuite HIGH:RC4-SHA:AES128-SHA:!aNULL:!MD5
    SSLHonorCipherOrder on
    # Disable insecure SSL and TLS versions
    SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
    ErrorLog /var/log/apache2/wiki.howtoforge.local-error.log
    CustomLog /var/log/apache2/wiki.howtoforge.local-access.log combined
</VirtualHost>
</IfModule>

Salve e feche o arquivo quando terminar.

Em seguida, ative o arquivo host virtual 'wikijs.conf" usando o seguinte comando.

sudo a2ensite wikijs.conf

Verifique e verifique a configuração do Aache2 usando o seguinte comando. se você receber uma mensagem de saída como "Sintaxe OK", significa que a configuração do Apache2 está pronta. Em seguida, reinicie o serviço Apache2 para aplicar as novas alterações.

sudo apachectl configtest
sudo systemctl restart apache2

Configurando a instalação do Wiki.js

Abra seu navegador e visite o nome de domínio da instalação do Wiki.js (ou seja: https://wiki.howtoforge.local/).

Insira o novo e-mail do administrador, senha e URL do site para a instalação do Wiki.js. Em seguida, clique no botão "INSTALAR" para iniciar a instalação.

Após a conclusão da instalação, você verá a página de login do Wiki.js. insira o e-mail e a senha do administrador e clique em "Fazer login".

Agora você verá a mensagem de boas-vindas do Wiki.js. Clique no botão "CRIAR PÁGINA INICIAL" para configurar a página de índice padrão para seu Wiki.js.

Escolha o editor que deseja usar. Neste exemplo, usaremos o editor Markdown.

Insira o título, a descrição e outros. Em seguida, clique em "OK".

Digite a página de índice de detalhes do seu Wiki.js e clique em "CRIAR" para confirmar.

E você deverá ver a página inicial padrão do Wiki.js que acabou de criar.

Para acessar o painel de administração do Wiki.js, clique no ícone de configurações de engrenagem no canto superior esquerdo. Você deverá ver o painel de administração do Wiki.js abaixo.

Conclusão

Neste tutorial, você configurou o Wiki.js no banco de dados PostgreSQL e no proxy reverso Apache2, rodando no servidor Ubuntu 22.04 mais recente. Você também protegeu seu Wiki.js com um firewall UFW e SSL/HTTPS habilitado no proxy reverso Apache. No final, você também configurou a página inicial ou índice padrão para a instalação do Wiki.js.

Você pode criar conteúdo adicional e configurar categorias para o seu projeto Wiki. Você também pode adicionar alguns módulos ao seu Wiki.js para estender sua funcionalidade ou configurar novos temas para o Wiki.js.