Proxy Nginx com SSL para RR-Flow

Utilizando Nginx para acessar o RR-Flow diretamente através de um domínio com certificado SSL.

Configuração do Grafana

Primeiramente, vamos configurar o Grafana para executar apenas em modo localhost, de modo que a porta 3000 fique disponível somente para o próprio servidor e ajustar a URL base. Para isso, faça os seguintes ajustes no arquivo de configuração:

vim /etc/grafana/grafana.ini

Encontre e ajuste as seguintes variáveis e altere para o modo abaixo:

http_addr = localhost
root_url = %(protocol)s://%(domain)s/

Instalação do Nginx

Prossiga com a instalação do Nginx:

apt install nginx

Crie um arquivo de configuração para o Grafana:

vim /etc/nginx/sites-available/grafana.conf

Adicione a seguinte configuração:

server {
    listen 80;
    listen [::]:80;

    server_name rrflow.seudominio.com.br;

    # Descomente para restringir o acesso apenas aos IPs listados
    # allow 127.0.0.1;
    # allow ::1;
    # allow 192.168.0.0/16;
    # allow 2801:db8::/32;
    # deny all;
    # error_page 403 http://www.rrflow.com.br;

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
    }
}

Crie um link simbólico para ativar a configuração e reinicie o Nginx:

ln -s /etc/nginx/sites-available/grafana.conf /etc/nginx/sites-enabled/
systemctl restart nginx

Certificado SSL com Let’s Encrypt

Instale o Certbot para gerar os certificados SSL gratuitos com Let’s Encrypt:

apt install certbot python3-certbot-nginx

Execute o Certbot e siga as instruções para gerar o certificado. Certifique-se de que as portas 80 e 443 estejam abertas ao público:

certbot

Agora seu domínio já terá SSL!

Renovar certificado

Os certificados precisam ser renovados a cada 90 dias. Você pode automatizar isso com o comando:

certbot -q renew

Renovar automaticamente

Para tentar renovar o certificado automaticamente uma vez por mês, adicione a seguinte linha ao cron:

echo '00 00 1 * * root certbot -q renew' >> /etc/crontab
systemctl restart cron