Class: Dash::Configuration::Proxy::Boot
- Inherits:
-
Object
- Object
- Dash::Configuration::Proxy::Boot
- Defined in:
- lib/dash/configuration/proxy/boot.rb
Instance Attribute Summary collapse
-
#config ⇒ Object
readonly
Returns the value of attribute config.
Instance Method Summary collapse
- #app_container_directory ⇒ Object
- #app_directory ⇒ Object
- #apps_container_directory ⇒ Object
- #apps_directory ⇒ Object
- #apps_volume ⇒ Object
-
#container_name ⇒ Object
Stays kamal-proxy until the server-artifact rename ships a migration bridge — every deployed host has a running container by this name.
- #default_boot_options ⇒ Object
- #error_pages_container_directory ⇒ Object
- #error_pages_directory ⇒ Object
- #host_directory ⇒ Object
- #image_default ⇒ Object
- #image_file ⇒ Object
- #image_name ⇒ Object
- #image_version_file ⇒ Object
-
#initialize(config:) ⇒ Boot
constructor
A new instance of Boot.
- #logging_args(max_size) ⇒ Object
- #options_file ⇒ Object
- #publish_args(http_port, https_port, bind_ips = nil) ⇒ Object
- #repository_name ⇒ Object
- #run_command_file ⇒ Object
- #tls_container_directory ⇒ Object
- #tls_directory ⇒ Object
Constructor Details
#initialize(config:) ⇒ Boot
Returns a new instance of Boot.
5 6 7 |
# File 'lib/dash/configuration/proxy/boot.rb', line 5 def initialize(config:) @config = config end |
Instance Attribute Details
#config ⇒ Object (readonly)
Returns the value of attribute config.
2 3 4 |
# File 'lib/dash/configuration/proxy/boot.rb', line 2 def config @config end |
Instance Method Details
#app_container_directory ⇒ Object
88 89 90 |
# File 'lib/dash/configuration/proxy/boot.rb', line 88 def app_container_directory File.join apps_container_directory, config.service_and_destination end |
#app_directory ⇒ Object
84 85 86 |
# File 'lib/dash/configuration/proxy/boot.rb', line 84 def app_directory File.join apps_directory, config.service_and_destination end |
#apps_container_directory ⇒ Object
74 75 76 |
# File 'lib/dash/configuration/proxy/boot.rb', line 74 def apps_container_directory "/home/kamal-proxy/.apps-config" end |
#apps_directory ⇒ Object
70 71 72 |
# File 'lib/dash/configuration/proxy/boot.rb', line 70 def apps_directory File.join host_directory, "apps-config" end |
#apps_volume ⇒ Object
78 79 80 81 82 |
# File 'lib/dash/configuration/proxy/boot.rb', line 78 def apps_volume Dash::Configuration::Volume.new \ host_path: apps_directory, container_path: apps_container_directory end |
#container_name ⇒ Object
Stays kamal-proxy until the server-artifact rename ships a migration bridge — every deployed host has a running container by this name.
46 47 48 |
# File 'lib/dash/configuration/proxy/boot.rb', line 46 def container_name "kamal-proxy" end |
#default_boot_options ⇒ Object
25 26 27 28 29 30 |
# File 'lib/dash/configuration/proxy/boot.rb', line 25 def [ *(publish_args(Dash::Configuration::Proxy::Run::DEFAULT_HTTP_PORT, Dash::Configuration::Proxy::Run::DEFAULT_HTTPS_PORT, nil)), *(logging_args(Dash::Configuration::Proxy::Run::DEFAULT_LOG_MAX_SIZE)) ] end |
#error_pages_container_directory ⇒ Object
96 97 98 |
# File 'lib/dash/configuration/proxy/boot.rb', line 96 def error_pages_container_directory File.join app_container_directory, "error_pages" end |
#error_pages_directory ⇒ Object
92 93 94 |
# File 'lib/dash/configuration/proxy/boot.rb', line 92 def error_pages_directory File.join app_directory, "error_pages" end |
#host_directory ⇒ Object
50 51 52 |
# File 'lib/dash/configuration/proxy/boot.rb', line 50 def host_directory File.join config.run_directory, "proxy" end |
#image_default ⇒ Object
40 41 42 |
# File 'lib/dash/configuration/proxy/boot.rb', line 40 def image_default "#{repository_name}/#{image_name}" end |
#image_file ⇒ Object
58 59 60 |
# File 'lib/dash/configuration/proxy/boot.rb', line 58 def image_file File.join host_directory, "image" end |
#image_name ⇒ Object
36 37 38 |
# File 'lib/dash/configuration/proxy/boot.rb', line 36 def image_name "dash-proxy" end |
#image_version_file ⇒ Object
62 63 64 |
# File 'lib/dash/configuration/proxy/boot.rb', line 62 def image_version_file File.join host_directory, "image_version" end |
#logging_args(max_size) ⇒ Object
21 22 23 |
# File 'lib/dash/configuration/proxy/boot.rb', line 21 def logging_args(max_size) argumentize "--log-opt", "max-size=#{max_size}" if max_size.present? end |
#options_file ⇒ Object
54 55 56 |
# File 'lib/dash/configuration/proxy/boot.rb', line 54 def File.join host_directory, "options" end |
#publish_args(http_port, https_port, bind_ips = nil) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/dash/configuration/proxy/boot.rb', line 9 def publish_args(http_port, https_port, bind_ips = nil) ensure_valid_bind_ips(bind_ips) (bind_ips || [ nil ]).map do |bind_ip| bind_ip = format_bind_ip(bind_ip) publish_http = [ bind_ip, http_port, Dash::Configuration::Proxy::Run::DEFAULT_HTTP_PORT ].compact.join(":") publish_https = [ bind_ip, https_port, Dash::Configuration::Proxy::Run::DEFAULT_HTTPS_PORT ].compact.join(":") argumentize "--publish", [ publish_http, publish_https ] end.join(" ") end |
#repository_name ⇒ Object
32 33 34 |
# File 'lib/dash/configuration/proxy/boot.rb', line 32 def repository_name "ghcr.io/zoolutions" end |
#run_command_file ⇒ Object
66 67 68 |
# File 'lib/dash/configuration/proxy/boot.rb', line 66 def run_command_file File.join host_directory, "run_command" end |
#tls_container_directory ⇒ Object
104 105 106 |
# File 'lib/dash/configuration/proxy/boot.rb', line 104 def tls_container_directory File.join app_container_directory, "tls" end |
#tls_directory ⇒ Object
100 101 102 |
# File 'lib/dash/configuration/proxy/boot.rb', line 100 def tls_directory File.join app_directory, "tls" end |