Skip to content

Instantly share code, notes, and snippets.

@gustavokuklinski
Last active May 30, 2017 14:20
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save gustavokuklinski/9266109 to your computer and use it in GitHub Desktop.
Save gustavokuklinski/9266109 to your computer and use it in GitHub Desktop.
Script para deploy de Rails 3.2.17 nos servidores compartilhados da Kinghost Desenvolvido por Gustavo Kuklinski (@tuxlinski) - http://kuklinski.com.br
#!/bin/bash
#
# Script para deploy de Rails 3.2.17
# nos servidores compartilhados da Kinghost
# Desenvolvido por Gustavo Kuklinski (@tuxlinski)
# http://www.kuklinski.com.br
#
# Até o momento o Script apenas funciona caso você tenha mais de UMA aplicação
# criada pelo painel de controle!
#
clear
echo '------------------------------------------------------------------------'
echo 'Kinghost Rails 3.5 Deploy'
echo '------------------------------------------------------------------------'
echo 'Digite o PATH da sua aplicação local. Ex: /home/usuario/nome_da_app:'
# Caminho da sua aplicação local: Ex: /home/usuario/meu_rails_app
read localapp
echo 'Digite o nome da sua aplicação da Kinghost:'
# Nome da aplicação criada pelo painel de controle da Kinghost
read remoteapp
echo '------------------------------------------------------------------------'
#
# Ao acessar o SSH pela primeira vez poderá ocorrer de pedir
# confirmação de uma chave RSA! - Digite 'yes' no terminal
#
echo 'Entre com seus dados SSH.'
echo 'Usuário:'
# Nome de usuário SSH, o mesmo é utilizado no FTP
read sshUser
echo 'Host:'
# O nome do seu domínio. Ex: fulano.com (Sem o http:// nem www)
read sshHost
echo ''
echo 'Aguarde...'
echo 'Autencicando usuário e domínio...'
echo '------------------------------------------------------------------------'
echo 'Digite sua senha para acessar remotamente o servidor:'
# Remove a versão 2.3 do Rails instalada pelo painel de controle
ssh $sshUser@$sshHost "
cd apps_rails/$remoteapp;
rm -Rf *;
exit;
"
echo '------------------------------------------------------------------------'
echo 'Preparando cópia dos arquivos...'
echo 'Digite sua senha para copiar os arquivos:'
# Copia seus arquivos para a pasta app_rails.
# IMPORTANTE! :
# O nome do projeto tem que ser o mesmo do criado pelo painel de controle!
scp -r $localapp $sshUser@$sshHost:apps_rails/
echo 'Arquivos copiados.'
echo '------------------------------------------------------------------------'
echo 'Digite sua senha para realizar o Deploy da aplicação:'
# Realiza as tarefas de deploy:
# Acessa a pasta do projeto
# Instala as gems padrões do Gemfile(inclusive de terceiros!) na pasta 'ventor/bundle'
# Executa as migrações do banco de dados
# Recompila os ASSETS(arquivos CSS, Javascript e Imagens)
# Reinicia o servidor
ssh $sshUser@$sshHost "
cd apps_rails/$remoteapp;
bundle install --path ventor/bundle;
bundle exec rake db:migrate RAILS_ENV='production' --trace;
bundle exec rake assets:precompile RAILS_ENV='production' --trace
touch tmp/restart.txt;
exit;
"
echo '------------------------------------------------------------------------'
echo ''
echo 'Deploy realizado!'
echo ''
echo '-------------------------------------------------------------------------'
echo 'Caso ocorra algo errado, leia as mensagens e as emcaminhe para o suporte.'
echo '-------------------------------------------------------------------------'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment