feat: Enhance gateway management and add Caddyfile generation support
This commit is contained in:
@@ -132,3 +132,12 @@ def get_gateway() -> GatewayInfo:
|
||||
service_count=len(config.services),
|
||||
managed_count=len(config.managed),
|
||||
)
|
||||
|
||||
|
||||
@router.get("/gateway/caddyfile")
|
||||
def get_caddyfile() -> dict[str, str]:
|
||||
"""Return the generated Caddyfile content."""
|
||||
from castle_cli.commands.gateway import _generate_caddyfile
|
||||
|
||||
config = load_config(settings.castle_root)
|
||||
return {"content": _generate_caddyfile(config)}
|
||||
|
||||
@@ -112,6 +112,19 @@ async def _do_action(name: str, action: str) -> JSONResponse:
|
||||
)
|
||||
|
||||
|
||||
@router.get("/{name}/unit")
|
||||
def get_unit(name: str) -> dict[str, str | None]:
|
||||
"""Return the generated systemd unit file(s) for a managed component."""
|
||||
from castle_cli.commands.service import _generate_timer, _generate_unit
|
||||
|
||||
_validate_managed(name)
|
||||
config = load_config(settings.castle_root)
|
||||
manifest = config.managed[name]
|
||||
unit = _generate_unit(config, name, manifest)
|
||||
timer = _generate_timer(name, manifest)
|
||||
return {"service": unit, "timer": timer}
|
||||
|
||||
|
||||
@router.post("/{name}/start")
|
||||
async def start_service(name: str) -> JSONResponse:
|
||||
"""Start a systemd-managed service."""
|
||||
|
||||
Reference in New Issue
Block a user