Proxy boot config
Add commands for managing proxy boot config. Since the proxy can be
shared by multiple applications, the configuration doesn't belong in
`config/deploy.yml`.
Instead you can set the config with:
```
Usage:
kamal proxy boot_config <set|get|clear>
Options:
[--publish], [--no-publish], [--skip-publish] # Publish the proxy ports on the host
# Default: true
[--http-port=N] # HTTP port to publish on the host
# Default: 80
[--https-port=N] # HTTPS port to publish on the host
# Default: 443
[--docker-options=option=value option2=value2] # Docker options to pass to the proxy container
```
By default we boot the proxy with `--publish 80:80 --publish 443:443`.
You can stop it from publishing ports, specify different ports and pass
other docker options.
The config is stored in `.kamal/proxy/options` as arguments to be passed
verbatim to docker run.
Where someone wants to set the options in their application they can do
that by calling `kamal proxy boot_config set` in a pre-deploy hook.
There's an example in the integration tests showing how to use this to
front kamal-proxy with Traefik, using an accessory.
This commit is contained in:
@@ -13,6 +13,13 @@ ActiveSupport::LogSubscriber.logger = ActiveSupport::Logger.new(STDOUT) if ENV["
|
||||
# Applies to remote commands only.
|
||||
SSHKit.config.backend = SSHKit::Backend::Printer
|
||||
|
||||
class SSHKit::Backend::Printer
|
||||
def upload!(local, location, **kwargs)
|
||||
local = local.string.inspect if local.respond_to?(:string)
|
||||
puts "Uploading #{local} to #{location} on #{host}"
|
||||
end
|
||||
end
|
||||
|
||||
# Ensure local commands use the printer backend too.
|
||||
# See https://github.com/capistrano/sshkit/blob/master/lib/sshkit/dsl.rb#L9
|
||||
module SSHKit
|
||||
|
||||
Reference in New Issue
Block a user