Hospedagem gratuita NodeJS com Joyent Node Smartmachines
Já faz algum tempo que a Joyent está investindo em NodeJS e pelo visto com força total. Passado 1 mês do Node Knockout, a Joyent está disponibilizando hospedagem beta para o NodeJS. Essa liberação está acontecendo gradualmente e atualmente é necessário um token. Basicamente você solicita esse token e entra numa fila. Não demora muito e eles enviam um email pra você avisando que o token já está disponível. A partir daí basta recupera-lo e usar para criar sua instância.
Uma coisa legal também é que a Joyent criou uma API REST, onde é possível fazer tudo pela linha de comando. Vamos criar e fazer deploy de uma aplicação simples.
Criando a conta:
$ curl -k https://api.no.de/account \ -F "[email protected]" \ -F "username=user" \ -F "password=pass" \ -F "password_confirmation=pass"
Adicionando uma chave ssh:
$ curl -k -u user:pass https://api.no.de/sshkeys \ -F "name=seunome" -F "key=@/Users/seuusuario/.ssh/id_rsa.pub"
Solicitando um coupon para provisionar uma máquina:
$ curl -k -u user:pass https://api.no.de/heart -X POST
A partir daí, você deve esperar o seu email chegar, avisando que o coupon está liberado. Como eu disse, essa liberação é gradual. Portanto, muita calma nessa hora. Talvez você tenha que voltar no artigo depois, portanto guarde o link :)
Provisionando sua máquina (quando o coupon estiver liberado):
Pegue o coupon:
$ curl -k -u user:pass https://api.no.de/coupons
Se você fizer essa busca antes do coupon estar liberado virá uma resposta vazia.
Provisione com o coupon recebido:
$ curl -k -u user:pass https://api.no.de/smartmachines/node \ -F "coupon=123456789abcdefghijk" \ -F "subdomain="seusubdominio"
Nesse momento você já tem uma máquina apontando para o endereço: htttp://seusubdominio.no.de
Primeiro deploy
O deploy para uma Node Smartmachine é feito via git, assim como no heroku. Sendo assim, vamos criar um projeto simples, com um hello world e fazer o deploy:
$ mkdir seuprojeto && cd seuprojeto
Crie um arquivo chamado server.js no editor de sua preferência e adicione o seguinte código:
var http = require('http'); var server = http.createServer(function (request, response) { response.writeHead(200, {'Content-Type': 'text/plain'}); response.end('Hello NodeJS Smartmachine\n'); }); server.listen(Number(process.env.PORT));
Pegue as informações (IP) da sua máquina para configurar o repositório remoto do git:
$ curl -k -u user:pass https://api.no.de/smartmachines/node
Inicialize o repositório git, faça o primeiro commit e adicione o repositório remoto:
git init git add . git commit -am "Primeiro commit" git remote add joyent ssh://node@seuip/repo
Agora vamos ao que mais interessa. Deploy !!!!
git push joyent master
Pronto!!! Agora acesse htttp://seusubdominio.no.de e você deve ver a mensagem Hello NodeJS Smartmachine.
Gerênciando pela interface web
Para gerenciar sua conta visualmente basta entrar em http://no.de e entrar com seu usuário e senha. É uma ótima opção também. Nesse site também é possível criar novas contas, adicionar chaves ssh e provisionar máquinas. Não é possível
Conclusão
Essa hospedagem de NodeJS me parece bem promissora, e eu sinceramente estou gostando muito. A hospedagem permite instalar pacotes usando NPM e também instalar algumas outras coisas. No próximo artigo vou explorar detalhes de administração dessa hospedagem.