Deployment na Dreamhost e RailsPlayground

Minha aplicação Rails está pronta, mas, e agora? Como instalá-la no servidor?
Essa é uma dúvida muito comum entre desenvolvedores Rails. Fazer a configuração do ambiente de produção de uma aplicação é uma tarefa bem DIY (do it yourself, ou, faça você mesmo). Não existe uma fórmula certa ou errada para isso, mas sim diferentes soluções para essa questão. Esse artigo, portanto, mostra uma forma, que eu e o Nando usamos para rodarmos nossas aplicações. Ele na RailsPlayground e eu na Dreamhost. Vamos lá:

Mão na Massa

Faça uma conexão SSH com seu servidor. Para quem não sabe, basicamente, é uma conexão que permite você trabalhar num outro computador remotamente. Assim, você pode, copiar arquivos, deletar e gerenciar sua conta nesse host. Em sistemas *nix, como Mac e Linux, digite em um terminal: ssh [email protected] Após a autenticação você estará no servidor. No Windows, instale o PuTTY, velho guerreiro para essas operações.

Nota: esse usuário deve ter, obviamente, acesso a shell. Caso tenha dúvida, verifique seus usuários.

Uma vez já logado no servidor, crie uma aplicação inicial (por exemplo: teste), apenas para gerar os arquivos certos de configuração (como o dispatch.* e .htaccess). No seu diretório principal (/home/meuusuario) crie:

rails teste

Feito isso, envie sua aplicação para sua pasta de usuário. Você pode fazer isso usando um programa de FTP mesmo. Lembre-se de que sua aplicação não deve estar dentro da pasta public_html ou meusite.com.br ou seja, a pasta que você informa no gerenciador de domínios da Dreamhost.

Com sua aplicação já no servidor, verifique se seu arquivo environment.rb está com a mesma versão do Rails que está instalada na máquina. Isso previne indesejáveis erros, como o “Rails application failed to start properly”. Não esqueça também de descomentar a linha que coloca a aplicação em modo de produção. Não devemos nunca deixar uma aplicação ir para versão final em modo de desenvolvimento, porque nesse modo os logs gerados são enormes. Verificada versão do Rails e servidor configurado para produção, acerte a permissão dos arquivos.

chmod -R 755 ~/MinhaAppWeb2.0deSucesso

Acertada as permissões, copie o .htaccess e os dispatch.* da aplicação teste para sua aplicação.

cp ~/teste/public/dispatch.* ~/MinhaAppWeb2.0deSucesso/public/
cp ~/teste/public/.htaccess ~/MinhaAppWeb2.0deSucesso/public/

Nota: se você tinha feito uma alteração no .htaccess de sua aplicação, lembre de editar o novo arquivo copiado.

Falta agora fazer as migrações das tabelas de seu banco de dados. Rake neles!

rake migrate RAILS_ENV="production" 

Se você preferir pode usar também o PHPMyAdmin da Dreamhost, para criar/exportar seu banco de dados.
Finalmente, vamos criar um link simbólico da sua aplicação para o lugar público.

ln -s /home/meuusuario/MinhaAppWeb2.0deSucesso/public /home/meuusuario/public_html

Nesse caso, a aplicação ficaria no diretório principal do domínio (desde que public_html tenha sido especificado como sua pasta raiz do domínio no gerenciador da Dreamhost)

 

Leonardo

Registros de Leonardo Faria sobre desenvolvimento web

 
  • João Lins

    O post tá legal, parabéns.
    Estou pensando em criar uma conta no railsplayground e transferir todos os sites para lá. Tenho medo do suporte deles pois é apenas via email.
    Inicialmente gostaria de saber qual o plano que você está utilizando lá para rails?
    Eu estou pensando no custo beneficio da revenda $25 mensais, mas tenho medo de problemas com memoria e CPU até mesmo porque ele não diz nada sobre isso no plano de revenda quanto é garantido para cada usuário…
    Pensei no plano vps Level Two que sairia por $30 mensais em contra partida a única vantagem que eu teria seria a garantia de 256MB de ram em relação a recursos da máquina, mas perderia a facilidade de painel de controle e 5GB de armazenamento.

    Então já que você é cliente oque você recomendaria? ;-)

  • Na verdade eu tenho conta é na Dreamhost. Quem tem conta lá é o Nando
    Ah, uma galera do forum rubyonbr.org tem usado os serviços da RailsPlayground. Dá uma conferida lá

  • Pingback: Fabiano França » Blog Archive » links for 2007-07-08()

  • Bacana cara, eu tb resolvi nao usar capistrano e fiz um pequena config de deploy q ta me servindo bem até hj e é facil adicionar linhas de comando antes ou depois então nao preciso de mais nada.
    Também uso railsplayground por sinal e temos interesses semelhantes se quiser manter contato adiciona no msn (tecnalta no yahoo .com.br), trabalho com rails a mais de 2 anos, abraço.

  • Aos que ainda não ingressaram no melhor host da atualidade, vale a pena!

    Caso queiram muiiiito desconto na hora de assinar qualquer plano da DreamHost utilizem um dos seguintes códigos: BRASILEIRO ou BRASILEIRA. Confiram, vale a pena mesmo!

    http://www.dreamhost.com/r.cgi?149788