diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | Capfile | 19 | ||||
-rw-r--r-- | Gemfile | 11 | ||||
-rw-r--r-- | Gemfile.lock | 31 | ||||
-rw-r--r-- | config/database.yml | 25 | ||||
-rw-r--r-- | config/deploy.rb | 43 | ||||
-rw-r--r-- | config/deploy/production.rb | 62 | ||||
-rw-r--r-- | config/deploy/staging.rb | 61 | ||||
-rw-r--r-- | config/initializers/mysql_utf8mb4_fix.rb | 9 | ||||
-rw-r--r-- | db/migrate/20170703013609_convert_to_real_unicode.rb | 8 | ||||
-rw-r--r-- | db/schema.rb | 11 |
11 files changed, 247 insertions, 34 deletions
diff --git a/.gitignore b/.gitignore index dad415a..09230f9 100644 --- a/.gitignore +++ b/.gitignore | |||
@@ -27,3 +27,4 @@ tags | |||
27 | .DS_Store | 27 | .DS_Store |
28 | *.swo | 28 | *.swo |
29 | /public/uploads | 29 | /public/uploads |
30 | config/database.yml | ||
diff --git a/Capfile b/Capfile new file mode 100644 index 0000000..1ace4ce --- /dev/null +++ b/Capfile | |||
@@ -0,0 +1,19 @@ | |||
1 | # Load DSL and set up stages | ||
2 | require "capistrano/setup" | ||
3 | |||
4 | # Include default deployment tasks | ||
5 | require "capistrano/deploy" | ||
6 | |||
7 | # Load the SCM plugin appropriate to your project: | ||
8 | require "capistrano/scm/git" | ||
9 | install_plugin Capistrano::SCM::Git | ||
10 | |||
11 | # Include tasks from other gems included in your Gemfile | ||
12 | require "capistrano/rvm" | ||
13 | require "capistrano/bundler" | ||
14 | require "capistrano/rails/assets" | ||
15 | require "capistrano/rails/migrations" | ||
16 | require "capistrano/passenger" | ||
17 | |||
18 | # Load custom tasks from `lib/capistrano/tasks` if you have any defined | ||
19 | Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r } | ||
diff --git a/Gemfile b/Gemfile index 69deff3..878e00c 100644 --- a/Gemfile +++ b/Gemfile | |||
@@ -30,9 +30,6 @@ gem 'jbuilder', '~> 2.5' | |||
30 | # Use ActiveModel has_secure_password | 30 | # Use ActiveModel has_secure_password |
31 | # gem 'bcrypt', '~> 3.1.7' | 31 | # gem 'bcrypt', '~> 3.1.7' |
32 | 32 | ||
33 | # Use Capistrano for deployment | ||
34 | # gem 'capistrano-rails', group: :development | ||
35 | |||
36 | group :development, :test do | 33 | group :development, :test do |
37 | # Call 'byebug' anywhere in the code to stop execution and get a debugger console | 34 | # Call 'byebug' anywhere in the code to stop execution and get a debugger console |
38 | gem 'byebug', platforms: [:mri, :mingw, :x64_mingw] | 35 | gem 'byebug', platforms: [:mri, :mingw, :x64_mingw] |
@@ -48,6 +45,14 @@ group :development do | |||
48 | # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring | 45 | # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring |
49 | gem 'spring' | 46 | gem 'spring' |
50 | gem 'spring-watcher-listen', '~> 2.0.0' | 47 | gem 'spring-watcher-listen', '~> 2.0.0' |
48 | |||
49 | # Use Capistrano for deployment | ||
50 | gem 'capistrano', '~> 3.0', require: false | ||
51 | gem 'capistrano-rvm', require: false | ||
52 | gem 'capistrano-rails', require: false | ||
53 | gem 'capistrano-bundler', require: false | ||
54 | gem 'capistrano-passenger', require: false | ||
55 | gem 'highline', require: false | ||
51 | end | 56 | end |
52 | 57 | ||
53 | # Windows does not include zoneinfo files, so bundle the tzinfo-data gem | 58 | # Windows does not include zoneinfo files, so bundle the tzinfo-data gem |
diff --git a/Gemfile.lock b/Gemfile.lock index 857547f..6058aa8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock | |||
@@ -40,11 +40,29 @@ GEM | |||
40 | tzinfo (~> 1.1) | 40 | tzinfo (~> 1.1) |
41 | addressable (2.5.1) | 41 | addressable (2.5.1) |
42 | public_suffix (~> 2.0, >= 2.0.2) | 42 | public_suffix (~> 2.0, >= 2.0.2) |
43 | airbrussh (1.2.0) | ||
44 | sshkit (>= 1.6.1, != 1.7.0) | ||
43 | arel (8.0.0) | 45 | arel (8.0.0) |
44 | bcrypt (3.1.11) | 46 | bcrypt (3.1.11) |
45 | bindex (0.5.0) | 47 | bindex (0.5.0) |
46 | builder (3.2.3) | 48 | builder (3.2.3) |
47 | byebug (9.0.6) | 49 | byebug (9.0.6) |
50 | capistrano (3.8.1) | ||
51 | airbrussh (>= 1.0.0) | ||
52 | i18n | ||
53 | rake (>= 10.0.0) | ||
54 | sshkit (>= 1.9.0) | ||
55 | capistrano-bundler (1.2.0) | ||
56 | capistrano (~> 3.1) | ||
57 | sshkit (~> 1.2) | ||
58 | capistrano-passenger (0.2.0) | ||
59 | capistrano (~> 3.0) | ||
60 | capistrano-rails (1.2.3) | ||
61 | capistrano (~> 3.1) | ||
62 | capistrano-bundler (~> 1.1) | ||
63 | capistrano-rvm (0.1.2) | ||
64 | capistrano (~> 3.0) | ||
65 | sshkit (~> 1.2) | ||
48 | capybara (2.14.3) | 66 | capybara (2.14.3) |
49 | addressable | 67 | addressable |
50 | mime-types (>= 1.16) | 68 | mime-types (>= 1.16) |
@@ -82,6 +100,7 @@ GEM | |||
82 | haml (5.0.1) | 100 | haml (5.0.1) |
83 | temple (>= 0.8.0) | 101 | temple (>= 0.8.0) |
84 | tilt | 102 | tilt |
103 | highline (1.7.8) | ||
85 | i18n (0.8.4) | 104 | i18n (0.8.4) |
86 | jbuilder (2.7.0) | 105 | jbuilder (2.7.0) |
87 | activesupport (>= 4.2.0) | 106 | activesupport (>= 4.2.0) |
@@ -106,6 +125,9 @@ GEM | |||
106 | mini_portile2 (2.2.0) | 125 | mini_portile2 (2.2.0) |
107 | minitest (5.10.2) | 126 | minitest (5.10.2) |
108 | multi_json (1.12.1) | 127 | multi_json (1.12.1) |
128 | net-scp (1.2.1) | ||
129 | net-ssh (>= 2.6.5) | ||
130 | net-ssh (4.1.0) | ||
109 | nio4r (2.1.0) | 131 | nio4r (2.1.0) |
110 | nokogiri (1.8.0) | 132 | nokogiri (1.8.0) |
111 | mini_portile2 (~> 2.2.0) | 133 | mini_portile2 (~> 2.2.0) |
@@ -177,6 +199,9 @@ GEM | |||
177 | activesupport (>= 4.0) | 199 | activesupport (>= 4.0) |
178 | sprockets (>= 3.0.0) | 200 | sprockets (>= 3.0.0) |
179 | sqlite3 (1.3.13) | 201 | sqlite3 (1.3.13) |
202 | sshkit (1.13.1) | ||
203 | net-scp (>= 1.1.2) | ||
204 | net-ssh (>= 2.8.0) | ||
180 | temple (0.8.0) | 205 | temple (0.8.0) |
181 | thor (0.19.4) | 206 | thor (0.19.4) |
182 | thread_safe (0.3.6) | 207 | thread_safe (0.3.6) |
@@ -206,11 +231,17 @@ PLATFORMS | |||
206 | 231 | ||
207 | DEPENDENCIES | 232 | DEPENDENCIES |
208 | byebug | 233 | byebug |
234 | capistrano (~> 3.0) | ||
235 | capistrano-bundler | ||
236 | capistrano-passenger | ||
237 | capistrano-rails | ||
238 | capistrano-rvm | ||
209 | capybara (~> 2.13) | 239 | capybara (~> 2.13) |
210 | ckeditor | 240 | ckeditor |
211 | coffee-rails (~> 4.2) | 241 | coffee-rails (~> 4.2) |
212 | devise | 242 | devise |
213 | haml | 243 | haml |
244 | highline | ||
214 | jbuilder (~> 2.5) | 245 | jbuilder (~> 2.5) |
215 | jquery-rails | 246 | jquery-rails |
216 | listen (>= 3.0.5, < 3.2) | 247 | listen (>= 3.0.5, < 3.2) |
diff --git a/config/database.yml b/config/database.yml deleted file mode 100644 index 0d02f24..0000000 --- a/config/database.yml +++ /dev/null | |||
@@ -1,25 +0,0 @@ | |||
1 | # SQLite version 3.x | ||
2 | # gem install sqlite3 | ||
3 | # | ||
4 | # Ensure the SQLite 3 gem is defined in your Gemfile | ||
5 | # gem 'sqlite3' | ||
6 | # | ||
7 | default: &default | ||
8 | adapter: sqlite3 | ||
9 | pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> | ||
10 | timeout: 5000 | ||
11 | |||
12 | development: | ||
13 | <<: *default | ||
14 | database: db/development.sqlite3 | ||
15 | |||
16 | # Warning: The database defined as "test" will be erased and | ||
17 | # re-generated from your development database when you run "rake". | ||
18 | # Do not set this db to the same as development or production. | ||
19 | test: | ||
20 | <<: *default | ||
21 | database: db/test.sqlite3 | ||
22 | |||
23 | production: | ||
24 | <<: *default | ||
25 | database: db/production.sqlite3 | ||
diff --git a/config/deploy.rb b/config/deploy.rb new file mode 100644 index 0000000..16c6257 --- /dev/null +++ b/config/deploy.rb | |||
@@ -0,0 +1,43 @@ | |||
1 | # config valid only for current version of Capistrano | ||
2 | lock "3.8.1" | ||
3 | |||
4 | set :application, "thoughts" | ||
5 | set :repo_url, "git@github.com:hatkirby/thoughts.git" | ||
6 | |||
7 | # Default branch is :master | ||
8 | # ask :branch, `git rev-parse --abbrev-ref HEAD`.chomp | ||
9 | |||
10 | # Default deploy_to directory is /var/www/my_app_name | ||
11 | set :deploy_to, "/srv/www/thoughts" | ||
12 | |||
13 | # Default value for :format is :airbrussh. | ||
14 | # set :format, :airbrussh | ||
15 | |||
16 | # You can configure the Airbrussh format using :format_options. | ||
17 | # These are the defaults. | ||
18 | # set :format_options, command_output: true, log_file: "log/capistrano.log", color: :auto, truncate: :auto | ||
19 | |||
20 | # Default value for :pty is false | ||
21 | # set :pty, true | ||
22 | |||
23 | # Default value for :linked_files is [] | ||
24 | append :linked_files, "config/database.yml" | ||
25 | |||
26 | # Default value for linked_dirs is [] | ||
27 | append :linked_dirs, "log", "tmp/pids", "tmp/cache", "tmp/sockets", "public/uploads" | ||
28 | |||
29 | # Default value for default_env is {} | ||
30 | # set :default_env, { path: "/opt/ruby/bin:$PATH" } | ||
31 | |||
32 | # Default value for keep_releases is 5 | ||
33 | # set :keep_releases, 5 | ||
34 | |||
35 | # rvm | ||
36 | set :rvm_type, :system | ||
37 | set :rvm_custom_path, '/usr/local/rvm' | ||
38 | |||
39 | # rails | ||
40 | set :rails_env, 'production' | ||
41 | set :conditionally_migrate, true | ||
42 | set :migration_role, :app | ||
43 | set :assets_roles, [:app] | ||
diff --git a/config/deploy/production.rb b/config/deploy/production.rb new file mode 100644 index 0000000..6475c07 --- /dev/null +++ b/config/deploy/production.rb | |||
@@ -0,0 +1,62 @@ | |||
1 | # server-based syntax | ||
2 | # ====================== | ||
3 | # Defines a single server with a list of roles and multiple properties. | ||
4 | # You can define all roles on a single server, or split them: | ||
5 | |||
6 | # server "example.com", user: "deploy", roles: %w{app db web}, my_property: :my_value | ||
7 | # server "example.com", user: "deploy", roles: %w{app web}, other_property: :other_value | ||
8 | # server "db.example.com", user: "deploy", roles: %w{db} | ||
9 | server "feffernoo.se", user: "thoughts", roles: %w{app db web} | ||
10 | |||
11 | |||
12 | |||
13 | # role-based syntax | ||
14 | # ================== | ||
15 | |||
16 | # Defines a role with one or multiple servers. The primary server in each | ||
17 | # group is considered to be the first unless any hosts have the primary | ||
18 | # property set. Specify the username and a domain or IP for the server. | ||
19 | # Don't use `:all`, it's a meta role. | ||
20 | |||
21 | # role :app, %w{deploy@example.com}, my_property: :my_value | ||
22 | # role :web, %w{user1@primary.com user2@additional.com}, other_property: :other_value | ||
23 | # role :db, %w{deploy@example.com} | ||
24 | |||
25 | |||
26 | |||
27 | # Configuration | ||
28 | # ============= | ||
29 | # You can set any configuration variable like in config/deploy.rb | ||
30 | # These variables are then only loaded and set in this stage. | ||
31 | # For available Capistrano configuration variables see the documentation page. | ||
32 | # http://capistranorb.com/documentation/getting-started/configuration/ | ||
33 | # Feel free to add new variables to customise your setup. | ||
34 | |||
35 | |||
36 | |||
37 | # Custom SSH Options | ||
38 | # ================== | ||
39 | # You may pass any option but keep in mind that net/ssh understands a | ||
40 | # limited set of options, consult the Net::SSH documentation. | ||
41 | # http://net-ssh.github.io/net-ssh/classes/Net/SSH.html#method-c-start | ||
42 | # | ||
43 | # Global options | ||
44 | # -------------- | ||
45 | # set :ssh_options, { | ||
46 | # keys: %w(/home/rlisowski/.ssh/id_rsa), | ||
47 | # forward_agent: false, | ||
48 | # auth_methods: %w(password) | ||
49 | # } | ||
50 | # | ||
51 | # The server-based syntax can be used to override options: | ||
52 | # ------------------------------------ | ||
53 | # server "example.com", | ||
54 | # user: "user_name", | ||
55 | # roles: %w{web app}, | ||
56 | # ssh_options: { | ||
57 | # user: "user_name", # overrides user setting above | ||
58 | # keys: %w(/home/user_name/.ssh/id_rsa), | ||
59 | # forward_agent: false, | ||
60 | # auth_methods: %w(publickey password) | ||
61 | # # password: "please use keys" | ||
62 | # } | ||
diff --git a/config/deploy/staging.rb b/config/deploy/staging.rb new file mode 100644 index 0000000..4bb7a71 --- /dev/null +++ b/config/deploy/staging.rb | |||
@@ -0,0 +1,61 @@ | |||
1 | # server-based syntax | ||
2 | # ====================== | ||
3 | # Defines a single server with a list of roles and multiple properties. | ||
4 | # You can define all roles on a single server, or split them: | ||
5 | |||
6 | # server "example.com", user: "deploy", roles: %w{app db web}, my_property: :my_value | ||
7 | # server "example.com", user: "deploy", roles: %w{app web}, other_property: :other_value | ||
8 | # server "db.example.com", user: "deploy", roles: %w{db} | ||
9 | |||
10 | |||
11 | |||
12 | # role-based syntax | ||
13 | # ================== | ||
14 | |||
15 | # Defines a role with one or multiple servers. The primary server in each | ||
16 | # group is considered to be the first unless any hosts have the primary | ||
17 | # property set. Specify the username and a domain or IP for the server. | ||
18 | # Don't use `:all`, it's a meta role. | ||
19 | |||
20 | # role :app, %w{deploy@example.com}, my_property: :my_value | ||
21 | # role :web, %w{user1@primary.com user2@additional.com}, other_property: :other_value | ||
22 | # role :db, %w{deploy@example.com} | ||
23 | |||
24 | |||
25 | |||
26 | # Configuration | ||
27 | # ============= | ||
28 | # You can set any configuration variable like in config/deploy.rb | ||
29 | # These variables are then only loaded and set in this stage. | ||
30 | # For available Capistrano configuration variables see the documentation page. | ||
31 | # http://capistranorb.com/documentation/getting-started/configuration/ | ||
32 | # Feel free to add new variables to customise your setup. | ||
33 | |||
34 | |||
35 | |||
36 | # Custom SSH Options | ||
37 | # ================== | ||
38 | # You may pass any option but keep in mind that net/ssh understands a | ||
39 | # limited set of options, consult the Net::SSH documentation. | ||
40 | # http://net-ssh.github.io/net-ssh/classes/Net/SSH.html#method-c-start | ||
41 | # | ||
42 | # Global options | ||
43 | # -------------- | ||
44 | # set :ssh_options, { | ||
45 | # keys: %w(/home/rlisowski/.ssh/id_rsa), | ||
46 | # forward_agent: false, | ||
47 | # auth_methods: %w(password) | ||
48 | # } | ||
49 | # | ||
50 | # The server-based syntax can be used to override options: | ||
51 | # ------------------------------------ | ||
52 | # server "example.com", | ||
53 | # user: "user_name", | ||
54 | # roles: %w{web app}, | ||
55 | # ssh_options: { | ||
56 | # user: "user_name", # overrides user setting above | ||
57 | # keys: %w(/home/user_name/.ssh/id_rsa), | ||
58 | # forward_agent: false, | ||
59 | # auth_methods: %w(publickey password) | ||
60 | # # password: "please use keys" | ||
61 | # } | ||
diff --git a/config/initializers/mysql_utf8mb4_fix.rb b/config/initializers/mysql_utf8mb4_fix.rb new file mode 100644 index 0000000..8388027 --- /dev/null +++ b/config/initializers/mysql_utf8mb4_fix.rb | |||
@@ -0,0 +1,9 @@ | |||
1 | require 'active_record/connection_adapters/abstract_mysql_adapter' | ||
2 | |||
3 | module ActiveRecord | ||
4 | module ConnectionAdapters | ||
5 | class AbstractMysqlAdapter | ||
6 | NATIVE_DATABASE_TYPES[:string] = { :name => "varchar", :limit => 191 } | ||
7 | end | ||
8 | end | ||
9 | end | ||
diff --git a/db/migrate/20170703013609_convert_to_real_unicode.rb b/db/migrate/20170703013609_convert_to_real_unicode.rb new file mode 100644 index 0000000..9291c0c --- /dev/null +++ b/db/migrate/20170703013609_convert_to_real_unicode.rb | |||
@@ -0,0 +1,8 @@ | |||
1 | class ConvertToRealUnicode < ActiveRecord::Migration[5.1] | ||
2 | def change | ||
3 | change_column :records, :recordable_type, :string, limit: 191 | ||
4 | change_column :users, :login, :string, default: "", null: false, limit: 191 | ||
5 | change_column :users, :email, :string, default: "", null: false, limit: 191 | ||
6 | change_column :users, :reset_password_token, :string, limit: 191 | ||
7 | end | ||
8 | end | ||
diff --git a/db/schema.rb b/db/schema.rb index c7c82ac..fc6614a 100644 --- a/db/schema.rb +++ b/db/schema.rb | |||
@@ -10,7 +10,7 @@ | |||
10 | # | 10 | # |
11 | # It's strongly recommended that you check this file into your version control system. | 11 | # It's strongly recommended that you check this file into your version control system. |
12 | 12 | ||
13 | ActiveRecord::Schema.define(version: 20170629184901) do | 13 | ActiveRecord::Schema.define(version: 20170703013609) do |
14 | 14 | ||
15 | create_table "ckeditor_assets", force: :cascade do |t| | 15 | create_table "ckeditor_assets", force: :cascade do |t| |
16 | t.string "data_file_name", null: false | 16 | t.string "data_file_name", null: false |
@@ -28,7 +28,6 @@ ActiveRecord::Schema.define(version: 20170629184901) do | |||
28 | create_table "entries", force: :cascade do |t| | 28 | create_table "entries", force: :cascade do |t| |
29 | t.string "title" | 29 | t.string "title" |
30 | t.text "body" | 30 | t.text "body" |
31 | t.string "directory", null: false | ||
32 | t.string "slug", null: false | 31 | t.string "slug", null: false |
33 | t.string "type", null: false | 32 | t.string "type", null: false |
34 | t.datetime "created_at", null: false | 33 | t.datetime "created_at", null: false |
@@ -37,7 +36,7 @@ ActiveRecord::Schema.define(version: 20170629184901) do | |||
37 | 36 | ||
38 | create_table "records", force: :cascade do |t| | 37 | create_table "records", force: :cascade do |t| |
39 | t.text "description" | 38 | t.text "description" |
40 | t.string "recordable_type" | 39 | t.string "recordable_type", limit: 191 |
41 | t.integer "recordable_id" | 40 | t.integer "recordable_id" |
42 | t.datetime "created_at", null: false | 41 | t.datetime "created_at", null: false |
43 | t.datetime "updated_at", null: false | 42 | t.datetime "updated_at", null: false |
@@ -45,10 +44,10 @@ ActiveRecord::Schema.define(version: 20170629184901) do | |||
45 | end | 44 | end |
46 | 45 | ||
47 | create_table "users", force: :cascade do |t| | 46 | create_table "users", force: :cascade do |t| |
48 | t.string "login", default: "", null: false | 47 | t.string "login", limit: 191, default: "", null: false |
49 | t.string "email", default: "", null: false | 48 | t.string "email", limit: 191, default: "", null: false |
50 | t.string "encrypted_password", default: "", null: false | 49 | t.string "encrypted_password", default: "", null: false |
51 | t.string "reset_password_token" | 50 | t.string "reset_password_token", limit: 191 |
52 | t.datetime "reset_password_sent_at" | 51 | t.datetime "reset_password_sent_at" |
53 | t.datetime "remember_created_at" | 52 | t.datetime "remember_created_at" |
54 | t.integer "sign_in_count", default: 0, null: false | 53 | t.integer "sign_in_count", default: 0, null: false |