mirror of
https://github.com/TracksApp/tracks.git
synced 2025-12-16 07:10:12 +01:00
Updated Installing Tracks 2.2.2 on CentOS 6.5 Minimal x86_64 (markdown)
parent
495a6dde6d
commit
cd33426784
1 changed files with 719 additions and 0 deletions
|
|
@ -705,3 +705,722 @@ $ gem install passenger
|
|||
$ passenger -v
|
||||
Phusion Passenger version 4.0.44
|
||||
```
|
||||
|
||||
##Tracks 2.2.2
|
||||
|
||||
Important! My attempts to build using the most current build of 2.2.2 from github or 2.3 developement versions failed. Also, at the time I built, both had a github build status of fails. As of June 26, 2014, 2.2.2 github build status now read success. Nonetheless, I would advise using the 2.2.2 tarball using the "Get Tracks" link from http://getontracks.org/.
|
||||
|
||||
###Unpack
|
||||
```
|
||||
$ tar -xzvf tracks-2.2.2.tar.gz
|
||||
$ mv tracks-2.2.2 ~/tracks
|
||||
```
|
||||
|
||||
Review `~/tracks/doc/installation.textile` for instructions.
|
||||
|
||||
###Gems
|
||||
Install gems using bundler
|
||||
```
|
||||
$ cd ~/tracks/
|
||||
$ bundle install --without development test
|
||||
Fetching gem metadata from https://rubygems.org/........
|
||||
Fetching additional metadata from https://rubygems.org/..
|
||||
Resolving dependencies...
|
||||
Installing rake 10.0.3
|
||||
Installing RedCloth 4.2.9
|
||||
Installing aasm 3.0.16
|
||||
Installing i18n 0.6.1
|
||||
Installing multi_json 1.7.0
|
||||
Installing activesupport 3.2.13
|
||||
Installing builder 3.0.4
|
||||
Installing activemodel 3.2.13
|
||||
Installing erubis 2.7.0
|
||||
Installing journey 1.0.4
|
||||
Installing rack 1.4.5
|
||||
Installing rack-cache 1.2
|
||||
Installing rack-test 0.6.2
|
||||
Installing hike 1.2.1
|
||||
Installing tilt 1.3.6
|
||||
Installing sprockets 2.2.2
|
||||
Installing actionpack 3.2.13
|
||||
Installing mime-types 1.21
|
||||
Installing polyglot 0.3.3
|
||||
Installing treetop 1.4.12
|
||||
Installing mail 2.5.3
|
||||
Installing actionmailer 3.2.13
|
||||
Installing arel 3.0.2
|
||||
Installing tzinfo 0.3.37
|
||||
Installing activerecord 3.2.13
|
||||
Installing activeresource 3.2.13
|
||||
Installing acts_as_list 0.1.9
|
||||
Installing bcrypt-ruby 3.0.1
|
||||
Installing bluecloth 2.2.0
|
||||
Using bundler 1.6.2
|
||||
Using cache_digests 0.1.0 from source at vendor/gems/cache_digests-0.1.0
|
||||
Installing coffee-script-source 1.4.0
|
||||
Installing execjs 1.4.0
|
||||
Installing coffee-script 2.2.0
|
||||
Installing rack-ssl 1.3.3
|
||||
Installing json 1.7.7
|
||||
Installing rdoc 3.12.2
|
||||
Installing thor 0.17.0
|
||||
Installing railties 3.2.13
|
||||
Installing coffee-rails 3.2.2
|
||||
Installing formatize 1.1.0
|
||||
Installing htmlentities 4.3.1
|
||||
Installing jquery-rails 2.2.1
|
||||
Installing libv8 3.11.8.17
|
||||
Installing mysql2 0.3.11
|
||||
Installing nokogiri 1.5.6
|
||||
Installing rack-mini-profiler 0.1.23
|
||||
Installing rails 3.2.13
|
||||
Installing rails_autolink 1.0.9
|
||||
Installing ref 1.0.4
|
||||
Installing sanitize 2.0.3
|
||||
Installing sass 3.2.5
|
||||
Installing sass-rails 3.2.6
|
||||
Installing sqlite3 1.3.7
|
||||
Installing swf_fu 2.0.3
|
||||
Installing therubyracer 0.11.4
|
||||
Installing uglifier 1.3.0
|
||||
Installing will_paginate 3.0.4
|
||||
Your bundle is complete!
|
||||
Gems in the groups development and test were not installed.
|
||||
Use `bundle show [gemname]` to see where a bundled gem is installed.
|
||||
Post-install message from rdoc:
|
||||
Depending on your version of ruby, you may need to install ruby rdoc/ri data:
|
||||
|
||||
<= 1.8.6 : unsupported
|
||||
= 1.8.7 : gem install rdoc-data; rdoc-data --install
|
||||
= 1.9.1 : gem install rdoc-data; rdoc-data --install
|
||||
>= 1.9.2 : nothing to do! Yay!
|
||||
```
|
||||
|
||||
###Configuration
|
||||
Copy configuration files.
|
||||
```
|
||||
$ cd ~/tracks/config/
|
||||
$ cp database.yml.tmpl database.yml
|
||||
$ cp site.yml.tmpl site.yml
|
||||
```
|
||||
|
||||
Update 'production' stanza account from root to dbuser and provide password.
|
||||
```
|
||||
$ vi database.yml
|
||||
```
|
||||
|
||||
Update time zone, salt, secret_token, and email address.
|
||||
```
|
||||
$ vi site.yml
|
||||
```
|
||||
|
||||
Note: we will be using Apache, but initially, let's use WEBrick for an initial testing.
|
||||
```
|
||||
$ vi environments/production.rb
|
||||
```
|
||||
Update config.serve_static_assets to true.
|
||||
|
||||
###Schema
|
||||
Create database schema.
|
||||
```
|
||||
$ cd ~/tracks
|
||||
$ rake db:migrate RAILS_ENV=production
|
||||
== CreateTracksDb: migrating =================================================
|
||||
-- create_table(:contexts)
|
||||
-> 0.0257s
|
||||
-- create_table(:projects)
|
||||
-> 0.1128s
|
||||
-- create_table(:todos)
|
||||
-> 0.0044s
|
||||
-- create_table(:users)
|
||||
-> 0.0033s
|
||||
== CreateTracksDb: migrated (0.1465s) ========================================
|
||||
|
||||
== AddUserId: migrating ======================================================
|
||||
-- add_column(:contexts, :user_id, :integer, {:default=>1})
|
||||
-> 0.0090s
|
||||
-- add_column(:projects, :user_id, :integer, {:default=>1})
|
||||
-> 0.0082s
|
||||
-- add_column(:todos, :user_id, :integer, {:default=>1})
|
||||
-> 0.0077s
|
||||
== AddUserId: migrated (0.0326s) =============================================
|
||||
|
||||
== CreatedAt: migrating ======================================================
|
||||
-- rename_column(:todos, "created", "created_at")
|
||||
-> 0.1701s
|
||||
== CreatedAt: migrated (0.1702s) =============================================
|
||||
|
||||
== Notes: migrating ==========================================================
|
||||
-- create_table(:notes)
|
||||
-> 0.0714s
|
||||
== Notes: migrated (0.0715s) =================================================
|
||||
|
||||
== AddProjectDescription: migrating ==========================================
|
||||
-- add_column(:projects, :description, :text)
|
||||
-> 0.0899s
|
||||
== AddProjectDescription: migrated (0.0900s) =================================
|
||||
|
||||
== AddPreferencesToUserTable: migrating ======================================
|
||||
-- add_column(:users, :preferences, :text)
|
||||
-> 0.0096s
|
||||
== AddPreferencesToUserTable: migrated (0.0119s) =============================
|
||||
|
||||
== AddSessionsTable: migrating ===============================================
|
||||
-- create_table(:sessions)
|
||||
-> 0.0043s
|
||||
-- add_index(:sessions, :session_id)
|
||||
-> 0.0097s
|
||||
== AddSessionsTable: migrated (0.0142s) ======================================
|
||||
|
||||
== AddSubclassAttrToTodos: migrating =========================================
|
||||
-- add_column(:todos, :type, :string, {:null=>false, :default=>"Immediate"})
|
||||
-> 0.0317s
|
||||
-- add_column(:todos, :show_from, :date)
|
||||
-> 0.0556s
|
||||
== AddSubclassAttrToTodos: migrated (0.0887s) ================================
|
||||
|
||||
== AddUserPrefRefresh: migrating =============================================
|
||||
== AddUserPrefRefresh: migrated (0.0011s) ====================================
|
||||
|
||||
== AddFirstAndLastNameToUser: migrating ======================================
|
||||
-- add_column(:users, :first_name, :string)
|
||||
-> 0.0089s
|
||||
-- add_column(:users, :last_name, :string)
|
||||
-> 0.0078s
|
||||
== AddFirstAndLastNameToUser: migrated (0.0168s) =============================
|
||||
|
||||
== PrefToShowHideSidebarItems: migrating =====================================
|
||||
== PrefToShowHideSidebarItems: migrated (0.0010s) ============================
|
||||
|
||||
== AddPreferencesModel: migrating ============================================
|
||||
-- create_table(:preferences)
|
||||
-> 0.0047s
|
||||
== AddPreferencesModel: migrated (0.0048s) ===================================
|
||||
|
||||
== ConvertPreferences: migrating =============================================
|
||||
-- remove_column(:users, :preferences)
|
||||
-> 0.0434s
|
||||
== ConvertPreferences: migrated (0.0446s) ====================================
|
||||
|
||||
== ConvertProjectToStateMachine: migrating ===================================
|
||||
-- add_column(:projects, :state, :string, {:limit=>20, :default=>"active", :null=>false})
|
||||
-> 0.0089s
|
||||
-- remove_column(:projects, :done)
|
||||
-> 0.0085s
|
||||
== ConvertProjectToStateMachine: migrated (0.0185s) ==========================
|
||||
|
||||
== AddVerboseActionDescriptorsPreference: migrating ==========================
|
||||
-- add_column(:preferences, :verbose_action_descriptors, :boolean, {:default=>false, :null=>false})
|
||||
-> 0.0928s
|
||||
== AddVerboseActionDescriptorsPreference: migrated (0.0929s) =================
|
||||
|
||||
== AddUserAuthType: migrating ================================================
|
||||
-- add_column(:users, :auth_type, :string, {:default=>"database", :null=>false})
|
||||
-> 0.0979s
|
||||
== AddUserAuthType: migrated (0.0980s) =======================================
|
||||
|
||||
== AddOpenIdTables: migrating ================================================
|
||||
-- create_table("open_id_associations", {:force=>true})
|
||||
-> 0.0054s
|
||||
-- create_table("open_id_nonces", {:force=>true})
|
||||
-> 0.0040s
|
||||
-- create_table("open_id_settings", {:force=>true})
|
||||
-> 0.0051s
|
||||
== AddOpenIdTables: migrated (0.0146s) =======================================
|
||||
|
||||
== AddUserOpenIdUrl: migrating ===============================================
|
||||
-- add_column(:users, :open_id_url, :string)
|
||||
-> 0.0095s
|
||||
== AddUserOpenIdUrl: migrated (0.0096s) ======================================
|
||||
|
||||
== ConvertTodoToStateMachine: migrating ======================================
|
||||
-- add_column(:todos, :state, :string, {:limit=>20, :default=>"immediate", :null=>false})
|
||||
-> 0.0076s
|
||||
-- rename_column(:todos, "completed", "completed_at")
|
||||
-> 0.0115s
|
||||
-- remove_column(:todos, :done)
|
||||
-> 0.1065s
|
||||
-- remove_column(:todos, :type)
|
||||
-> 0.3187s
|
||||
== ConvertTodoToStateMachine: migrated (0.4457s) =============================
|
||||
|
||||
== PrefToShowHiddenProjectsInSidebar: migrating ==============================
|
||||
-- add_column(:preferences, :show_hidden_projects_in_sidebar, :boolean, {:default=>true, :null=>false})
|
||||
-> 0.0173s
|
||||
== PrefToShowHiddenProjectsInSidebar: migrated (0.0173s) =====================
|
||||
|
||||
== AddTimeZonePreference: migrating ==========================================
|
||||
-- add_column(:preferences, :time_zone, :string, {:limit=>255, :default=>"London", :null=>false})
|
||||
-> 0.0145s
|
||||
== AddTimeZonePreference: migrated (0.0146s) =================================
|
||||
|
||||
== AddIndices: migrating =====================================================
|
||||
-- add_index(:todos, [:user_id, :state])
|
||||
-> 0.0571s
|
||||
-- add_index(:todos, [:user_id, :project_id])
|
||||
-> 0.0182s
|
||||
-- add_index(:todos, [:project_id])
|
||||
-> 0.0431s
|
||||
-- add_index(:todos, [:context_id])
|
||||
-> 0.0874s
|
||||
-- add_index(:todos, [:user_id, :context_id])
|
||||
-> 0.1034s
|
||||
-- add_index(:preferences, :user_id)
|
||||
-> 0.0151s
|
||||
-- add_index(:projects, :user_id)
|
||||
-> 0.0137s
|
||||
-- add_index(:contexts, :user_id)
|
||||
-> 0.0747s
|
||||
== AddIndices: migrated (0.4132s) ============================================
|
||||
|
||||
== IndexOnUserLogin: migrating ===============================================
|
||||
-- add_index(:users, :login)
|
||||
-> 0.0244s
|
||||
== IndexOnUserLogin: migrated (0.0245s) ======================================
|
||||
|
||||
== AddFindByNameIndices: migrating ===========================================
|
||||
-- add_index(:projects, [:user_id, :name])
|
||||
-> 0.0277s
|
||||
-- add_index(:contexts, [:user_id, :name])
|
||||
-> 0.0859s
|
||||
== AddFindByNameIndices: migrated (0.1137s) ==================================
|
||||
|
||||
== AddTagSupport: migrating ==================================================
|
||||
-- create_table(:taggings)
|
||||
-> 0.0053s
|
||||
-- create_table(:tags)
|
||||
-> 0.0231s
|
||||
-- add_index(:tags, :name)
|
||||
-> 0.0145s
|
||||
-- add_index(:taggings, [:tag_id, :taggable_id, :taggable_type])
|
||||
-> 0.0314s
|
||||
== AddTagSupport: migrated (0.0745s) =========================================
|
||||
|
||||
== AddProjectTimestamps: migrating ===========================================
|
||||
-- add_column(:projects, :created_at, :timestamp)
|
||||
-> 0.1526s
|
||||
-- add_column(:projects, :updated_at, :timestamp)
|
||||
-> 0.0085s
|
||||
== AddProjectTimestamps: migrated (0.1612s) ==================================
|
||||
|
||||
== AddContextTimestamps: migrating ===========================================
|
||||
-- add_column(:contexts, :created_at, :timestamp)
|
||||
-> 0.0875s
|
||||
-- add_column(:contexts, :updated_at, :timestamp)
|
||||
-> 0.0083s
|
||||
== AddContextTimestamps: migrated (0.0959s) ==================================
|
||||
|
||||
== AddShowProjectOnTodoDonePreference: migrating =============================
|
||||
-- add_column(:preferences, :show_project_on_todo_done, :boolean, {:default=>false, :null=>false})
|
||||
-> 0.0090s
|
||||
== AddShowProjectOnTodoDonePreference: migrated (0.0091s) ====================
|
||||
|
||||
== AddTitleDateFormatPreference: migrating ===================================
|
||||
-- add_column(:preferences, :title_date_format, :string, {:limit=>255, :default=>"%A, %d %B %Y", :null=>false})
|
||||
-> 0.0081s
|
||||
== AddTitleDateFormatPreference: migrated (0.0082s) ==========================
|
||||
|
||||
== SetNilTimestamps: migrating ===============================================
|
||||
== SetNilTimestamps: migrated (0.0403s) ======================================
|
||||
|
||||
== AddDefaultContextToProject: migrating =====================================
|
||||
-- add_column(:projects, :default_context_id, :integer)
|
||||
-> 0.0083s
|
||||
== AddDefaultContextToProject: migrated (0.0085s) ============================
|
||||
|
||||
== AddMobileTodosPerPagePreference: migrating ================================
|
||||
-- add_column(:preferences, :mobile_todos_per_page, :integer, {:null=>false, :default=>6})
|
||||
-> 0.1132s
|
||||
== AddMobileTodosPerPagePreference: migrated (0.1132s) =======================
|
||||
|
||||
== AddRememberMeToUser: migrating ============================================
|
||||
-- rename_column(:users, "password", "crypted_password")
|
||||
-> 0.0113s
|
||||
-- add_column(:users, :remember_token, :string)
|
||||
-> 0.0089s
|
||||
-- add_column(:users, :remember_token_expires_at, :datetime)
|
||||
-> 0.0073s
|
||||
== AddRememberMeToUser: migrated (0.0278s) ===================================
|
||||
|
||||
== RenameWordToToken: migrating ==============================================
|
||||
-- rename_column(:users, "word", "token")
|
||||
-> 0.0159s
|
||||
== RenameWordToToken: migrated (0.0160s) =====================================
|
||||
|
||||
== UpdateOpenIdUrls: migrating ===============================================
|
||||
== UpdateOpenIdUrls: migrated (0.0013s) ======================================
|
||||
|
||||
== AddProjectCompletedAtColumn: migrating ====================================
|
||||
-- add_column(:projects, :completed_at, :datetime)
|
||||
-> 0.1048s
|
||||
== AddProjectCompletedAtColumn: migrated (0.1063s) ===========================
|
||||
|
||||
== AddIndexToNotes: migrating ================================================
|
||||
-- add_index(:notes, [:project_id])
|
||||
-> 0.0094s
|
||||
-- add_index(:notes, [:user_id])
|
||||
-> 0.0394s
|
||||
== AddIndexToNotes: migrated (0.0489s) =======================================
|
||||
|
||||
== ProjectsContextsRemoveNotNullFromPosition: migrating ======================
|
||||
-- change_column(:projects, :position, :integer, {:null=>true, :default=>nil})
|
||||
-> 0.2133s
|
||||
-- change_column(:contexts, :position, :integer, {:null=>true, :default=>nil})
|
||||
-> 0.0097s
|
||||
== ProjectsContextsRemoveNotNullFromPosition: migrated (0.2232s) =============
|
||||
|
||||
== CreateRecurringTodos: migrating ===========================================
|
||||
-- create_table(:recurring_todos)
|
||||
-> 0.0051s
|
||||
-- add_column(:todos, :recurring_todo_id, :integer)
|
||||
-> 0.0245s
|
||||
== CreateRecurringTodos: migrated (0.0297s) ==================================
|
||||
|
||||
== AddSeveralIndexes: migrating ==============================================
|
||||
-- add_index(:taggings, [:taggable_id, :taggable_type])
|
||||
-> 0.0086s
|
||||
-- add_index(:taggings, :tag_id)
|
||||
-> 0.2208s
|
||||
-- add_index(:recurring_todos, :user_id)
|
||||
-> 0.0171s
|
||||
-- add_index(:recurring_todos, :state)
|
||||
-> 0.0150s
|
||||
== AddSeveralIndexes: migrated (0.2617s) =====================================
|
||||
|
||||
== AddSmsToPreference: migrating =============================================
|
||||
-- add_column(:preferences, :sms_email, :string)
|
||||
-> 0.0452s
|
||||
-- add_column(:preferences, :sms_context_id, :integer)
|
||||
-> 0.0100s
|
||||
== AddSmsToPreference: migrated (0.0554s) ====================================
|
||||
|
||||
== ChangeDatesToDatetimes: migrating =========================================
|
||||
-- change_column(:todos, :show_from, :datetime)
|
||||
-> 0.0103s
|
||||
-- change_column(:todos, :due, :datetime)
|
||||
-> 0.0111s
|
||||
-- change_column(:recurring_todos, :start_from, :datetime)
|
||||
-> 0.0329s
|
||||
-- change_column(:recurring_todos, :end_date, :datetime)
|
||||
-> 0.0100s
|
||||
== ChangeDatesToDatetimes: migrated (0.1023s) ================================
|
||||
|
||||
== AddUpdatedAtToTodos: migrating ============================================
|
||||
-- add_column(:todos, :updated_at, :timestamp)
|
||||
-> 0.1827s
|
||||
-- execute("update todos set updated_at = created_at where completed_at IS NULL")
|
||||
-> 0.0005s
|
||||
-- execute("update todos set updated_at = completed_at where NOT (completed_at IS NULL)")
|
||||
-> 0.0004s
|
||||
== AddUpdatedAtToTodos: migrated (0.1837s) ===================================
|
||||
|
||||
== UpgradeOpenId: migrating ==================================================
|
||||
-- create_table(:open_id_authentication_associations, {:force=>true})
|
||||
-> 0.0054s
|
||||
-- create_table(:open_id_authentication_nonces, {:force=>true})
|
||||
-> 0.0044s
|
||||
-- drop_table(:open_id_associations)
|
||||
-> 0.0017s
|
||||
-- drop_table(:open_id_nonces)
|
||||
-> 0.0024s
|
||||
-- drop_table(:open_id_settings)
|
||||
-> 0.0015s
|
||||
== UpgradeOpenId: migrated (0.0156s) =========================================
|
||||
|
||||
== RemoveUserFromTaggings: migrating =========================================
|
||||
-- remove_index(:taggings, [:tag_id, :taggable_id, :taggable_type])
|
||||
-> 0.0083s
|
||||
-- remove_index(:tags, :name)
|
||||
-> 0.0073s
|
||||
-- remove_column(:taggings, :user_id)
|
||||
-> 0.0072s
|
||||
-- add_index(:tags, :name)
|
||||
-> 0.1684s
|
||||
-- add_index(:taggings, [:tag_id, :taggable_id, :taggable_type])
|
||||
-> 0.0405s
|
||||
== RemoveUserFromTaggings: migrated (0.2321s) ================================
|
||||
|
||||
== FixIncorrectlyHiddenTodos: migrating ======================================
|
||||
== FixIncorrectlyHiddenTodos: migrated (0.0545s) =============================
|
||||
|
||||
== AddDefaultTagsToProject: migrating ========================================
|
||||
-- add_column(:projects, :default_tags, :string)
|
||||
-> 0.0093s
|
||||
== AddDefaultTagsToProject: migrated (0.0093s) ===============================
|
||||
|
||||
== AddTodoDependencies: migrating ============================================
|
||||
-- create_table(:dependencies)
|
||||
-> 0.0038s
|
||||
== AddTodoDependencies: migrated (0.0038s) ===================================
|
||||
|
||||
== AddShowAlwaysToRecurringTodo: migrating ===================================
|
||||
-- add_column(:recurring_todos, :show_always, :boolean)
|
||||
-> 0.0277s
|
||||
== AddShowAlwaysToRecurringTodo: migrated (0.0422s) ==========================
|
||||
|
||||
== AddIndexToTodoState: migrating ============================================
|
||||
-- add_index(:todos, :state)
|
||||
-> 0.0104s
|
||||
== AddIndexToTodoState: migrated (0.0105s) ===================================
|
||||
|
||||
== AddLocaleToPreference: migrating ==========================================
|
||||
-- add_column(:preferences, :locale, :string)
|
||||
-> 0.1439s
|
||||
== AddLocaleToPreference: migrated (0.1439s) =================================
|
||||
|
||||
== AdaptToNewAasm: migrating =================================================
|
||||
-- change_column_default(:todos, :state, nil)
|
||||
-> 0.0044s
|
||||
-- change_column_default(:projects, :state, nil)
|
||||
-> 0.0044s
|
||||
-- change_column_default(:recurring_todos, :state, nil)
|
||||
-> 0.0048s
|
||||
== AdaptToNewAasm: migrated (0.0137s) ========================================
|
||||
|
||||
== MakeOldRecurringTodosValidate: migrating ==================================
|
||||
== MakeOldRecurringTodosValidate: migrated (0.0008s) =========================
|
||||
|
||||
== ChangeCryptedPasswordLength: migrating ====================================
|
||||
-- change_column("users", "crypted_password", :string, {:limit=>60})
|
||||
-> 0.0084s
|
||||
== ChangeCryptedPasswordLength: migrated (0.0086s) ===========================
|
||||
|
||||
== AddLastReviewedToProject: migrating =======================================
|
||||
-- add_column(:projects, :last_reviewed, :timestamp)
|
||||
-> 0.0287s
|
||||
-- execute("UPDATE projects SET last_reviewed = created_at WHERE last_reviewed IS NULL")
|
||||
-> 0.0002s
|
||||
== AddLastReviewedToProject: migrated (0.0290s) ==============================
|
||||
|
||||
== AddNextReviewPreferences: migrating =======================================
|
||||
-- add_column(:preferences, :review_period, :integer, {:default=>14, :null=>false})
|
||||
-> 0.0082s
|
||||
== AddNextReviewPreferences: migrated (0.0083s) ==============================
|
||||
|
||||
== AddIndicesToDependencyTable: migrating ====================================
|
||||
-- add_index(:dependencies, :successor_id)
|
||||
-> 0.0079s
|
||||
-- add_index(:dependencies, :predecessor_id)
|
||||
-> 0.0676s
|
||||
-- add_index(:projects, :state)
|
||||
-> 0.1340s
|
||||
-- add_index(:projects, [:user_id, :state])
|
||||
-> 0.0423s
|
||||
== AddIndicesToDependencyTable: migrated (0.2522s) ===========================
|
||||
|
||||
== AddRenderedNotes: migrating ===============================================
|
||||
-- add_column(:todos, "rendered_notes", :text)
|
||||
-> 0.0086s
|
||||
-- Clearing show_from dates from completed todos
|
||||
-- Generating new column values from notes. This may take a while.
|
||||
-- Done: 0 / 0
|
||||
== AddRenderedNotes: migrated (0.0121s) ======================================
|
||||
|
||||
== CreateTolkTables: migrating ===============================================
|
||||
-- create_table(:tolk_locales)
|
||||
-> 0.0030s
|
||||
-- add_index(:tolk_locales, :name, {:unique=>true})
|
||||
-> 0.0077s
|
||||
-- create_table(:tolk_phrases)
|
||||
-> 0.0250s
|
||||
-- create_table(:tolk_translations)
|
||||
-> 0.0049s
|
||||
-- add_index(:tolk_translations, [:phrase_id, :locale_id], {:unique=>true})
|
||||
-> 0.0079s
|
||||
== CreateTolkTables: migrated (0.0488s) ======================================
|
||||
|
||||
== NoDefaultAdminEmail: migrating ============================================
|
||||
-- remove_column(:preferences, :admin_email)
|
||||
-> 0.0194s
|
||||
== NoDefaultAdminEmail: migrated (0.0195s) ===================================
|
||||
```
|
||||
|
||||
###Precompile Assets
|
||||
$ cd ~/tracks
|
||||
$ rake assets:precompile
|
||||
/home/tracks/.rvm/rubies/ruby-1.9.3-p547/bin/ruby /home/tracks/.rvm/gems/ruby-1.9.3-p547/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets
|
||||
|
||||
###WEBrick
|
||||
Open firewall for Tracks using WEBrick on port 3000 TCP.
|
||||
```
|
||||
$ sudo system-config-firewall-tui
|
||||
$ sudo service iptables status
|
||||
```
|
||||
|
||||
###Start the Server (test)
|
||||
```
|
||||
$ cd ~/tracks
|
||||
$ rails server -e production
|
||||
=> Booting WEBrick
|
||||
=> Rails 3.2.13 application starting in production on http://0.0.0.0:3000
|
||||
=> Call with -d to detach
|
||||
=> Ctrl-C to shutdown server
|
||||
[2014-05-31 14:19:21] INFO WEBrick 1.3.1
|
||||
[2014-05-31 14:19:21] INFO ruby 1.9.3 (2014-05-14) [x86_64-linux]
|
||||
[2014-05-31 14:19:21] INFO WEBrick::HTTPServer#start: pid=3521 port=3000
|
||||
```
|
||||
|
||||
###Success?
|
||||
If the server failed to start, review logs and/or the instructions above. If server started successfully, ctrl+c to shutdown Tracks and continue the installation.
|
||||
|
||||
##Apache
|
||||
Update the tracks user directory in preparation for passenger.
|
||||
```
|
||||
$ sudo chmod o+x /home/tracks
|
||||
```
|
||||
|
||||
Configure Passenger & Apache2
|
||||
```
|
||||
$ passenger-install-apache2-module
|
||||
Welcome to the Phusion Passenger Apache 2 module installer, v4.0.44.
|
||||
|
||||
This installer will guide you through the entire installation process. It
|
||||
shouldn't take more than 3 minutes in total.
|
||||
|
||||
Here's what you can expect from the installation process:
|
||||
|
||||
1. The Apache 2 module will be installed for you.
|
||||
2. You'll learn how to configure Apache.
|
||||
3. You'll learn how to deploy a Ruby on Rails application.
|
||||
|
||||
Don't worry if anything goes wrong. This installer will advise you on how to
|
||||
solve any problems.
|
||||
```
|
||||
|
||||
If you have met the requirements, everything should be green. Accept the defaults to compile which takes quite some time. The installation should complete with the following.
|
||||
```
|
||||
--------------------------------------------
|
||||
Almost there!
|
||||
|
||||
Please edit your Apache configuration file, and add these lines:
|
||||
|
||||
LoadModule passenger_module /home/tracks/.rvm/gems/ruby-1.9.3-p547/gems/passenger-4.0.44/buildout/apache2/mod_passenger.so
|
||||
<IfModule mod_passenger.c>
|
||||
PassengerRoot /home/tracks/.rvm/gems/ruby-1.9.3-p547/gems/passenger-4.0.44
|
||||
PassengerDefaultRuby /home/tracks/.rvm/gems/ruby-1.9.3-p547/wrappers/ruby
|
||||
</IfModule>
|
||||
|
||||
After you restart Apache, you are ready to deploy any number of web
|
||||
applications on Apache, with a minimum amount of configuration!
|
||||
|
||||
Press ENTER to continue.
|
||||
|
||||
--------------------------------------------
|
||||
|
||||
Deploying a web application: an example
|
||||
|
||||
Suppose you have a web application in /somewhere. Add a virtual host to your
|
||||
Apache configuration file and set its DocumentRoot to /somewhere/public:
|
||||
|
||||
<VirtualHost *:80>
|
||||
ServerName www.yourhost.com
|
||||
# !!! Be sure to point DocumentRoot to 'public'!
|
||||
DocumentRoot /somewhere/public
|
||||
<Directory /somewhere/public>
|
||||
# This relaxes Apache security settings.
|
||||
AllowOverride all
|
||||
# MultiViews must be turned off.
|
||||
Options -MultiViews
|
||||
# Uncomment this if you're on Apache >= 2.4:
|
||||
#Require all granted
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
|
||||
And that's it! You may also want to check the Users Guide for security and
|
||||
optimization tips, troubleshooting and other useful information:
|
||||
|
||||
/home/tracks/.rvm/gems/ruby-1.9.3-p547/gems/passenger-4.0.44/doc/Users guide Apache.html
|
||||
http://www.modrails.com/documentation/Users%20guide%20Apache.html
|
||||
|
||||
Enjoy Phusion Passenger, a product of Phusion (www.phusion.nl) :-)
|
||||
https://www.phusionpassenger.com
|
||||
|
||||
Phusion Passenger is a trademark of Hongli Lai & Ninh Bui.
|
||||
```
|
||||
|
||||
Create Passenger module conf file and copy and paste.
|
||||
```
|
||||
$ sudo vi /etc/httpd/conf.d/passenger.conf
|
||||
```
|
||||
|
||||
Copy and paste the following:
|
||||
```
|
||||
LoadModule passenger_module /home/tracks/.rvm/gems/ruby-1.9.3-p547/gems/passenger-4.0.44/buildout/apache2/mod_passenger.so
|
||||
<IfModule mod_passenger.c>
|
||||
PassengerRoot /home/tracks/.rvm/gems/ruby-1.9.3-p547/gems/passenger-4.0.44
|
||||
PassengerDefaultRuby /home/tracks/.rvm/gems/ruby-1.9.3-p547/wrappers/ruby
|
||||
PassengerDefaultUser apache
|
||||
</IfModule>
|
||||
```
|
||||
|
||||
Update apache conf file.
|
||||
```
|
||||
$ sudo cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak
|
||||
$ sudo vi /etc/httpd/conf/httpd.conf
|
||||
```
|
||||
|
||||
At the bottom of the file, add the following:
|
||||
```
|
||||
<VirtualHost *:80>
|
||||
ServerName www.somedomain.com
|
||||
# !!! Be sure to point DocumentRoot to 'public'!
|
||||
DocumentRoot /home/tracks/tracks/public
|
||||
<Directory /home/tracks/tracks/public>
|
||||
# This relaxes Apache security settings.
|
||||
AllowOverride all
|
||||
# MultiViews must be turned off.
|
||||
Options -MultiViews
|
||||
# Uncomment this if you're on Apache >= 2.4:
|
||||
#Require all granted
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
```
|
||||
|
||||
Configure SELinux by configuring 'SELINUX' to 'permissive'
|
||||
```
|
||||
$ sudo vi /etc/selinux/conf
|
||||
```
|
||||
|
||||
Then for this session set SELinux to be permissive
|
||||
```
|
||||
$ sudo setenforce 0
|
||||
```
|
||||
|
||||
Once Tracks installation is complete, you can create a SELinux module. See the section titled "SELINUX" below for instructions.
|
||||
|
||||
Open firewall for Apache by 'customizing' and permitting http or web traffic (80 TCP). You may, also, remove the previous rule for port 3000 TCP.
|
||||
```
|
||||
$ sudo system-config-firewall-tui
|
||||
```
|
||||
|
||||
Verify changes using:
|
||||
```
|
||||
$ sudo service iptables status
|
||||
```
|
||||
|
||||
Validate Apache operations by starting the httpd service then using a browser, verify, you are prompted to set admin credentials for Tracks.
|
||||
```
|
||||
$ sudo service httpd start
|
||||
```
|
||||
|
||||
Configure Apache to start at boot.
|
||||
```
|
||||
$ sudo chkconfig httpd on
|
||||
```
|
||||
|
||||
Update config.serve_static_assets variable to false.
|
||||
```
|
||||
$ vi environments/production.rb
|
||||
```
|
||||
|
||||
##Done
|
||||
At this point you are ready to begin using Tracks.
|
||||
|
||||
The basic process is as follows:
|
||||
Create contexts, i.e. work, home, gym, etc.
|
||||
Create projects and specify context.
|
||||
Create actons specifying context and project.
|
||||
|
||||
Alternatively, You can simply create an action specifying a new context and project. Tracks will auto-create them. For example, create an action to 'replace toilet seal' and specify context 'home' and project 'bathroom remodel.'
|
||||
|
||||
;) Enjoy!
|
||||
Loading…
Add table
Add a link
Reference in a new issue