create-swag-config
create-swag-config
Add a new reverse proxy entry to SWAG (LinuxServer.io) on host squirts. SWAG fronts every *.tootie.tv subdomain — currently ~128 active configs. Every entry is one file at /mnt/appdata/swag/nginx/proxy-confs/<service>.subdomain.conf rendered from a single canonical Jinja2 template (mcp.subdomain.conf.j2) that supports OAuth-protected /mcp, optional Authelia gating on /, and MCP streaming semantics.
Layout on squirts:
- Repo:
~/code/swag-mcp/ - Template:
~/code/swag-mcp/templates/mcp.subdomain.conf.j2 - Deployed includes:
/mnt/appdata/swag/nginx/{mcp-server,mcp-location,authelia-server,authelia-location,proxy,resolver,ssl}.conf - Deployed configs:
/mnt/appdata/swag/nginx/proxy-confs/*.subdomain.conf - SWAG container:
swag(imagelscr.io/linuxserver/swag) - swag-mcp container:
swag-mcp(imageghcr.io/jmagar/swag-mcp:<ver>)
Preferred path — call swag-mcp
swag-mcp is an MCP server that owns SWAG config CRUD. Use it instead of hand-editing whenever possible. It validates inputs, renders the canonical template, writes the file with the correct name, keeps backups of replaced configs, and exposes health checks. Hand-editing exists as a fallback, not a default.
The server is registered in ~/.claude.json as swag (URL: https://swag.tootie.tv/mcp). It exposes one action-routed tool — swag — plus a swag_help reference tool. All operations go through swag with an action parameter.