mirror of
https://github.com/ION606/sharing.git
synced 2026-05-14 21:56:54 +00:00
49 lines
1.3 KiB
Caddyfile
49 lines
1.3 KiB
Caddyfile
{
|
||
# we’re behind cloudflare tunnel; terminate tls there
|
||
auto_https off
|
||
}
|
||
|
||
:8550 {
|
||
# route by host header to each backend
|
||
|
||
@paste host {env.PASTE_DOMAIN}
|
||
handle @paste {
|
||
# privatebin ui
|
||
reverse_proxy privatebin:8080
|
||
}
|
||
|
||
@files host {env.FILES_DOMAIN}
|
||
handle @files {
|
||
# lufi ui
|
||
reverse_proxy lufi:8081
|
||
}
|
||
|
||
@short host {env.SHORT_DOMAIN}
|
||
handle @short {
|
||
# shlink ui/api default
|
||
reverse_proxy shlink:8080
|
||
}
|
||
|
||
# --- adapter endpoint so privatebin can call a simple ?link=... and get a plain-text short url ---
|
||
# this lives on the same short domain; it just proxies to your tiny bun adapter service
|
||
@shorten host {env.SHORT_DOMAIN} && path /shorten
|
||
handle @shorten {
|
||
# allow browser calls from your privatebin origin
|
||
header {
|
||
Access-Control-Allow-Origin https://{env.PASTE_DOMAIN}
|
||
Access-Control-Allow-Methods GET, OPTIONS
|
||
Access-Control-Allow-Headers *
|
||
# do not cache shortened responses; they contain the full (keyed) url
|
||
Cache-Control no-store
|
||
}
|
||
# forward to the adapter (which turns GET ?link=... into a shlink POST and replies with text)
|
||
reverse_proxy shlink-adapter:3000
|
||
}
|
||
|
||
# preflight for /shorten
|
||
@shortenPre host {env.SHORT_DOMAIN} && method OPTIONS && path /shorten
|
||
respond @shortenPre 204
|
||
|
||
respond "unauthorized domain" 404
|
||
}
|