Como instalar Wiki.js com proxy reverso Apache2 no Ubuntu 22.04
Nesta página
- Pré-requisitos
- Instalando Node.js
- Instalando o banco de dados PostgreSQL
- Instalando Wiki.js
- Configurando o Apache2 como proxy reverso
- Configurando a instalação do Wiki.js
- 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.