mirror of
https://github.com/TracksApp/tracks.git
synced 2025-12-16 23:30: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
|
$ passenger -v
|
||||||
Phusion Passenger version 4.0.44
|
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