Class: Kamal::Configuration::Proxy::Boot

Inherits:
Object
  • Object
show all
Defined in:
lib/kamal/configuration/proxy/boot.rb

Constant Summary collapse

MINIMUM_VERSION =
"v0.9.0"
DEFAULT_HTTP_PORT =
80
DEFAULT_HTTPS_PORT =
443
DEFAULT_LOG_MAX_SIZE =
"10m"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config:) ⇒ Boot

Returns a new instance of Boot.



10
11
12
# File 'lib/kamal/configuration/proxy/boot.rb', line 10

def initialize(config:)
  @config = config
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



7
8
9
# File 'lib/kamal/configuration/proxy/boot.rb', line 7

def config
  @config
end

Instance Method Details

#app_container_directoryObject



91
92
93
# File 'lib/kamal/configuration/proxy/boot.rb', line 91

def app_container_directory
  File.join apps_container_directory, config.service_and_destination
end

#app_directoryObject



87
88
89
# File 'lib/kamal/configuration/proxy/boot.rb', line 87

def app_directory
  File.join apps_directory, config.service_and_destination
end

#apps_container_directoryObject



77
78
79
# File 'lib/kamal/configuration/proxy/boot.rb', line 77

def apps_container_directory
  "/home/kamal-proxy/.apps-config"
end

#apps_directoryObject



73
74
75
# File 'lib/kamal/configuration/proxy/boot.rb', line 73

def apps_directory
  File.join host_directory, "apps-config"
end

#apps_volumeObject



81
82
83
84
85
# File 'lib/kamal/configuration/proxy/boot.rb', line 81

def apps_volume
  Kamal::Configuration::Volume.new \
    host_path: apps_directory,
    container_path: apps_container_directory
end

#container_nameObject



49
50
51
# File 'lib/kamal/configuration/proxy/boot.rb', line 49

def container_name
  "kamal-proxy"
end

#default_boot_optionsObject



30
31
32
33
34
35
# File 'lib/kamal/configuration/proxy/boot.rb', line 30

def default_boot_options
  [
    *(publish_args(DEFAULT_HTTP_PORT, DEFAULT_HTTPS_PORT, nil)),
    *(logging_args(DEFAULT_LOG_MAX_SIZE))
  ]
end

#error_pages_container_directoryObject



99
100
101
# File 'lib/kamal/configuration/proxy/boot.rb', line 99

def error_pages_container_directory
  File.join app_container_directory, "error_pages"
end

#error_pages_directoryObject



95
96
97
# File 'lib/kamal/configuration/proxy/boot.rb', line 95

def error_pages_directory
  File.join app_directory, "error_pages"
end

#host_directoryObject



53
54
55
# File 'lib/kamal/configuration/proxy/boot.rb', line 53

def host_directory
  File.join config.run_directory, "proxy"
end

#image_defaultObject



45
46
47
# File 'lib/kamal/configuration/proxy/boot.rb', line 45

def image_default
  "#{repository_name}/#{image_name}"
end

#image_fileObject



61
62
63
# File 'lib/kamal/configuration/proxy/boot.rb', line 61

def image_file
  File.join host_directory, "image"
end

#image_nameObject



41
42
43
# File 'lib/kamal/configuration/proxy/boot.rb', line 41

def image_name
  "kamal-proxy"
end

#image_version_fileObject



65
66
67
# File 'lib/kamal/configuration/proxy/boot.rb', line 65

def image_version_file
  File.join host_directory, "image_version"
end

#logging_args(max_size) ⇒ Object



26
27
28
# File 'lib/kamal/configuration/proxy/boot.rb', line 26

def logging_args(max_size)
  argumentize "--log-opt", "max-size=#{max_size}" if max_size.present?
end

#options_fileObject



57
58
59
# File 'lib/kamal/configuration/proxy/boot.rb', line 57

def options_file
  File.join host_directory, "options"
end

#publish_args(http_port, https_port, bind_ips = nil) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
# File 'lib/kamal/configuration/proxy/boot.rb', line 14

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, DEFAULT_HTTP_PORT ].compact.join(":")
    publish_https = [ bind_ip, https_port, DEFAULT_HTTPS_PORT ].compact.join(":")

    argumentize "--publish", [ publish_http, publish_https ]
  end.join(" ")
end

#repository_nameObject



37
38
39
# File 'lib/kamal/configuration/proxy/boot.rb', line 37

def repository_name
  "basecamp"
end

#run_command_fileObject



69
70
71
# File 'lib/kamal/configuration/proxy/boot.rb', line 69

def run_command_file
  File.join host_directory, "run_command"
end

#tls_container_directoryObject



107
108
109
# File 'lib/kamal/configuration/proxy/boot.rb', line 107

def tls_container_directory
  File.join app_container_directory, "tls"
end

#tls_directoryObject



103
104
105
# File 'lib/kamal/configuration/proxy/boot.rb', line 103

def tls_directory
  File.join app_directory, "tls"
end