Uma das ferramentas essenciais para empresas que desejam organizar, compartilhar e preservar conhecimento é a Wiki. Ela funciona como um repositório centralizado de informações, permitindo a criação, edição e colaboração em documentos de maneira simples e acessível a todos os membros da equipe.
Neste tutorial, vamos abordar a instalação da Wiki Outline em um ambiente Docker, garantindo a facilidade na configuração. Além disso, vamos configurar a autenticação via GitLab, tornando o acesso à Wiki mais seguro e integrado aos sistemas existentes na empresa.
Ambiente
Para está implementação, estou utilizando um servidor Linux com a distribuição Ubuntu na versão 22.04.
O servidor que utilizei possui a seguinte configuração: 2 vCPUs, 4GB RAM e um disco SSD de 30GB.
Para que nosso servidor seja acessível pela internet, e para que o nosso Traefik gere o certificado via Let's Encrypt, precisamos possuir um endereço IP público e precisamos liberar as portas 80 e 443 para a internet.
Também é necessário possuirmos um registro DNS para criarmos as URLs para o Outline e para o MinIO.
Disponibilizei o Docker Compose no seguinte repositório do GitHub: https://github.com/alfredotavio/outline-authgitlab-docker
Imagens utilizadas:
- postgresql - Versão latest (16.1)
- redis - Versão latest (7.2.3)
- minio - Versão latest (RELEASE.2023-12-20T01-00-02Z)
- outline - Versão 0.74.0
- traefik - Versão latest (v2.10.7)
Estrutura:
.
├── .env
└── docker-compose.yml
Não irei abordar a instalação do Docker Engine, caso ainda não saiba realizar a instalação, consulte este outro post:
https://dev.to/alfredotavio/como-instalar-o-docker-engine-no-linux-5092
É necessário possuirmos um servidor GitLab instalado e configurado, no tutorial não irei entrar em detalhes de como realizar a instalação do GitLab, caso não possua uma servidor GitLab, consulte este outro post:
https://dev.to/alfredotavio/instalando-gitlab-usando-docker-4b57
Etapa 01 - Criando os registro DNS
Antes de tudo, vamos definir e criar as URLs que iremos utilizar para o Outline e para o nosso MinIO.
Irei utilizar o domínio alfredocastro.com.br, defini a URL wiki.alfredocastro.com.br para o Outline e as URLs storage.alfredocastro.com.br e storage-admin.alfredocastro.com.br para o MinIO.
Acesse o seu gerenciador de registros DNS do seu domínio e crie dois registro do tipo A colocando como valor o endereço IP público do seu servidor.
Para consultar a propagação do registro criado, consulte o site: WhatsMyDNS
Etapa 02 - Clonando o repositório do Docker Compose
Após realizar a instalação do Docker Engine, vamos dar seguimento com a nossa implementação.
Execute os seguintes comandos para clonar nosso Docker Compose para dentro do nosso servidor:
cd /opt
git clone https://github.com/alfredotavio/outline-authgitlab-docker.git
NOTA: Utilizei o diretório /opt do Linux, caso queira você pode alterar para outro diretório de sua escolha.
Etapa 03 - Gerando as keys SECRET_KEY e UTILS_SECRET
Utilize o comando abaixo para gerar as keys SECRET_KEY e UTILS_SECRET, utilize o comando duas vezes.
Iremos adicionar as keys geradas no arquivo de variáveis .env.
openssl rand -hex 32
Salve as keys aleatórias hex-encoded 32-byte geradas.
Etapa 04 - Gerando o Token OAuth no GitLab
Siga as etapas para gerar o Token OAuth para as variáveis OIDC_CLIENT_ID e OIDC_CLIENT_SECRET.
Faça login no GitLab.
Clique na foto do perfil do usuário na aba lateral esquerda. Em seguida, clique em "Edit profile".
No menu lateral esquerdo, clique em "Applications".
Clique no botão "Add new application".
Preencha os seguintes campos:
Nome: um nome para o token OAuth.
Redirect URI: a URL para a qual o usuário será redirecionado após o Login. Substitua wiki.alfredocastro.com.br pela URL do Outline que você definiu na etapa 01, mantenha /auth/oidc.callback.
Selecione: Confidential, openid, email.
Em seguida, clique em "Save application".
Copie o "Application ID" e a "Secret", iremos utilizar no arquivo de variáveis .env para as variáveis OIDC_CLIENT_ID e OIDC_CLIENT_SECRET. Em seguida, clique em "Continue".
Etapa 05 - Definindo as variáveis
Para definirmos as variáveis, devemos editar o arquivo .env na raiz do projeto, utilize o seguinte comando:
vim /opt/outline-authgitlab-docker/.env
Altere as seguintes variáveis (altere de acordo com o seu ambiente, lembre-se das informações geradas nas etapas anteriores):
# URL do seu GitLab
GITLAB_URL=gitlab.alfredocastro.com.br
# Gere uma senha para o usuário PostgreSQL
POSTGRES_PASSWORD=4plDjot8gsBuoUm2t8g
# Gere uma senha para o usuário minioadmin
MINIO_ROOT_PASSWORD=uuD4Tkqn1DLWK8L2NZL
# Gere uma senha para o usuário minio
MINIO_USER_PASSWORD=K8uk1WL4TDqnNZLuL2D
# Key aleatória hex-encoded 32-byte gerada na etapa 03
SECRET_KEY=ac19f89a7208b8b555391ac30df954d23c72cd73334d5464d9191b69db661b60
# Key aleatória hex-encoded 32-byte gerada na etapa 03
UTILS_SECRET=3858016d319b5ccdb0c6d81df8c5084395e3cd88d46a519d84719e59bbddf735
# ID do Token OAuth gerado na etapa 04
OIDC_CLIENT_ID=bee5543039223825096f902a47b3860981c6f4b12ea7be803fcf30343db71f49
# Secret do Token OAuth gerado na etapa 04
OIDC_CLIENT_SECRET=gloas-0748860386fd7ad12bfb6f81a72f389767f3c0f576d4570c4489738e0ce50243
# URL do Outline definida na etapa 01
WIKI_URL_TRAEFIK=wiki.alfredocastro.com.br
# URL do MinIO definida na etapa 01
MINIO_URL_TRAEFIK=storage.alfredocastro.com.br
# URL do MinIO definida na etapa 01
MINIO_ADMIN_URL_TRAEFIK=storage-admin.alfredocastro.com.br
# Endereço de email para geração do certificado Let's Encrypt
ACME_EMAIL_TRAEFIK=alfredotavio@gmail.com
Etapa 06 - Executando o Docker Compose
Para subirmos nosso ambiente, basta executarmos o seguinte comando dentro do diretório raiz onde está nosso docker-compose.yml:
docker compose up -d
NOTA: O Docker irá fazer o download e o provisionamento de todas as imagens. Aguarde alguns minutos até que as imagens concluam a primeira configuração.
Etapa 07 - Acessando a Wiki Outline
Acesse a URL da Wiki Outline que definimos na etapa 01, irá exibir uma tela com um botão "Continuar com o GtiLab" clique nele.
Você será redirecionado para a página de login do GitLab, utilize o seu usuário do GitLab para fazer login.
Clique no botão "Authorize" para autorizar o Outline a interagir com o GitLab via Token OAuth.
Você será redirecionado para a página inicial da Wiki Outline, seu usuário terá acesso admin e você poderá realizar as configurações que achar melhor para a sua Wiki.
Espero tê-lo ajudado! Se houver alguma dúvida, não hesite em entrar em contato.
Top comments (0)