Fixed terminal proxying/auth
This commit is contained in:
parent
10775aeb11
commit
2ddbda5a4f
2
TODO.md
2
TODO.md
@ -6,7 +6,7 @@
|
|||||||
* Config UI in frontend?
|
* Config UI in frontend?
|
||||||
* Polish frontend UI **A LOT**
|
* Polish frontend UI **A LOT**
|
||||||
* ✅ Version checks for consistency between client/server
|
* ✅ Version checks for consistency between client/server
|
||||||
* Have 3 runtimes:
|
* ✅ Have 3 runtimes:
|
||||||
* ✅ Crystal + Kemal
|
* ✅ Crystal + Kemal
|
||||||
* ✅ Python + Flask
|
* ✅ Python + Flask
|
||||||
* ✅ Nodejs + Express
|
* ✅ Nodejs + Express
|
||||||
|
@ -18,11 +18,5 @@ http://*:8888 {
|
|||||||
handle_path /admin/* {
|
handle_path /admin/* {
|
||||||
reverse_proxy /* http://127.0.0.1:3000
|
reverse_proxy /* http://127.0.0.1:3000
|
||||||
}
|
}
|
||||||
handle_path /faaso/exp/* {
|
import funkos
|
||||||
reverse_proxy /* http://faaso-exp-6ne49v:3000 {
|
|
||||||
health_uri /ping
|
|
||||||
fail_duration 30s
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
@ -4,7 +4,7 @@ require "inotify"
|
|||||||
require "kemal"
|
require "kemal"
|
||||||
|
|
||||||
module Proxy
|
module Proxy
|
||||||
CADDY_CONFIG_PATH = "config/Caddyfile"
|
CADDY_CONFIG_PATH = "config/funkos"
|
||||||
@@current_config = File.read(CADDY_CONFIG_PATH)
|
@@current_config = File.read(CADDY_CONFIG_PATH)
|
||||||
|
|
||||||
@@watcher = Inotify.watch(CADDY_CONFIG_PATH) do |_|
|
@@watcher = Inotify.watch(CADDY_CONFIG_PATH) do |_|
|
||||||
@ -28,29 +28,8 @@ module Proxy
|
|||||||
def self.update_proxy_config
|
def self.update_proxy_config
|
||||||
docker_api = Docr::API.new(Docr::Client.new)
|
docker_api = Docr::API.new(Docr::Client.new)
|
||||||
containers = docker_api.containers.list(all: true)
|
containers = docker_api.containers.list(all: true)
|
||||||
config = <<-CONFIG
|
|
||||||
{
|
|
||||||
http_port 8888
|
|
||||||
https_port 8887
|
|
||||||
local_certs
|
|
||||||
}
|
|
||||||
|
|
||||||
http://*:8888 {
|
|
||||||
forward_auth /admin/* http://127.0.0.1:3000 {
|
|
||||||
uri /auth
|
|
||||||
copy_headers {
|
|
||||||
Authorization
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
handle_path /admin/terminal/* {
|
|
||||||
reverse_proxy /* http://127.0.0.1:7681
|
|
||||||
}
|
|
||||||
handle_path /admin/* {
|
|
||||||
reverse_proxy /* http://127.0.0.1:3000
|
|
||||||
}
|
|
||||||
CONFIG
|
|
||||||
|
|
||||||
|
config = ""
|
||||||
funkos = Funko::Funko.from_docker
|
funkos = Funko::Funko.from_docker
|
||||||
funkos.each do |funko|
|
funkos.each do |funko|
|
||||||
next if funko.name == "proxy"
|
next if funko.name == "proxy"
|
||||||
@ -68,7 +47,6 @@ CONFIG
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
config += "\n}"
|
|
||||||
|
|
||||||
if @@current_config != config
|
if @@current_config != config
|
||||||
Log.info { "Updating proxy config" }
|
Log.info { "Updating proxy config" }
|
||||||
|
@ -4,7 +4,7 @@ module Terminal
|
|||||||
@@terminal_process : Process | Nil = nil
|
@@terminal_process : Process | Nil = nil
|
||||||
|
|
||||||
def start_terminal(_args = ["sh"], readonly = true)
|
def start_terminal(_args = ["sh"], readonly = true)
|
||||||
args = ["-p", "7681", "-c", "admin:admin", "-o"]
|
args = ["-p", "7681", "-o"]
|
||||||
args += ["-W"] unless readonly
|
args += ["-W"] unless readonly
|
||||||
args += _args
|
args += _args
|
||||||
# We have a process there, kill it
|
# We have a process there, kill it
|
||||||
|
Loading…
Reference in New Issue
Block a user