DEV Community

Alfredo Castro
Alfredo Castro

Posted on • Updated on

Instalando a Wiki Outline em Docker com Autenticação via GitLab

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
Enter fullscreen mode Exit fullscreen mode

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.

Veja um exemplo:
Image description

Para consultar a propagação do registro criado, consulte o site: WhatsMyDNS
Image description
Image description
Image description

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.
Image description

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
Enter fullscreen mode Exit fullscreen mode

Image description

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
Enter fullscreen mode Exit fullscreen mode

Image description
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.
Image description
Clique na foto do perfil do usuário na aba lateral esquerda. Em seguida, clique em "Edit profile".
Image description
No menu lateral esquerdo, clique em "Applications".
Image description
Clique no botão "Add new application".
Image description
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".
Image description
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".
Image description
Image description

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Image description

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
Enter fullscreen mode Exit fullscreen mode

Image description

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.
Image description
Você será redirecionado para a página de login do GitLab, utilize o seu usuário do GitLab para fazer login.
Image description
Clique no botão "Authorize" para autorizar o Outline a interagir com o GitLab via Token OAuth.
Image description
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.
Image description

Espero tê-lo ajudado! Se houver alguma dúvida, não hesite em entrar em contato.

Top comments (0)