Make caddy reload reactive on modified file

This commit is contained in:
2024-07-06 21:37:30 -03:00
parent 46ff8fc584
commit de46e9864b
4 changed files with 23 additions and 4 deletions

View File

@ -1,11 +1,17 @@
require "docr"
require "./funko.cr"
require "docr"
require "inotify"
require "kemal"
module Proxy
CADDY_CONFIG_PATH = "config/Caddyfile"
@@current_config = File.read(CADDY_CONFIG_PATH)
@@watcher = Inotify.watch(CADDY_CONFIG_PATH) do |_|
Log.info { "Reloading caddy config" }
Process.run(command: "caddy", args: ["reload", "--config", CADDY_CONFIG_PATH])
end
# Get current proxy config
get "/proxy/" do
@@current_config
@ -69,14 +75,13 @@ CONFIG
file << config
end
# Reload config
Process.run(command: "caddy", args: ["reload", "--config", "Caddyfile"])
@@current_config = config
end
config
end
end
# Update proxy config once a second
# Update proxy config every 1 second (if changed)
spawn do
loop do
Proxy.update_proxy_config