рдпрд╣ рд▓реЗрдЦ рд╣реЗрд░реЛрдХреВ рд╡реЗрдм рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкрд░ рд░реЗрдбрдорд┐рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд░рдг-рджрд░-рдЪрд░рдг рдирд┐рд░реНрджреЗрд╢ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рдлреИрд╕рд▓рд╛ рдХрд░реЗрдВ рдХрд┐ рд╣рдореЗрдВ рдХреНрдпреЛрдВ рдФрд░ рдХреНрдпреЛрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдФрд░ рдХреМрди рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐
Redmine рдХреНрдпрд╛
рд╣реИ, рдлрд┐рд░ рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреНрд░рдмрдВрдзрди рдФрд░ рдмрдЧ рдЯреНрд░реИрдХрд┐рдВрдЧ (рдмрдЧ рдЯреНрд░реИрдХрд░) рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИред рдпрд╣ рдХрдИ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╛рдлреА рд▓реЛрдХрдкреНрд░рд┐рдп рдУрдкрди рд╕реЛрд░реНрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИред
Heroku рдПрдХ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╣реИред рдЬрд┐рдирдореЗрдВ рд╕реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рдиреА, рдиреНрдпреВрдирддрдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рдЖрд╡рд╢реНрдпрдХ рд╕рд░реНрд╡рд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдПрдХ рд╣реЗрдмреНрд░рд╛рдлрд╝реЗрдХреНрдЯ рдХреА рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЬрд▓реНрджреА рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рд╢рдХреНрддрд┐ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ)ред рдЗрд╕ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдХреНрдпрд╛ рд░реБрдЪрд┐ рд╣реИ, рдореБрдлреНрдд рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╣реЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред
рдЗрд╕ рд▓реЗрдЦ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣рд░реЛрдХреВ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╡реАрдкреАрдПрд╕ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкрд░ рдХрдИ рдлрд╛рдпрджреЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рд╕реАрдорд╛рдПрдВ рднреА рд╣реИрдВред рдпрд╣ рдЖрд▓реЗрдЦ рд╕реНрдерд╛рдкрдирд╛ рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХрд╛ рдЦреБрд▓рд╛рд╕рд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдФрд╕рдд-рдЕрдиреБрднрд╡реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╣рдо Redmine рдХреЗ
рд╡рд░реНрддрдорд╛рди рдЯреНрд░рдВрдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗред рдЗрд╕рдореЗрдВ 2.3.14 рд░реЗрд▓ рдФрд░ рд░реВрдмреА 1.8.7, 1.9.2, 1.9.3 рдореЗрдВ рд╕реЗ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдлрд┐рд▓рд╣рд╛рд▓ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣реИред
- рдЧрд┐рдЯ рд╕реНрдерд╛рдкрд┐рдд
- рд░реВрдмреА рдХреЗ рд╕рд╣реА рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдЖрд░рд╡реАрдПрдо
- рд░реЗрдбрдореАрди рдХреЗ рд╕рд╛рде VPS рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ SSH рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ
- рд╣рд░реЛрдХреВ рдЦрд╛рддрд╛
- рдЕрдореЗрдЬрд╝рди S3 рдЦрд╛рддрд╛
рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдорд╛рдгрд┐рдХ рдХреЗ 1.9.2-p180 рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдирдпрд╛ рд░рддреНрди рдмрдирд╛рдПрдБред
rvm use ruby-1.9.2-p180
rvm gemset create 'redmineheroku'
rvm use ruby-1.9.2-p180@redmineheroku
рдЕрдм рд╣рдореЗрдВ рд░реЗрдбрдорд╛рдЗрди рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╣рдо рдЗрд╕реЗ рдЧрд┐рдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд▓реЗрдВрдЧреЗред
mkdir redmine_heroku
cd redmine_heroku
git init
git remote add redmine git://github.com/edavis10/redmine.git
git fetch redmine
git merge redmine/master
рдЕрдм рд╣рдореЗрдВ рдбреЗрдЯрд╛ рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрджреНрдпрдкрд┐ рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдЪрд▓рд╛рдПрдВрдЧреЗ, рд╣рдореЗрдВ рдореМрдЬреВрджрд╛ Redmine рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА MySql рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдЙрджрд╛рд╣рд░рдг "/config/database.yml":
production: adapter: mysql database: redmineheroku host: localhost username: db_user password: db_password encoding: utf8 development: adapter: mysql database: redmineheroku host: localhost username: db_user password: db_password encoding: utf8
рдлрд┐рд▓рд╣рд╛рд▓, Redmine рдХрд╛ рдЯреНрд░рдВрдХ рд╕рдВрд╕реНрдХрд░рдг рд░реЗрд▓ рд░рддреНрди рд╕рдВрд╕реНрдХрд░рдг 2.3.14 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред рд╣рдо рдбреЗрдЯрд╛ рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдФрд░ рдЦрд╛рд▓реА рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдордгрд┐ рднреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВред
gem install rails --version 2.3.14
gem install mysql
rake db:create RAILS_ENV=production
рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдореМрдЬреВрджрд╛ рдЖрдзрд╛рд░ рд╣реИ, рд╣рдореЗрдВ рдЗрд╕реЗ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, mysql рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдбрдВрдк рдХреЛ рдЖрдпрд╛рдд рдХрд░реЗрдВ, рдЬрд┐рд╕реЗ рдЕрдВрддрд┐рдо рдмреИрдХрдЕрдк рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
sudo apt-get install mysql-client-core-5.1
mysql -udb_user -pdb_password -h127.0.0.1 redmineheroku < ~/mysqldump-file-path.sql
рдореИрдВ рдЗрд╕ рддрдереНрдп рдкрд░ рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрджрд┐ рдЖрдк mysql рдХреЗ рд▓рд┐рдП рд▓рдШреБ рдзреНрд╡рдЬ (-u, -p рдФрд░ -h) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЕрдЧрд▓рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдмрд┐рдирд╛ рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрд╕рдХреЗ рдмрд╛рдж, рдПрдХ session_key рдХрдорд╛рдВрдб рдмрдирд╛рдПрдВ рдЬреЛ рдПрдХ рдирдИ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдЧрд╛ "/config/initializers/session_store.rn"
rake generate_session_store
рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд┐рдЫрд▓реА рд╕реНрдерд╛рдкрдирд╛ рд╕реЗ рдкрд╣рд▓реЗ рд╕реЗрд╢рди_рдХреА рд╣реИ, рдЗрд╕реЗ "/config/initializers/session_store.rb" рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирдИ рдмрдирд╛рдИ рдЧрдИ рдХреБрдВрдЬреА рд╕реЗ рдмрджрд▓реЗрдВред рдпрджрд┐ рдпрд╣ рдПрдХ рдирдпрд╛ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╣реИ, рддреЛ рдХреБрдЫ рднреА рд╕реНрдкрд░реНрд╢ рди рдХрд░реЗрдВред
рдпрджрд┐ рдЖрдкрдиреЗ Redmine рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЕрдм рд╕рдордп рд╣реИ рдХрд┐ рдЖрдк рдЙрдирдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рднреА рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ рдФрд░ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрдирдХреЗ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕ рдХрджрдо рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВред
RAILS_ENV=production rake db:migrate:upgrade_plugin_migrations
рдЕрдм рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред
RAILS_ENV=production rake db:migrate
рдпрджрд┐ рдпрд╣ рдПрдХ рдирдИ рд╕реНрдерд╛рдкрдирд╛ рд╣реИ, рддреЛ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдорд╛рдирдХ рдЬрд╛рдирдХрд╛рд░реА рд▓реЛрдб рдХрд░реЗрдВ
RAILS_ENV=production rake redmine:load_default_data
рдпрджрд┐ рд╡реЗ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдБ рдФрд░ ".config/initializers/session_store.rb" .ignignore рд╕реЗ рд╣рдЯрд╛рдПрдВред
mkdir tmp public/plugin_assets
sed -i '/\/config\/initializers\/session_store.rb/d' .gitignore
рдореБрдЦреНрдп рдХрджрдо рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рд╣реИред рдЧрд┐рдЯ рдореЗрдВ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрди рдЬреЛрдбрд╝реЗрдВред
git add .
git commit -m "Initial configuration"
рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рдХрд┐ Redmine рдкреВрд░реА рддрд░рд╣ рд╕реЗ Heroku рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП giternal рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
gem install giternal
рдПрдХ рдирдИ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ "config / giternal.yml"
redmine_heroku: path: vendor/plugins repo: http://github.com/edavis10/redmine_heroku.git redmine_s3: path: vendor/plugins repo: http://github.com/tigrish/redmine_s3.git
рдЪрд▓реЛ рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред
giternal update
giternal freeze
рдЕрдм рд╣рдореЗрдВ redmine_s3 рдкреНрд▓рдЧрдЗрди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдкреНрд▓рдЧрдЗрди рдЖрдкрдХреЛ Redmine рдбрд╛рдЙрдирд▓реЛрдб рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ Amazon S3 рдореЗрдВ рд╕рд╣реЗрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рддреЛ рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрднреА рднреА рдЕрдореЗрдЬрд╝рди рдкрд░ S3 рдЦрд╛рддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред
рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ "config / s3.yml"
production: access_key_id: YOUR_S3_ACCESS_KEY_ID secret_access_key: YOUR_S3_SECRET_ACCESS_KEY bucket: YOUR_S3_REDMINE_PRODUCTION_BUCKET cname_bucket: false development: access_key_id: YOUR_S3_ACCESS_KEY_ID secret_access_key: YOUR_S3_SECRET_ACCESS_KEY bucket: YOUR_S3_REDMINE_DEVELOPMENT_BUCKET cname_bucket: false
.Gitignore рд╕реЗ "/ public / plugin_assets" рд╣рдЯрд╛рдПрдВ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред
sed -i '/\/public\/plugin_assets/d' .gitignore
rake heroku:setup
рдЕрдм рдЖрдкрдХреЛ рдлрд┐рд░ рд╕реЗ рд╕реЗрд╢рди_рдХреА рдлрд╝рд╛рдЗрд▓ "/config/initializers/session_store.rb" рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ рдЗрд╕реЗ рдмрдирд╛рддреЗ рд╕рдордп рдПрдХ рдЪрд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдПрдХ рдЖрджрд░реНрд╢ рджреБрдирд┐рдпрд╛ рдореЗрдВ, рд╣рдореЗрдВ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдкрд╛рд╕рд╡рд░реНрдб рдирд╣реАрдВ рд╕рд╣реЗрдЬрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЗрд╕ рд▓реЗрдЦ рдХреА рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП рд╣рдо рдмрд╕ рдпрд╣реА рдХрд░реЗрдВрдЧреЗред
рдЕрдм рдЖрдк рдПрдХ рдФрд░ рдкрдбрд╝рд╛рд╡ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдмрдЪрд╛ рд╕рдХрддреЗ рд╣реИрдВред
git add .
git commit -m "Configure plugins"
рдлрд╝рд╛рдЗрд▓реЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ
рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдореМрдЬреВрджрд╛ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╣рдореЗрдВ рд╕рднреА рдбрд╛рдЙрдирд▓реЛрдб рдлрд╛рдЗрд▓реНрд╕ рдХреЛ рднреА рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, VPS рд╕реЗ рд╕рднреА рд╡рд░реНрддрдорд╛рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ SSH рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрдкреА рдХрд░реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ Amazon S3 рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВред рд╣рдо рд╕рд┐рд░реНрдл S3 рдХреА рдирдХрд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдХреНрдпреЛрдВрдХрд┐ рдлрд╝рд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛ рдмрджрд▓ рдЬрд╛рдПрдЧреАред
scp user@123.456.789.000:~/vps_redmine/files/* ~/redmine_heroku/files/
RAILS_ENV=production rake redmine_s3:files_to_s3
рд╣рдо рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ
рдордгрд┐ рд╣рд░реЛрдХреВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ, рд╣рд░реНрдХреЛ рд╕рд░реНрд╡рд░ рдкрд░ рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдмрдирд╛рдиреЗ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
gem install heroku
рдирдпрд╛ рд░реЗрдбреЛрдХреВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдПрдВ, рдЬрд┐рд╕реЗ "рд░реЗрдбрдорд╛рдЗрди" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдирд╛рдо рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдХрд┐рд╕реА рдЧреИрд░-рдореМрдЬреВрдж рд╡реНрдпрдХреНрддрд┐ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
heroku create redmine
git push heroku master
рдФрд░ рдЖрдЦрд┐рд░реА рдХрджрдо рд▓реЛрдХрд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╣рд░реЛрдХреВ рд╕рд░реНрд╡рд░ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рдирд╛ рд╣реИред рдЗрд╕ рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рдЬреЗрдо рдЯреИрдк рдХреА рдЬрд░реВрд░рдд рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдкреНрд░реА-рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред
gem install taps
heroku db:push
рдЖрд╡реЗрджрди redmine.heroku.com рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА
рдИрдореЗрд▓ рд╕реВрдЪрдирд╛рдПрдБ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо Google рдореЗрд▓ рдЗрдирдмреЙрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдИрдореЗрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде "/config/configuration.yml" рдмрдирд╛рдПрдВред
production: email_delivery: delivery_method: :smtp smtp_settings: tls: true enable_starttls_auto: true address: "smtp.gmail.com" port: '587' domain: "smtp.gmail.com" authentication: :plain user_name: "email_address@gmail.com" password: "email_password"
рдЗрд╕ рдлрд╛рдЗрд▓ рдХреЛ gitignore рд╕реЗ рд╣рдЯрд╛рдПрдВ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕рд╣реЗрдЬреЗрдВ
sed -i '/\/config\/configuration.yml/d' .gitignore
git add .
git commit -m "email config"
рдЦреИрд░, рдЕрдВрдд рдореЗрдВ, рд╕рд░реНрд╡рд░ рдкрд░ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ
git push heroku master
рд╕реБрд░рдХреНрд╖рд╛ рд╕реЗрдЯрд┐рдВрдЧ
рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдкрд╛рд╕рд╡рд░реНрдб рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИред рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ, рд╕рднреА рдЧреБрдкреНрдд рдбреЗрдЯрд╛ рдХреЛ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдореЗрдВ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рд╣рд░реЛрдХреВ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
config:add key=val [...] # add one or more config vars
рдХреЗрд╡рд▓ рдирдХрд╛рд░рд╛рддреНрдордХ рдпрд╣ рд╣реИ рдХрд┐ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЖрдкрдХреЛ рдХреЛрдб рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрдзрд┐рдХ
рдпрд╣рд╛рдБ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИредрдЙрддреНрдкрд╛рджрдХрддрд╛
рдПрдХ рдирд┐рд╢реБрд▓реНрдХ рдЯреИрд░рд┐рдл рдпреЛрдЬрдирд╛ рдкрд░, рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреА рдХрдо рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдЕрдЧрд░ рдпрд╣ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкрд╣рд▓реЗ рдЕрдЧрд▓реЗ рдЕрдиреБрд░реЛрдз рдкрд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ (рдЬреЛ рдХрд╛рдлреА рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рд▓рдЧрднрдЧ 10 рд╕реЗрдХрдВрдб рд▓рдЧреЗрдВрдЧреЗ)ред рдХрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ
рдПрдХ рд╕реЗрд╡рд╛ рдХреЗ рдореБрдлреНрдд рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд░рд┐рдгрд╛рдо рдмрд▓реНрдХрд┐ рдЖрд╢рд╛рд╡рд╛рджреА рд╣реИрдВ рдФрд░ рдореИрдВ рдЙрдирдХреА рд╕рдЯреАрдХрддрд╛ рдореЗрдВ рдХрд╛рдлреА рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВред рдпрджрд┐ рдЖрдк рд╢реЗрдбреНрдпреВрд▓ рдХреЛ рдорд╛рдирддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рд╕рдордп рдореЗрдВ 50 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде, рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд░реНрд╡рд░ рдХреЗ рдХрд░реАрдм рд╣реИрдВ, рддреЛ рджреЗрд░реА 3 рд╕реЗрдХрдВрдб рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛрдЧреАред рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЗ рд╕рд╛рде рд╕рд░реНрд╡рд░
рд╕рд┐рдПрдЯрд▓ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╕рд╕реНрддреЗ рд╡реАрдкреАрдПрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрд╣реБрдд рддреЗрдЬрд╝реА рд╕реЗ рдФрд░ рдмрд╣реБрдд рддреЗрдЬрд╝реА рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ
рд╡реАрдкреАрдПрд╕ рд╕реЗ рд╣рд░реЛрдХреВ рдореЗрдВ рд░реЗрдбрдорд╛рдЗрди рдРрдк рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд▓рд╛рдЧрдд рдФрд░ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдореЗрдВ рдХрд╛рдлреА рд╡реГрджреНрдзрд┐ рд╣реБрдИред рдпрд╣ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рдПрдХ рдирд┐: рд╢реБрд▓реНрдХ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рдЕрдореЗрдЬрд╝реЕрди рдПрд╕ 3 рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрди рд▓рд╛рдЧрддреЛрдВ рдХреЛ рдкреИрд╕рд╛ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣ рд▓реЗрдЦ
blog.firsthand.ca/2010/10/installing-redmine-on-heroku-with.s.html рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛