Auto-hospedagem e ip público parte 3

De Wiki Coolab
Revisão de 15h02min de 19 de agosto de 2021 por Brunovianna (discussão | contribs) (Criou página com '===VPS=== Essa parte supõe que você tem acesso a uma VPS pública, ou seja, uma máquina virtual rodando um sistema linux na internet, que você pode acessar por ssh. Além...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar

VPS

Essa parte supõe que você tem acesso a uma VPS pública, ou seja, uma máquina virtual rodando um sistema linux na internet, que você pode acessar por ssh. Além disso, você precisa de um domínio próprio que possa apontar para essa máquina. Ou seja, você vai editar os registros DNS do domínio para que os pedidos que chegam nele sejam direcionados para o IP da VPS (como com qualquer serviço web). Faça isso agora, antes de começar.

Zerotier

Também é necessário instalar o zerotier na sua raspi, conforme descrito na parte 2.

O que vamos fazer na máquina é instalar o zerotier e um servidor nginx e configurar esse como proxy reverso. Assim, todo o tráfego que chegar nele, que seja destinado ao teu domínio (digamos raspi.meudominio.net) vai ser direcionado para o ip da raspi da tua rede zerotier.

Comece instalando o zerotier na VPS, conforme as instruções da parte 2. Autorize o seu acesso no menu em https://my.zerotier.com.

Nginx

Agora instale o nginx na VPS, caso ainda não tenha. As instruções são para Ubuntu, mas não será muito diferente em outros sistemas Debian.

sudo apt install nginx sudo systemctl enable nginx

Agora vem o truque principal, que é a configuração do proxy reverso. Vamos usar o editor pico para criar uma nova configuração de site:

sudo pico /etc/nginx/sites-available/raspi.meudominio.net.conf

(Substituindo o nome de domínio pelo teu).

Agora faça paste das configurações:

``` server {

     listen 80;
listen [::]:80;
server_name raspi.meudominio.net; add_header Strict-Transport-Security "max-age=15552000; includeSubDomains" always; access_log /var/log/nginx/raspi.meudominio.net/access.log; error_log /var/log/nginx/raspi.meudominio.net/error.log; location / {
proxy_pass <ip/hostname>;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_redirect off;
proxy_read_timeout 5m;
}
client_max_body_size 200M; }
<code><br /><br />Se você for subir arquivos muito grandes (maiores que 200 megabytes), não deixe de alterar a última linha, substituindo o 200M pelo limite que preferir.

Agora habilite a página:

</code>

sudo ln -s /etc/nginx/sites-available/raspi.meudominio.net /etc/nginx/sites-enabled/raspi.meudominio.net sudo systemctl restart nginx

<code><br />Uma observação: sua raspi pode necessitar de domínios diferentes para serviços diferentes. Se quiser acrescentar outro domínio como funkwhale.meudominio.net, basta repetir os passos, criando outro arquivo de configuração.


==SSL===
Em princípio o acesso já está funcionando. Mas a maioria dos serviços vai exigir uma conexão com certifica SSL. Portanto vamos instalar o letsencrypt: 

</code>

sudo apt-get update sudo apt-get install software-properties-common sudo add-apt-repository universe sudo add-apt-repository ppa:certbot/certbot sudo apt-get update sudo apt-get install certbot python3-certbot-nginx

<code><br />Agora é só criptografar os sites criados:

</code>

certbot --nginx -d raspi.meudominio.net certbot --nginx -d funkwhale.meudominio.net ```

E pronto! Tua Raspi já está acessível de qualquer parte da Internet :)