Aplicações Node.js e Python em hospedagem compartilhada: como elas rodam
Aplicações que não são PHP rodam como um processo próprio e permanente, e não como arquivos executados a cada visita. O painel cria esse processo, reserva uma porta interna e encaminha o domínio até ela; a sua parte é indicar a pasta do projeto, o arquivo de entrada e a versão da linguagem — e reiniciar o processo a cada alteração no código.
A diferença em relação ao PHP
Com PHP, o servidor lê o arquivo, executa e descarta tudo ao final da requisição — salvar o arquivo já basta para ver a mudança. Com Node.js ou Python, o código foi carregado na memória quando o processo subiu e continua ali. Enquanto o processo não for reiniciado, ele segue servindo a versão antiga. Essa é a diferença que mais gera dúvida: o arquivo está atualizado no servidor e o site insiste em mostrar o comportamento anterior.
O que o painel pede
- Versão da linguagem — a mesma que você usa para desenvolver, sempre que possível.
- Pasta do projeto — preferencialmente fora da área pública, pelos mesmos motivos que valem para qualquer framework.
- Domínio ou subdomínio que vai atender a aplicação.
- Arquivo de entrada — o arquivo que sobe o servidor da aplicação.
Repare que você não escolhe a porta. Ela é interna e o painel cuida do encaminhamento; a aplicação deve ouvir na porta que o ambiente informa, e não em uma porta fixa escrita no código — porta fixa é a causa clássica de aplicação que sobe e não responde.
Instalar as dependências
O painel costuma oferecer um botão que instala as dependências declaradas no arquivo de manifesto do projeto, dentro do ambiente correto da linguagem. Use esse botão em vez de enviar a pasta de dependências pronta: pacotes com parte compilada precisam ser montados na mesma arquitetura do servidor, e a cópia da sua máquina pode simplesmente não carregar.
Reiniciar depois de cada alteração
Envie os arquivos, instale o que for novo e clique em reiniciar. Se a aplicação não voltar, o log de erro dela é o primeiro lugar a olhar — falha de inicialização aparece ali por extenso, geralmente uma dependência faltando ou uma variável de ambiente não definida.
Os limites da conta valem aqui também
O processo da aplicação consome memória e processador da mesma cota da conta, e conta no total de processos. Aplicação que vaza memória vai bater no limite e ser encerrada, derrubando o site — em processo permanente esse efeito é cumulativo, diferente do PHP, que zera a cada requisição. Vale acompanhar o consumo nos primeiros dias depois de publicar.