hostnet 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +14 -0
- data/LICENSE +20 -0
- data/Manifest.txt +34 -0
- data/README.txt +18 -0
- data/Rakefile +4 -0
- data/TODO +0 -0
- data/bin/hostnet +50 -0
- data/config/hoe.rb +75 -0
- data/config/requirements.rb +15 -0
- data/hostnet.gemspec +45 -0
- data/lib/hostnet.rb +6 -0
- data/lib/hostnet/version.rb +9 -0
- data/rails_generators/hostnet_deploy/USAGE +8 -0
- data/rails_generators/hostnet_deploy/hostnet_deploy_generator.rb +30 -0
- data/rails_generators/hostnet_deploy/templates/Capfile +3 -0
- data/rails_generators/hostnet_deploy/templates/deploy.rb +74 -0
- data/rails_generators/hostnet_email/USAGE +8 -0
- data/rails_generators/hostnet_email/hostnet_email_generator.rb +22 -0
- data/rails_generators/hostnet_email/templates/mail.rb +9 -0
- data/script/console +10 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/setup.rb +1585 -0
- data/tasks/deployment.rake +34 -0
- data/tasks/environment.rake +7 -0
- data/tasks/website.rake +9 -0
- data/test/test_generator_helper.rb +29 -0
- data/test/test_helper.rb +2 -0
- data/test/test_hostnet.rb +11 -0
- data/test/test_hostnet_deploy_generator.rb +45 -0
- data/test/test_hostnet_email_generator.rb +45 -0
- data/tutoriais/001-meu-primeiro-deploy-de-aplicacao-rails-para-a-hostnet/tutorial.mkdn +94 -0
- data/tutoriais/002-configurando-sua-aplicacao-para-enviar-e-mails/tutorial.mkdn +14 -0
- data/tutoriais/003-dicas-para-administracao-e-debug-de-sua-aplicacao-rails/tutorial.mkdn +29 -0
- metadata +133 -0
@@ -0,0 +1,34 @@
|
|
1
|
+
desc 'Release the website and new gem version'
|
2
|
+
task :deploy => [:check_version, :website, :release] do
|
3
|
+
puts "Remember to create SVN tag:"
|
4
|
+
puts "svn copy svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/trunk " +
|
5
|
+
"svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/tags/REL-#{VERS} "
|
6
|
+
puts "Suggested comment:"
|
7
|
+
puts "Tagging release #{CHANGES}"
|
8
|
+
end
|
9
|
+
|
10
|
+
desc 'Runs tasks website_generate and install_gem as a local deployment of the gem'
|
11
|
+
task :local_deploy => [:website_generate, :install_gem]
|
12
|
+
|
13
|
+
task :check_version do
|
14
|
+
unless ENV['VERSION']
|
15
|
+
puts 'Must pass a VERSION=x.y.z release version'
|
16
|
+
exit
|
17
|
+
end
|
18
|
+
unless ENV['VERSION'] == VERS
|
19
|
+
puts "Please update your version.rb to match the release version, currently #{VERS}"
|
20
|
+
exit
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
desc 'Install the package as a gem, without generating documentation(ri/rdoc)'
|
25
|
+
task :install_gem_no_doc => [:clean, :package] do
|
26
|
+
sh "#{'sudo ' unless Hoe::WINDOZE }gem install pkg/*.gem --no-rdoc --no-ri"
|
27
|
+
end
|
28
|
+
|
29
|
+
namespace :manifest do
|
30
|
+
desc 'Recreate Manifest.txt to include ALL files'
|
31
|
+
task :refresh do
|
32
|
+
`rake check_manifest | patch -p0 > Manifest.txt`
|
33
|
+
end
|
34
|
+
end
|
data/tasks/website.rake
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
begin
|
2
|
+
require File.dirname(__FILE__) + '/test_helper'
|
3
|
+
rescue LoadError
|
4
|
+
require 'test/unit'
|
5
|
+
end
|
6
|
+
require 'fileutils'
|
7
|
+
|
8
|
+
# Must set before requiring generator libs.
|
9
|
+
TMP_ROOT = File.dirname(__FILE__) + "/tmp" unless defined?(TMP_ROOT)
|
10
|
+
PROJECT_NAME = "myproject" unless defined?(PROJECT_NAME)
|
11
|
+
app_root = File.join(TMP_ROOT, PROJECT_NAME)
|
12
|
+
if defined?(APP_ROOT)
|
13
|
+
APP_ROOT.replace(app_root)
|
14
|
+
else
|
15
|
+
APP_ROOT = app_root
|
16
|
+
end
|
17
|
+
if defined?(RAILS_ROOT)
|
18
|
+
RAILS_ROOT.replace(app_root)
|
19
|
+
else
|
20
|
+
RAILS_ROOT = app_root
|
21
|
+
end
|
22
|
+
|
23
|
+
begin
|
24
|
+
require 'rubigen'
|
25
|
+
rescue LoadError
|
26
|
+
require 'rubygems'
|
27
|
+
require 'rubigen'
|
28
|
+
end
|
29
|
+
require 'rubigen/helpers/generator_test_helper'
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "test_generator_helper.rb")
|
2
|
+
|
3
|
+
require 'rails_generator'
|
4
|
+
|
5
|
+
class TestHostnetDeployGenerator < Test::Unit::TestCase
|
6
|
+
include RubiGen::GeneratorTestHelper
|
7
|
+
|
8
|
+
def setup
|
9
|
+
bare_setup
|
10
|
+
end
|
11
|
+
|
12
|
+
def teardown
|
13
|
+
bare_teardown
|
14
|
+
end
|
15
|
+
|
16
|
+
# Some generator-related assertions:
|
17
|
+
# assert_generated_file(name, &block) # block passed the file contents
|
18
|
+
# assert_directory_exists(name)
|
19
|
+
# assert_generated_class(name, &block)
|
20
|
+
# assert_generated_module(name, &block)
|
21
|
+
# assert_generated_test_for(name, &block)
|
22
|
+
# The assert_generated_(class|module|test_for) &block is passed the body of the class/module within the file
|
23
|
+
# assert_has_method(body, *methods) # check that the body has a list of methods (methods with parentheses not supported yet)
|
24
|
+
#
|
25
|
+
# Other helper methods are:
|
26
|
+
# app_root_files - put this in teardown to show files generated by the test method (e.g. p app_root_files)
|
27
|
+
# bare_setup - place this in setup method to create the APP_ROOT folder for each test
|
28
|
+
# bare_teardown - place this in teardown method to destroy the TMP_ROOT or APP_ROOT folder after each test
|
29
|
+
|
30
|
+
def test_generator_without_options
|
31
|
+
name = "myapp"
|
32
|
+
run_generator('hostnet_deploy', [name], sources)
|
33
|
+
assert_generated_file("some_file")
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
def sources
|
38
|
+
[RubiGen::PathSource.new(:test, File.join(File.dirname(__FILE__),"..", generator_path))
|
39
|
+
]
|
40
|
+
end
|
41
|
+
|
42
|
+
def generator_path
|
43
|
+
"rails_generators"
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "test_generator_helper.rb")
|
2
|
+
|
3
|
+
require 'rails_generator'
|
4
|
+
|
5
|
+
class TestHostnetEmailGenerator < Test::Unit::TestCase
|
6
|
+
include RubiGen::GeneratorTestHelper
|
7
|
+
|
8
|
+
def setup
|
9
|
+
bare_setup
|
10
|
+
end
|
11
|
+
|
12
|
+
def teardown
|
13
|
+
bare_teardown
|
14
|
+
end
|
15
|
+
|
16
|
+
# Some generator-related assertions:
|
17
|
+
# assert_generated_file(name, &block) # block passed the file contents
|
18
|
+
# assert_directory_exists(name)
|
19
|
+
# assert_generated_class(name, &block)
|
20
|
+
# assert_generated_module(name, &block)
|
21
|
+
# assert_generated_test_for(name, &block)
|
22
|
+
# The assert_generated_(class|module|test_for) &block is passed the body of the class/module within the file
|
23
|
+
# assert_has_method(body, *methods) # check that the body has a list of methods (methods with parentheses not supported yet)
|
24
|
+
#
|
25
|
+
# Other helper methods are:
|
26
|
+
# app_root_files - put this in teardown to show files generated by the test method (e.g. p app_root_files)
|
27
|
+
# bare_setup - place this in setup method to create the APP_ROOT folder for each test
|
28
|
+
# bare_teardown - place this in teardown method to destroy the TMP_ROOT or APP_ROOT folder after each test
|
29
|
+
|
30
|
+
def test_generator_without_options
|
31
|
+
name = "myapp"
|
32
|
+
run_generator('hostnet_email', [name], sources)
|
33
|
+
assert_generated_file("some_file")
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
def sources
|
38
|
+
[RubiGen::PathSource.new(:test, File.join(File.dirname(__FILE__),"..", generator_path))
|
39
|
+
]
|
40
|
+
end
|
41
|
+
|
42
|
+
def generator_path
|
43
|
+
"rails_generators"
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,94 @@
|
|
1
|
+
Meu primeiro deploy de aplicação Rails para a Hostnet
|
2
|
+
=====================================================
|
3
|
+
|
4
|
+
Este tutorial apresenta um passo-a-passo do seu primeiro deploy de uma aplicação Rails sem utilizar controle de versão. Assumimos aqui que você já possui uma conta Rails na Hostnet e uma aplicação que você desejar colocar no ar. Todos os comandos são executados no diretório raiz do seu projeto.
|
5
|
+
|
6
|
+
1. Você deve possuir a gem da Hostnet instalada. Se você não possui, execute:
|
7
|
+
|
8
|
+
gem install mergulhao-hostnet --source=http://gems.github.com
|
9
|
+
|
10
|
+
2. Configure a seção production do seu database.yml com os dados da sua conta Mysql. Exemplo:
|
11
|
+
|
12
|
+
production:
|
13
|
+
adapter: mysql
|
14
|
+
database: seu_database
|
15
|
+
username: usuario
|
16
|
+
password: senha
|
17
|
+
host: mysql.dominio.com
|
18
|
+
|
19
|
+
3. Agora é necessário criar a receita de deploy através do utilitário da Hostnet. Isso significa executar:
|
20
|
+
|
21
|
+
hostnet seu_usuario seu_dominio.com
|
22
|
+
|
23
|
+
4. É necessário preparar o terreno no servidor para o primeiro deploy. Basta executar:
|
24
|
+
|
25
|
+
cap deploy:setup
|
26
|
+
|
27
|
+
5. Para finalizar:
|
28
|
+
|
29
|
+
cap deploy
|
30
|
+
|
31
|
+
Se tudo deu certo a sua aplicação estará no ar.
|
32
|
+
|
33
|
+
Realizando um novo deploy, após correção de um bug
|
34
|
+
==================================================
|
35
|
+
|
36
|
+
Supondo que você corrigiu um bug e deseja atualizar a versão no servidor basta executar novamente:
|
37
|
+
|
38
|
+
cap deploy
|
39
|
+
|
40
|
+
E as novas modificações estarão no ar!
|
41
|
+
|
42
|
+
Solução de problemas
|
43
|
+
====================
|
44
|
+
|
45
|
+
Versão do Rails
|
46
|
+
---------------
|
47
|
+
|
48
|
+
Se ocorrer durante o deploy um erro como esse:
|
49
|
+
|
50
|
+
*** [err :: dominio.com] Missing the Rails 2.1.0 gem. Please `gem install
|
51
|
+
-v=2.1.0 rails`, update your RAILS_GEM_VERSION setting in
|
52
|
+
config/environment.rb for the Rails version you do have installed, or
|
53
|
+
comment out RAILS_GEM_VERSION to use the latest version installed.
|
54
|
+
|
55
|
+
ou esse:
|
56
|
+
|
57
|
+
*** [err :: dominio.com] Missing the Rails 2.0.2 gem. Please `gem install
|
58
|
+
-v=2.0.2 rails`, update your RAILS_GEM_VERSION setting in
|
59
|
+
config/environment.rb for the Rails version you do have installed, or
|
60
|
+
comment out RAILS_GEM_VERSION to use the latest version installed.
|
61
|
+
|
62
|
+
Você deve editar o seu arquivo config/enviroment.rb e alterar a linha que diz:
|
63
|
+
|
64
|
+
RAILS_GEM_VERSION = '2.1.0' unless defined? RAILS_GEM_VERSION
|
65
|
+
|
66
|
+
ou
|
67
|
+
|
68
|
+
RAILS_GEM_VERSION = '2.0.2' unless defined? RAILS_GEM_VERSION
|
69
|
+
|
70
|
+
Para:
|
71
|
+
|
72
|
+
RAILS_GEM_VERSION = '2.1.1' unless defined? RAILS_GEM_VERSION
|
73
|
+
|
74
|
+
ou
|
75
|
+
|
76
|
+
RAILS_GEM_VERSION = '2.0.4' unless defined? RAILS_GEM_VERSION
|
77
|
+
|
78
|
+
Respectivamente.
|
79
|
+
|
80
|
+
Erro de acesso ao banco de dados
|
81
|
+
--------------------------------
|
82
|
+
|
83
|
+
Se ocorrer durante o deploy um erro como esse:
|
84
|
+
|
85
|
+
* executing "cd /home/usuario/www/releases/20080916192611 && rake db:migrate RAILS_ENV=production"
|
86
|
+
servers: ["dominio.com"]
|
87
|
+
[dominio.com] executing command
|
88
|
+
*** [err :: dominio.com] rake aborted!
|
89
|
+
*** [err :: dominio.com] Access denied for user: 'user@dominio.com' (Using password: YES)
|
90
|
+
*** [err :: dominio.com]
|
91
|
+
*** [err :: dominio.com] (See full trace by running task with --trace)
|
92
|
+
** [out :: dominio.com] (in /home/usuario/www/releases/20080916192611)
|
93
|
+
|
94
|
+
Você deve verificar o arquivo config/database.yml e configurar com os dados da sua conta Mysql, como indicado no passo 2.
|
@@ -0,0 +1,14 @@
|
|
1
|
+
Configurando sua aplicação para enviar e-mails
|
2
|
+
==============================================
|
3
|
+
|
4
|
+
1. Você deve possuir a gem da Hostnet instalada. Se você não possui, execute:
|
5
|
+
|
6
|
+
gem install mergulhao-hostnet --source=http://gems.github.com
|
7
|
+
|
8
|
+
2. Crie no seu painel da Hostnet uma conta que será usada pelo ActionMailer do Rails para o envio de e-mails
|
9
|
+
|
10
|
+
3. Na raiz do seu projeto execute:
|
11
|
+
|
12
|
+
hostnet --email mailer_username mailer_password seu_dominio.com
|
13
|
+
|
14
|
+
Sua aplicação já está configurada para enviar e-mails utilizando smtp da Hostnet!
|
@@ -0,0 +1,29 @@
|
|
1
|
+
Dicas para administracao e debug de sua aplicacao rails
|
2
|
+
=======================================================
|
3
|
+
|
4
|
+
Todas as dicas supõe que você fez upload de sua aplicação utilizando o Capistrano configurado a partir da gem oficial da Hostnet.
|
5
|
+
|
6
|
+
* Logs
|
7
|
+
|
8
|
+
1. **Meu arquivo de log está ocupando muito espaço da minha hospedagem. O que fazer?**
|
9
|
+
|
10
|
+
Você deve zerar o seu arquivo de log regularmente para evitar que ele consuma todo o espaço da sua hospedagem. Basta executar o comando:
|
11
|
+
|
12
|
+
cap log:clean
|
13
|
+
|
14
|
+
2. **Como ver o log de produção da minha aplicação?**
|
15
|
+
|
16
|
+
Para facilitar essa tarefa de debug temos uma task do Capistrano. Basta executar:
|
17
|
+
|
18
|
+
cap log:tail
|
19
|
+
|
20
|
+
* Deploy
|
21
|
+
|
22
|
+
1. **Preciso fazer o restart da minha aplicação, o que fazer?**
|
23
|
+
|
24
|
+
cap deploy:restart
|
25
|
+
|
26
|
+
2. **Ao subir a minha aplicação, preciso rodar _cap deploy:migrations_ para executar as migrations?**
|
27
|
+
|
28
|
+
Não. A receita de deploy da Hostnet efetua essa tarefa automaticamente.
|
29
|
+
|
metadata
ADDED
@@ -0,0 +1,133 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: hostnet
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Sylvestre Mergulhao
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2008-10-07 00:00:00 -03:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: rubigen
|
17
|
+
type: :runtime
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 1.3.2
|
24
|
+
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: capistrano
|
27
|
+
type: :runtime
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 2.5.0
|
34
|
+
version:
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: archive-tar-minitar
|
37
|
+
type: :runtime
|
38
|
+
version_requirement:
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 0.5.2
|
44
|
+
version:
|
45
|
+
- !ruby/object:Gem::Dependency
|
46
|
+
name: hoe
|
47
|
+
type: :development
|
48
|
+
version_requirement:
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 1.7.0
|
54
|
+
version:
|
55
|
+
description: "gem oficial para suporte a deploy de aplica\xC3\xA7\xC3\xB5es"
|
56
|
+
email:
|
57
|
+
- contato@mergulhao.info
|
58
|
+
executables:
|
59
|
+
- hostnet
|
60
|
+
extensions: []
|
61
|
+
|
62
|
+
extra_rdoc_files:
|
63
|
+
- History.txt
|
64
|
+
- Manifest.txt
|
65
|
+
- README.txt
|
66
|
+
files:
|
67
|
+
- History.txt
|
68
|
+
- LICENSE
|
69
|
+
- Manifest.txt
|
70
|
+
- README.txt
|
71
|
+
- Rakefile
|
72
|
+
- TODO
|
73
|
+
- bin/hostnet
|
74
|
+
- config/hoe.rb
|
75
|
+
- config/requirements.rb
|
76
|
+
- hostnet.gemspec
|
77
|
+
- lib/hostnet.rb
|
78
|
+
- lib/hostnet/version.rb
|
79
|
+
- rails_generators/hostnet_deploy/USAGE
|
80
|
+
- rails_generators/hostnet_deploy/hostnet_deploy_generator.rb
|
81
|
+
- rails_generators/hostnet_deploy/templates/Capfile
|
82
|
+
- rails_generators/hostnet_deploy/templates/deploy.rb
|
83
|
+
- rails_generators/hostnet_email/USAGE
|
84
|
+
- rails_generators/hostnet_email/hostnet_email_generator.rb
|
85
|
+
- rails_generators/hostnet_email/templates/mail.rb
|
86
|
+
- script/console
|
87
|
+
- script/destroy
|
88
|
+
- script/generate
|
89
|
+
- setup.rb
|
90
|
+
- tasks/deployment.rake
|
91
|
+
- tasks/environment.rake
|
92
|
+
- tasks/website.rake
|
93
|
+
- test/test_generator_helper.rb
|
94
|
+
- test/test_helper.rb
|
95
|
+
- test/test_hostnet.rb
|
96
|
+
- test/test_hostnet_deploy_generator.rb
|
97
|
+
- test/test_hostnet_email_generator.rb
|
98
|
+
- tutoriais/001-meu-primeiro-deploy-de-aplicacao-rails-para-a-hostnet/tutorial.mkdn
|
99
|
+
- tutoriais/002-configurando-sua-aplicacao-para-enviar-e-mails/tutorial.mkdn
|
100
|
+
- tutoriais/003-dicas-para-administracao-e-debug-de-sua-aplicacao-rails/tutorial.mkdn
|
101
|
+
has_rdoc: true
|
102
|
+
homepage: http://github.com/mergulhao/hostnet
|
103
|
+
post_install_message: ""
|
104
|
+
rdoc_options:
|
105
|
+
- --main
|
106
|
+
- README.txt
|
107
|
+
require_paths:
|
108
|
+
- lib
|
109
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
110
|
+
requirements:
|
111
|
+
- - ">="
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
version: "0"
|
114
|
+
version:
|
115
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
116
|
+
requirements:
|
117
|
+
- - ">="
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: "0"
|
120
|
+
version:
|
121
|
+
requirements: []
|
122
|
+
|
123
|
+
rubyforge_project: hostnet
|
124
|
+
rubygems_version: 1.2.0
|
125
|
+
signing_key:
|
126
|
+
specification_version: 2
|
127
|
+
summary: "gem oficial para suporte a deploy de aplica\xC3\xA7\xC3\xB5es"
|
128
|
+
test_files:
|
129
|
+
- test/test_helper.rb
|
130
|
+
- test/test_generator_helper.rb
|
131
|
+
- test/test_hostnet.rb
|
132
|
+
- test/test_hostnet_deploy_generator.rb
|
133
|
+
- test/test_hostnet_email_generator.rb
|