Ir para o conteúdo principal

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

·985 palavras·5 minutos
outline docker compose docker gitlab traefik redis minio postgresql let's encrypt linux
Alfredo Castro
Autor
Alfredo Castro
AWS Solutions Architect | AWS x3 | LPI x2 | CompTIA Linux+
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:

Imagens utilizadas:

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:

Como instalar o Docker Engine no Linux
·572 palavras·3 minutos
docker docker compose linux ubuntu centos

É 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:

Instalando GitLab Usando Docker
·1095 palavras·6 minutos
gitlab docker compose docker let's encrypt linux

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:

IMAGEM 01

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

IMAGEM 02
IMAGEM 03
IMAGEM 04

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.

IMAGEM 01

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

IMAGEM 02

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

IMAGEM 01
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.

IMAGEM 01
Clique na foto do perfil do usuário na aba lateral esquerda. Em seguida, clique em “Edit profile”.
IMAGEM 02
No menu lateral esquerdo, clique em “Applications”.
IMAGEM 03
Clique no botão “Add new application”.
IMAGEM 04
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”.

IMAGEM 05
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”.
IMAGEM 06
IMAGEM 07

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

IMAGEM 01

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

IMAGEM 01

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.

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

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