summaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/database.yml4
-rw-r--r--config/deploy.rb57
-rw-r--r--config/deploy/production.rb62
-rw-r--r--config/deploy/staging.rb61
-rw-r--r--config/environments/production.rb2
5 files changed, 182 insertions, 4 deletions
diff --git a/config/database.yml b/config/database.yml
index b7be9d6..bf858ca 100644
--- a/config/database.yml
+++ b/config/database.yml
@@ -81,9 +81,5 @@ test:
#
production:
<<: *default
- host: <%= ENV["ESOTERRA_DATABASE_HOST"] %>
- port: <%= ENV["ESOTERRA_DATABASE_PORT"] %>
- database: <%= ENV["ESOTERRA_DATABASE_NAME"] %>
username: <%= ENV["ESOTERRA_DATABASE_USERNAME"] %>
password: <%= ENV["ESOTERRA_DATABASE_PASSWORD"] %>
- sslmode: "require"
diff --git a/config/deploy.rb b/config/deploy.rb
new file mode 100644
index 0000000..8384427
--- /dev/null
+++ b/config/deploy.rb
@@ -0,0 +1,57 @@
+# config valid for current version and patch releases of Capistrano
+lock "~> 3.16.0"
+
+set :application, "esoterra"
+set :repo_url, "https://#{ENV['GITHUB_OAUTH']}:@github.com/dtgay/esoterra.git"
+set :user, "rails"
+
+set :branch, "main"
+
+set :deploy_to, "/home/#{fetch :user}/#{fetch :application}"
+
+append :linked_dirs, "log", "tmp/pids", "tmp/cache", "tmp/sockets", "vendor/bundle", ".bundle",
+ "public/system", "public/uploads", ".bundle"
+
+append :linked_files, "config/database.yml", "config/master.key"
+
+set :keep_assets, 2
+set :keep_releases, 5
+
+set :rvm_custom_path, "/usr/share/rvm" # Needed for DO one-click Rails install setup
+
+# upload master.key and database.yml
+namespace :deploy do
+ namespace :check do
+ before :linked_files, :copy_linked_files_if_needed do
+ on roles(:app), in: :sequence, wait: 10 do
+ %w{master.key database.yml}.each do |config_filename|
+ unless test("[ -f #{shared_path}/config/#{config_filename} ]")
+ upload! "config/#{config_filename}", "#{shared_path}/config/#{config_filename}"
+ end
+ end
+ end
+ end
+ end
+end
+
+# Default branch is :master
+# ask :branch, `git rev-parse --abbrev-ref HEAD`.chomp
+
+# Default value for :format is :airbrussh.
+# set :format, :airbrussh
+
+# You can configure the Airbrussh format using :format_options.
+# These are the defaults.
+# set :format_options, command_output: true, log_file: "log/capistrano.log", color: :auto, truncate: :auto
+
+# Default value for :pty is false
+# set :pty, true
+
+# Default value for default_env is {}
+# set :default_env, { path: "/opt/ruby/bin:$PATH" }
+
+# Default value for local_user is ENV['USER']
+# set :local_user, -> { `git config user.name`.chomp }
+
+# Uncomment the following to require manually verifying the host key before first deploy.
+# set :ssh_options, verify_host_key: :secure
diff --git a/config/deploy/production.rb b/config/deploy/production.rb
new file mode 100644
index 0000000..b526c90
--- /dev/null
+++ b/config/deploy/production.rb
@@ -0,0 +1,62 @@
+# server-based syntax
+# ======================
+# Defines a single server with a list of roles and multiple properties.
+# You can define all roles on a single server, or split them:
+
+# server "example.com", user: "deploy", roles: %w{app db web}, my_property: :my_value
+# server "example.com", user: "deploy", roles: %w{app web}, other_property: :other_value
+# server "db.example.com", user: "deploy", roles: %w{db}
+
+
+server "playesoterra.com", user: "rails", roles: %w{app db web}
+
+# role-based syntax
+# ==================
+
+# Defines a role with one or multiple servers. The primary server in each
+# group is considered to be the first unless any hosts have the primary
+# property set. Specify the username and a domain or IP for the server.
+# Don't use `:all`, it's a meta role.
+
+# role :app, %w{deploy@example.com}, my_property: :my_value
+# role :web, %w{user1@primary.com user2@additional.com}, other_property: :other_value
+# role :db, %w{deploy@example.com}
+
+
+
+# Configuration
+# =============
+# You can set any configuration variable like in config/deploy.rb
+# These variables are then only loaded and set in this stage.
+# For available Capistrano configuration variables see the documentation page.
+# http://capistranorb.com/documentation/getting-started/configuration/
+# Feel free to add new variables to customise your setup.
+
+
+
+# Custom SSH Options
+# ==================
+# You may pass any option but keep in mind that net/ssh understands a
+# limited set of options, consult the Net::SSH documentation.
+# http://net-ssh.github.io/net-ssh/classes/Net/SSH.html#method-c-start
+#
+# Global options
+# --------------
+# set :ssh_options, {
+# keys: %w(/home/user_name/.ssh/id_rsa),
+# forward_agent: false,
+# auth_methods: %w(password)
+# }
+#
+# The server-based syntax can be used to override options:
+# ------------------------------------
+# server "example.com",
+# user: "user_name",
+# roles: %w{web app},
+# ssh_options: {
+# user: "user_name", # overrides user setting above
+# keys: %w(/home/user_name/.ssh/id_rsa),
+# forward_agent: false,
+# auth_methods: %w(publickey password)
+# # password: "please use keys"
+# }
diff --git a/config/deploy/staging.rb b/config/deploy/staging.rb
new file mode 100644
index 0000000..0a3f086
--- /dev/null
+++ b/config/deploy/staging.rb
@@ -0,0 +1,61 @@
+# server-based syntax
+# ======================
+# Defines a single server with a list of roles and multiple properties.
+# You can define all roles on a single server, or split them:
+
+# server "example.com", user: "deploy", roles: %w{app db web}, my_property: :my_value
+# server "example.com", user: "deploy", roles: %w{app web}, other_property: :other_value
+# server "db.example.com", user: "deploy", roles: %w{db}
+
+
+
+# role-based syntax
+# ==================
+
+# Defines a role with one or multiple servers. The primary server in each
+# group is considered to be the first unless any hosts have the primary
+# property set. Specify the username and a domain or IP for the server.
+# Don't use `:all`, it's a meta role.
+
+# role :app, %w{deploy@example.com}, my_property: :my_value
+# role :web, %w{user1@primary.com user2@additional.com}, other_property: :other_value
+# role :db, %w{deploy@example.com}
+
+
+
+# Configuration
+# =============
+# You can set any configuration variable like in config/deploy.rb
+# These variables are then only loaded and set in this stage.
+# For available Capistrano configuration variables see the documentation page.
+# http://capistranorb.com/documentation/getting-started/configuration/
+# Feel free to add new variables to customise your setup.
+
+
+
+# Custom SSH Options
+# ==================
+# You may pass any option but keep in mind that net/ssh understands a
+# limited set of options, consult the Net::SSH documentation.
+# http://net-ssh.github.io/net-ssh/classes/Net/SSH.html#method-c-start
+#
+# Global options
+# --------------
+# set :ssh_options, {
+# keys: %w(/home/user_name/.ssh/id_rsa),
+# forward_agent: false,
+# auth_methods: %w(password)
+# }
+#
+# The server-based syntax can be used to override options:
+# ------------------------------------
+# server "example.com",
+# user: "user_name",
+# roles: %w{web app},
+# ssh_options: {
+# user: "user_name", # overrides user setting above
+# keys: %w(/home/user_name/.ssh/id_rsa),
+# forward_agent: false,
+# auth_methods: %w(publickey password)
+# # password: "please use keys"
+# }
diff --git a/config/environments/production.rb b/config/environments/production.rb
index ba79845..beef772 100644
--- a/config/environments/production.rb
+++ b/config/environments/production.rb
@@ -117,4 +117,6 @@ Rails.application.configure do
# config.active_record.database_selector = { delay: 2.seconds }
# config.active_record.database_resolver = ActiveRecord::Middleware::DatabaseSelector::Resolver
# config.active_record.database_resolver_context = ActiveRecord::Middleware::DatabaseSelector::Resolver::Session
+
+ config.hosts << "playesoterra.com"
end