Meridian::Proxy::Manager
Constants
ADMIN_SOCKET = File.join(CONFIG_DIR, "admin.sock")
CONFIG_DIR = File.join(".config", "containers", PROXY_NAME)
IMAGE_CHECK = "version=$(caddy version) || exit; #{VERSION_PREDICATE}"
PROXY_CONTAINER = "meridian-caddy.container"
PROXY_NAME = "meridian-caddy"
PROXY_NETWORK_SERVICE = "#{Runtime::Paths::SHARED_PROXY_NETWORK}-network.service"
PROXY_SERVICE = "meridian-caddy.service"
PROXY_SOCKET = "meridian-caddy.socket"
RELOAD_LOCK = File.join(CONFIG_DIR, "reload.lock")
RESOLVE_SUCCESSES = 3
RESOLVE_TIMEOUT = 120
ROUTES_DIR = File.join(CONFIG_DIR, "routes")
SOCKET_DIRECTORY = ".config/systemd/user"
VALIDATE = "podman run --rm -v \"$HOME/#{CONFIG_DIR}:/config:ro\" \"$1\" caddy validate --config /config/Caddyfile --adapter caddyfile"
VERSION_CHECK = "version=$(podman exec #{PROXY_NAME} caddy version) || exit; #{VERSION_PREDICATE}"
VERSION_PREDICATE = "printf '%s\\n' \"$version\" | awk -F. 'BEGIN { ok=0 } { gsub(/^v/, \"\", $1); ok=($1 > 2 || ($1 == 2 && ($2 > 11 || ($2 == 11 && $3 >= 6)))) } END { exit !ok }'"
Caddy 2.11.6 fixes ACME challenges on activated sockets.
Constructors
new(config : Config::DeployConfig, ssh_executor : SSH::Executor = SSH::Executor.new, quadlet_generator : Quadlet::Generator | Nil = nil, output : IO = STDOUT, audit_logger : Audit::Logger | Nil = nil, drain_sleeper : Proc(Time::Span, Nil) = ->(duration : Time::Span) do
sleep(duration)
end)
SourceInstance methods
Assets have no upstream to confirm after an SSH drop during reload. Rerunning the deploy resolves SwitchUncertain.
setup
Source