64 lines
2.2 KiB
JSON
64 lines
2.2 KiB
JSON
{
|
|
"id": "allprox",
|
|
"name": "allprox",
|
|
"description": "Caddy reverse proxy that routes domains to local IPs, hosts an authenticated portal (web UI), and is SSO-ready for Authelia (OAuth2/OIDC).",
|
|
"version": "1.0.0",
|
|
"category": "network",
|
|
"tags": ["reverse-proxy", "caddy", "authelia", "sso", "https"],
|
|
"author": "Caddy / Authelia",
|
|
"license": "Apache-2.0",
|
|
"homepage": "https://caddyserver.com",
|
|
"documentation": "https://www.authelia.com/integration/proxies/caddy/",
|
|
"compose": {
|
|
"image": "caddy:2-alpine",
|
|
"container_name": "allprox",
|
|
"restart": "unless-stopped",
|
|
"ports": ["80:80", "443:443", "443:443/udp"],
|
|
"volumes": [
|
|
"./Caddyfile:/etc/caddy/Caddyfile:ro",
|
|
"./portal:/srv/portal:ro",
|
|
"allprox_data:/data",
|
|
"allprox_config:/config"
|
|
],
|
|
"environment": [
|
|
"APP1_UPSTREAM=${APP1_UPSTREAM}",
|
|
"APP2_UPSTREAM=${APP2_UPSTREAM}",
|
|
"PORTAL_AUTH_HASH=${PORTAL_AUTH_HASH}"
|
|
],
|
|
"networks": ["homelab"]
|
|
},
|
|
"volumes": {
|
|
"allprox_data": {},
|
|
"allprox_config": {}
|
|
},
|
|
"networks": {
|
|
"homelab": { "external": true }
|
|
},
|
|
"env": [
|
|
{
|
|
"name": "PORTAL_AUTH_HASH",
|
|
"label": "Portal admin password (bcrypt hash)",
|
|
"description": "bcrypt hash for basic_auth (default is 'changeme'). Generate your own with: docker compose exec allprox caddy hash-password",
|
|
"default": "$2b$10$fKkpKSlwLZtOBXpInl8pG.8mS65kiEfjOVsuvBj7ikHgtfqEa7h4y",
|
|
"required": false,
|
|
"secret": true
|
|
},
|
|
{
|
|
"name": "APP1_UPSTREAM",
|
|
"label": "Upstream for app1.example.com",
|
|
"description": "Local IP:port to proxy app1.example.com to",
|
|
"default": "127.0.0.1:3000",
|
|
"required": false,
|
|
"secret": false
|
|
},
|
|
{
|
|
"name": "APP2_UPSTREAM",
|
|
"label": "Upstream for app2.example.com",
|
|
"description": "Local IP:port to proxy app2.example.com to",
|
|
"default": "127.0.0.1:8080",
|
|
"required": false,
|
|
"secret": false
|
|
}
|
|
],
|
|
"notes": "Edit services/allprox/Caddyfile to add domains and change upstreams. The portal (web UI) is at portal.example.com (change the domain). Interim auth is basic_auth (admin / 'changeme' by default) — swap to the Authelia forward_auth block in the Caddyfile for OAuth2/OIDC SSO."
|
|
}
|