Como instalar o Mautic com Docker no Digital Ocean
Estimated Reading Time: 5 MinutesO Docker é a maneira mais simples e fácil de colocar um aplicativo em produção. Com ele conseguimos lançar com poucos ajustes um servidor de Banco de Dados, um Proxy com SSL e então o Mautic para realizar todas as campanhas de automação de Marketing.
O Docker Mautic já teve mais de 2 milhões de downloads ao longo dos últimos 2 anos e é a maneira mais simples e segura de colocar o seu mautic no funcionamento.
Neste artigo vamos criar todo o Stack para que o Mautic funcione com:
- MySQL
- SSL
- Mautic
- Proxy Reverso com Nginx
Uma visão geral do Docker Mautic
A imagem do Docker Mautic foi construída observando Docker Images populares para fazer o ambiente perfeito para o Mautic funcionar.
Basicamente a imagem copia a versão mais recente do Mautic para a pasta /var/www/html
e configura todas as permissões necessárias nos arquivos.
Junto ao Docker Mautic instalamos um servidor Percona MySQL que possui configurações excelentes para o modo em que o Mautic funciona.
E por fim temos um proxy reverso que envia as requisições para o Mautic e realiza a configuração automática do SSL com Let's Encrypt.
Vamos ao passo a passo para começar a usar o Mautic hoje?
Etapa 1: Criar um Droplet no DigitalOcean
- Acesse DigitalOcean e crie uma conta
- Depois de fazer o login, escolha 'Create Droplet' com LAMP ou LEMP com Ubuntu 18.04 LTS entre as opções disponíveis.
- Escolha 2 GB / 50 GB de disco (US $10/ mês) para projetos pequenos
- Escolha o local mais próximo do local do seu cliente
- Ative os backups, se necessário (serão aplicados custos adicionais)
- Método de login - Use uma chave SSH de preferência, pois isso é mais seguro, ou uma senha única, se isso não for possível
- Crie o Droplet e aguarde que ela seja provisionada
- Efetue login com sua chave SSH ou a senha gerada usando o seguinte comando:
ssh root@ip
Digite sua senha como o email enviado a partir do DigitalOcean, se você preferir a senha única.
Etapa 2: Como instalar o Docker na VPS
Importante: Você precisa de uma VPS criada na etapa anterior com acesso SSH para realizar esse passo a passo.
É necessário que a máquina esteja limpa, não instale nenhum outro software como Apache, Nginx ou MySQL nessa máquina.
O objetivo do script de instalação (https://github.com/docker/docker-install) é facilitar a instalação rápida das versões mais recentes do Docker-CE nas distribuições linux suportadas.
No Terminal do seu servidor digite:
curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh
Isso vai instalar automaticamente o Docker para você em qualquer distro Linux suportada.
Para verificar se o Docker está funcionando, digite:
docker info
Você irá visualizar as informações do seu sistema.
Começando com o Docker
O Docker permite que todo o processo de instalação seja automatizado. Basta rodar alguns comandos e os softwares funcionam com a configuração padrão e com o Mautic não é diferente.
Antes de começar é necessário que você adicione a entrada DNS A ou CNAME no seu domínio apontando para o servidor em que o Mautic estará rodando.
Se você está apenas testando o Mautic na sua Máquina local (MacOS, Linux ou Windows) poderá ignorar o passo 4, já que não será necessário.
Etapa 3 - Configurando uma Rede no Docker
O primeiro passo é criar uma rede interna para que o Mautic possa se comunicar com o Banco de Dados e com o Proxy reverso. No terminal digite:
docker network create mauticnet
Passo 4 - Configurando o Proxy Reverso com SSL
A vamos instalar o Proxy Reverso chamado nginx-proxy junto ao nginx-proxy-companion que serão responsáveis por receber as requisições HTTP e repassar para o Mautic e também criar o certificado SSL gratuito com o Let's Encrypt.
No terminal SSH do seu servidor digite:
docker run -d --restart=always \ -p 80:80 -p 443:443 --name nginx-proxy \ -v /path/to/certs:/etc/nginx/certs:ro \ -v /etc/nginx/vhost.d \ -v /usr/share/nginx/html \ -v /var/run/docker.sock:/tmp/docker.sock:ro \ --label com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy \ --net=mauticnet \ jwilder/nginx-proxy:latest
Você já tem um servidor nginx funcionando com SSL sem modificar nenhuma configuração. O Docker é fantástico.
Etapa 5: Configurando o Servidor MySQL
Os próximos comandos fazem o trabalho de instalação e configuração do MySQL e criam um usuário root para que possamos usar com o Mautic:
docker volume create mysql_data docker run --name mysql -d -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD=YOURPASSWORD --restart=always \ -v mysql_data:/var/lib/mysql \ --net=mauticnet \ percona/percona-server:5.7 \ --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
Por favor, modifique o YOURPASSWORD por uma senha forte.
Etapa 6: Configurando o Mautic Docker
Por fim vamos instalar o Mautic usando a imagem oficial mautic/mautic que automatiza todo o processo de instalação:
docker volume create mautic_data docker run -d --restart=always \ --name mautic \ -e MAUTIC_DB_HOST=mysql \ -e MAUTIC_DB_USER=root \ -e MAUTIC_DB_PASSWORD=YOURPASSWORD \ -e MAUTIC_DB_NAME=mautic \ -e VIRTUAL_HOST=mautic.yourdomain.com \ -e LETSENCRYPT_HOST=mautic.yourdomain.com \ -e [email protected] \ -P 8080:80 \ -v mautic_data:/var/www/html \ --net=mauticnet \ --privileged \ mautic/mautic:latest
No exemplo acima será necessário inserir as seguintes variáveis:
MAUTIC_DB_PASSWORD: Aqui você deve informar a senha do MySQL.
VIRTUAL_HOST: Aqui é o endereço do seu Mautic.
LETSENCRYPT_HOST: Você deve repetir o endereço do seu Mautic ;)
LETSENCRYPT_EMAIL: Aqui vai o seu e-mail para ser registrado no Let's Encrypt.
É isso!
Se você instalou o Mautic na sua máquina local, acesse http://localhost:8080 para ter acesso ao Mautic pronto para ser instalado. Caso você tenha instalado em uma VPS acesse mautic.yourdomain.com.