Neste tutorial, você aprenderá como configurar um ambiente local Docker com as seguintes ferramentas:
- GLPI: Um sistema de gerenciamento de ativos e chamados de código aberto.
- Portainer: Uma interface de gerenciamento de contêineres Docker.
- Traefik: Um proxy reverso com suporte a SSL para roteamento de tráfego.
A configuração incluirá a utilização de certificados SSL autoassinados para proteger as conexões HTTPS.
Para seguir este tutorial, você precisará dos seguintes requisitos:
- Um servidor Ubuntu 22.
- Acesso ao servidor como superusuário ou com privilégios sudo.
Começaremos instalando o Docker e suas dependências. Execute os seguintes comandos:
sudo su -
cd /
sudo apt update
sudo apt upgrade -y
sudo add-apt-repository http://us.archive.ubuntu.com/ubuntu jammy-updates multiverse
sudo add-apt-repository http://us.archive.ubuntu.com/ubuntu jammy-backports main restricted universe multiverse
sudo apt install -y lsb-release apt-transport-https ca-certificates curl gnupg software-properties-common -y
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker
Agora, instalaremos o Docker Compose para facilitar a criação e gerenciamento de contêineres. Siga as instruções abaixo:
sudo curl -L https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo docker-compose --version
Crie uma rede Docker chamada proxy
para permitir a comunicação entre os contêineres Traefik, GLPI e Portainer. Use o seguinte comando:
sudo docker network create proxy
Agora, clone o repositório com os arquivos de configuração necessários para a pasta root raiz de seu servidor Ubuntu:
cd ~/
git clone https://github.com/jonas556440/Docker-GLPI-Traefik-Portainer-SSL.git
Isso criará os diretórios e arquivos necessario em sua pasta root.
Agora, vamos criar certificados SSL autoassinados para cada subdomínio que você deseja configurar (por exemplo, glpi.localhost.local
, portainer.localhost.local
, traefik.localhost.local
). Siga as instruções interativas e configure os certificados para cada domínio:
sudo mkdir -p ~/Docker-GLPI-Traefik-Portainer-SSL/Traefik/ssl_certificates
cd ~/Docker-GLPI-Traefik-Portainer-SSL/Traefik/ssl_certificates
openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -keyout glpi.localhost.local.key -out glpi.localhost.local.crt
openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -keyout portainer.localhost.local.key -out portainer.localhost.local.crt
openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -keyout traefik.localhost.local.key -out traefik.localhost.local.crt
Agora, vamos iniciar os contêineres para as diferentes partes do ambiente. Certifique-se de estar no diretório inicial (~) antes de executar esses comandos:
cd ~/Docker-GLPI-Traefik-Portainer-SSL
docker-compose -f Traefik/docker-compose-traefik.yml up -d
docker-compose -f mariadb_glpi/docker-compose-mariadb.yml up -d
docker-compose -f GLPI/docker-compose-glpi.yml up -d
docker-compose -f Portainer/docker-compose-portainer.yml up -d
Certifique-se de que os domínios que você usará com seus certificados SSL autoassinados sejam direcionados para o IP do servidor onde o Docker e seus contêineres estão sendo executados. Isso pode ser feito de duas maneiras:
Uma abordagem é configurar um servidor DNS interno em sua rede para resolver os nomes de domínio (por exemplo, glpi.localhost.local, port.localhost.local, traefik.localhost.local) para o IP do servidor onde o Docker está sendo executado.
Outra maneira é adicionar manualmente os mapeamentos de IP e domínio ao arquivo /etc/hosts
do servidor. Você pode fazer isso executando o seguinte comando:
sudo nano /etc/hosts
Dentro do arquivo, adicione linhas semelhantes a esta para cada domínio que você deseja configurar, substituindo IP_DO_SERVIDOR
pelo endereço IP real do seu servidor onde o Docker está em execução:
IP_DO_SERVIDOR glpi.localhost.local
IP_DO_SERVIDOR port.localhost.local
IP_DO_SERVIDOR traefik.localhost.local
Isso garantirá que os domínios sejam corretamente direcionados para o IP do seu servidor.
Finalmente, você pode acessar as seguintes aplicações:
- GLPI: https://glpi.localhost.local
- Portainer: https://port.localhost.local
- Traefik: https://traefik.localhost.local
Você verá avisos de segurança devido ao uso de certificados autoassinados. Você pode aceitar esses avisos para continuar.
Este tutorial ajudará você a configurar um ambiente Docker com GLPI e certificados SSL autoassinados para uma comunicação segura entre os serviços. Certifique-se de ajustar os nomes dos certificados e outros detalhes conforme necessário para atender às suas necessidades. Para obter mais informações e configurações avançadas, consulte a Wiki.
Este projeto é distribuído sob a licença XYZ. Consulte o arquivo LICENSE
para obter mais informações.
Jonas Oliveira – jonas556440@gmail.com