deploy
Como publicar uma web app pequena em uma VPS sem DevOps
Sua app roda bem no seu notebook — a parte difícil é a distância entre "funciona na minha máquina" e "no ar na internet". Aqui está o que publicar realmente envolve, as quatro coisas de que toda app precisa e como pular toda a configuração.
Você construiu alguma coisa. Ela roda no seu notebook — você digita um comando, abre localhost e lá está. Agora você quer que outras pessoas vejam, em um endereço de verdade, na internet. É nesse último passo que um número surpreendente de projetos pessoais empaca em silêncio.
O código está pronto. O que sobra é tudo o que fica em volta dele: colocar sua app em um servidor, mantê-la funcionando mesmo depois que você fecha o notebook e deixá-la acessível em um endereço como deve ser, com direito a cadeado. Esse conjunto de tarefas tem um nome — DevOps — e é a parte para a qual ninguém se inscreveu.
O que "publicar" realmente significa
Publicar é só mover sua app de "roda na minha máquina" para "roda em uma máquina que o mundo inteiro consegue alcançar". Para isso acontecer, três coisas precisam ser verdade:
- o código precisa estar no servidor,
- ele precisa continuar rodando — inclusive depois de um travamento ou de um reinício,
- e os visitantes precisam conseguir alcançá-lo em um domínio, via HTTPS.
No seu notebook, as duas primeiras você ganha quase de graça: você inicia a app e ela roda até você parar. Um servidor é outra coisa — e é justamente essa diferença que é o trabalho todo.
O muro entre a sua app e a internet
Aqui está a pilha de pequenas peças pouco familiares que costuma ficar no meio do caminho:
- Um gerenciador de processos — sua app precisa iniciar sozinha e voltar depois de um travamento ou de um reinício. Se você rodar na mão, ela morre no momento em que você sai da sessão.
- Um reverse proxy — sua app escuta em alguma porta interna, como a 3000, mas os visitantes chegam na 80 e na 443. Algo precisa ficar na frente e encaminhá-los para dentro.
- HTTPS — o cadeado. Um certificado, emitido e renovado, senão os navegadores rotulam seu site como "Não seguro".
- Um domínio e uma porta aberta — o nome precisa apontar para o servidor, e o firewall precisa deixar o tráfego web passar.
Nenhuma dessas peças é difícil sozinha. Juntas, para uma primeira publicação, elas são um muro — quatro ferramentas que você nunca encontrou, cada uma com o seu arquivo de configuração e o seu jeito de falhar em silêncio.
Do que a sua app realmente precisa
Tire as ferramentas do caminho e os requisitos ficam simples. Sua app precisa de um lugar para rodar, de um jeito de continuar funcionando, de um caminho do endereço público até a sua porta interna e de um certificado para que a conexão seja privada. A lista é essa toda. Cada ferramenta do monte de DevOps existe para fornecer uma dessas quatro coisas.
Tenha isso em mente e publicar deixa de parecer mágica. São quatro necessidades — de qualquer jeito que você escolha atendê-las.
O atalho
Você pode montar cada peça por conta própria: escolhe um gerenciador de processos, configura um reverse proxy, prepara os certificados, aponta o domínio, abre a porta. É uma verdadeira escola, e uma verdadeira tarde — ou três. Ou você pode deixar o Server Manager cuidar disso: você diz a ele que tem uma web app e o endereço em que ela deve viver, e ele coloca sua app no servidor, mantém ela funcionando através de travamentos e reinícios, encaminha seu domínio para ela e liga o HTTPS — as quatro necessidades, resolvidas, sem um arquivo de configuração à vista.
O único pré-requisito é o domínio. Se você ainda não fez isso, comece por apontar um domínio para o seu servidor — e o cadeado vem sozinho assim que o nome resolver.
Sua app, seu servidor
A distância entre "funciona na minha máquina" e "está no ar" é o ponto em que muitas boas ideias vão esperar para sempre. Não precisa ser assim. O código era a parte difícil, e você já fez — colocá-lo online deveria ser a parte fácil, não o muro que te para. Sua app, no seu próprio servidor, no seu próprio endereço: essa é a recompensa inteira.
Os guias de ajuda mostram a publicação de uma app passo a passo sempre que você estiver pronto.