Executando verificação de segurança...
14
astro
3 min de leitura ·

[ HOMELAB ] Como hospedar um site em casa ?

Bom, você já deve ter se perguntado se isso é possível, e é claro que a resposta é SIM!
E vou te mostrar como fiz isso, com um notebook velho e um pouco de curiosidade.

O que é preciso ?

Antes de mais nada você precisa de:

  • 1 PC com acesso a internet para ser o servidor, pode ser um pc ou notebook normal, ou até mesmo um SoC (System on Chip) como um Raspberry PI ou um Orange PI da vida;
  • IP Fixo/Público que é adquirido com o seu provedor, no meu caso R$ 50,00;
  • 1 Roteador, no meu caso é um Mikrotik RB 750GR3, mas pode ser qualquer outro que te permita gerenciar portas.
  • 1 Domínio, esse você pode comprar na hostgator por exemplo, gira em torno de 30 reais por ano.

Com os equipamentos em mãos, quais os próximos passos ?

Agora você precisa instalar um SO de servidor no PC, como um Ubuntu Server por exemplo, depois de instalado você vai precisar do Apache:

sudo apt install apache2

depois de instalado, verificar se está rodando:

sudo systemctl status apache2

Tudo certo, agora precisa copiar os arquivos do site para o diretório /var/www/(nome-do-site), nesse exemplo estou copiando apenas o index.html, mas você deve copiar todos os arquivos do seu site:

sudo cp /home/(seu-usuario)/index.html /var/www/(nome-do-site)

Seguindo, vamos criar a configuração do site no diretório /etc/apache2/sites-available:

sudo nano seu-site.conf

Configuração:

<VirtualHost *:80>
	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/(nome-do-site)

	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Vamos desativar o site padrão do apache e ativar o nosso site e reiniciar o apache:

sudo a2dissite 000-default.conf
sudo a2ensite seu-site.conf
sudo systemctl reload apache2

Pronto! Agora você deve conseguir acessar o seu site usando http://seu-ip no navegador.

Acessando de qualquer rede externa

Para torná-lo acessível de fora, precisamos configurar o redirecionamento de portas dentro do roteador, para que quando uma requisição chegar na porta X ser direcionado para o IP do servidor na rede interna. Na prática pode mudar de roteador para roteador, deixo aqui um vídeo ensinando a configurar no Mikrotik.

Pronto! Agora está acessível de uma rede externa usando http://seu-ip no navegador.

O penúltimo passo seria configurar o apontamento DNS, que pode varia de acordo com a plataforma que você está usando, e o último passo seria gerar um certificado SSL para que consiga acessar usando https, esse eu vou ensinar em um outro momento.

É claro que existem N formas de fazer essa hospedagem, pode ser usando o NGINX no lugar do Apache por exemplo, nesse meu primeiro post a intenção é ser simples mesmo.

Em caso de dúvidas, sugestões ou dicas, podem deixar nos comentários, fica aqui o meu muito obrigado.

Carregando publicação patrocinada...
3

Adoro autohospedagem, belo artigo, contribuiu para um ecossistema mais saudavel.

Hospedo meus sites no meu RPi Zero aqui em casa, porem uso softwares mais leves.

Minha maior dificuldade foi conseguir um plano de internet de empresas com IP fixo, foram meses! Como foi sua experiencia para adquirir esse plano e qual foi o provedor de internet?

Outra duvida, alguem sabe se da pra usar starlink ou planos de 5G para hospedar?

Obrigado!

2

Aqui na minha região, todos os provedores vendem, eu trabalhei como analista de TI no atual provedor, quando contratei conhecia o pessoal do NOC e foi bem rápido.

1
3

Neste comentário explico prós e contras de ter um servidor self-host

Mas em resumo: Nunca aponte seu DNS diretamente para seu IP. SEMPRE coloque atrás de um proxy (como ligar a opção "proxied" da cloudflare)

E muito cuidado com portas abertas, você pode estar dando um ponto de acesso para pessoas externas à rede interna da sua casa.

Eu recebo diariamente milhares de ataques força bruta

1

Tô usando o proxy do próprio cloudflare, ainda não sei se é p suficiente, mas vou procurar alternativas, obrigado pela observação

1

Muito bem pontuado, as vezes esquecemos dos riscos provenientes de um servidor self-host e criamos uma playground para invasores kkkkk

2

Você pode usar o cloudflare tunnel para fazer isso e vincular seu IP a um domínio, eu por exemplo hospedo vários serviços em minha casa, um exemplo seria minha "netflix" pessoal que faça com um servidor de mídia chamado Jellyfin.

1

Eu tô com o proxmox, meu próximo passo é criar um servidor de mídia e posteriormente um NAS para armazenar as gravações das câmeras.

2

É realmente legal poder hospedar sites ou serviços de casa, para projetos pequenos sai mais barato que VPS. Conforme comentaram, a Cloudflare disponibiliza um serviço gratuito de tunelamento que funciona muito bem, e permite que você aponte um subdomínio que você controla para o seu computador sem precisar configurar roteador (sempre uma experiência horrível) ou ter IP fixo. O nome da coisa é Cloudflare Tunnel e para configurar isso vá lá no menu esquerdo lá no seu dashboard da Cloudflare e clique em Zero Trust e depois em Networks.

1
2

caramba isso e um otimo hack para aprender como as coisas funcionam por de baixo do pano, fazia muito isso quando era crianca, sempre fiquei afcionado em ter meu proprio server de game, entao foi por esse caminho que comecei minha jornada no universo do desenvolvimento

2

No caso de não ter um roteador Mikrotik, onde possa definir regras para, use ufw e fail2ban para reduzir dores de cabeça ao ter vulnerabilidades exploradas afetar o servidor ou mesmo sua rede doméstica.

1
2
1
2

Muito bom, faço isso aqui com uma raspberry4, mas no meu caso eu hospedo um bot do telegram que conta com um painel admin web.
Uso nginx, certbot para configurar o certificado ssl, domínio no registro.br apontando para meu IP fixo e tudo funciona como uma maravilha.

2

Massa demais, eu uso o certbot também, o meu domínio comprei na hostgator mas eu administro no Cloudflare.

1
1

Cara, muito interessante isso de usar um Raspberry pra hospedar um bot, fala mais pra gente e explica sobre isso. To querendo fazer um bot pra pegar alguns informações de forma automatizada no Telegran pra filtrar vagas de tecnologia, mas ainda não sei como começar a fazer isso.

2

Não queria poluir o post do amigo com isso,mas em resumo o bot pode ser "hospedado" em qualquer máquina, desde que ela fique sempre ligada, o telegram possui algumas libs específicas para isso no caso de usar python a lib python-telegram-bot é uma ótima opção, eu por outro lado uso telethon que é outra ótima lib, com recursos tanto para bots quanto para usuários, é uma lib Proto e para casos de uso mais avançados.
No geral você desenvolve seu bot e ao executar, a lib controla os updates das mensagens e você só deve se preocupar com possíveis erros e quedas que podem ocorrer, para evitar isso eu uso pm2 para controlar os processos.
O que me fez usar as raspberry para subir e hospedar esse bot e o painel admin dele é que ela tem baixo consumo de energia e pode ficar ligada por dias,pelo menos 1 vez por semana eu reinicio ela.
No geral funciona bem e o sistema consegue suportar os acessos de multiusuários de forma bem satisfatória.
O bot em si é relacionado a automação de apostas, que é um tema um tanto quanto polêmico e talvez não seja algo interessante de ser esmiuçado aqui, basicamente é isso.
Talvez algum dia eu crie um post aqui sobre isso.

2
1

Muito bacana esse conteúdo, eu estou já tem um tempo querendo realizar isso. Voce acredita que uma Raspberry PI 3 com 4GB de RAM consegue ter um desempenho interessante ou ideal é a partir de 8?

1