chore: dedicated Caddyfiles based on AIO container launch strategies
Determine the Caddy config file based on the `ENABLE_SUBPATH_BASED_ACCESS` environment variable.
This commit is contained in:
15
aio-multiport-setup.Caddyfile
Normal file
15
aio-multiport-setup.Caddyfile
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
:3000 {
|
||||||
|
try_files {path} /
|
||||||
|
root * /site/selfhost-web
|
||||||
|
file_server
|
||||||
|
}
|
||||||
|
|
||||||
|
:3100 {
|
||||||
|
try_files {path} /
|
||||||
|
root * /site/sh-admin
|
||||||
|
file_server
|
||||||
|
}
|
||||||
|
|
||||||
|
:8080 {
|
||||||
|
respond 404
|
||||||
|
}
|
||||||
33
aio-subpath-access.Caddyfile
Normal file
33
aio-subpath-access.Caddyfile
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
:3000 {
|
||||||
|
respond 404
|
||||||
|
}
|
||||||
|
|
||||||
|
:3100 {
|
||||||
|
respond 404
|
||||||
|
}
|
||||||
|
|
||||||
|
:8080 {
|
||||||
|
# Serve the `selfhost-web` SPA by default
|
||||||
|
root * /site/selfhost-web
|
||||||
|
file_server
|
||||||
|
|
||||||
|
handle_path /admin* {
|
||||||
|
root * /site/sh-admin-subpath-access
|
||||||
|
file_server
|
||||||
|
|
||||||
|
# Ensures any non-existent file in the server is routed to the SPA
|
||||||
|
try_files {path} /
|
||||||
|
}
|
||||||
|
|
||||||
|
# Handle requests under `/backend*` path
|
||||||
|
handle_path /backend* {
|
||||||
|
reverse_proxy localhost:3170
|
||||||
|
}
|
||||||
|
|
||||||
|
# Catch-all route for unknown paths, serves `selfhost-web` SPA
|
||||||
|
handle {
|
||||||
|
root * /site/selfhost-web
|
||||||
|
file_server
|
||||||
|
try_files {path} /
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
# TODO: Update the subpath-based implementation to use standard HTTP(S) ports
|
|
||||||
|
|
||||||
:3000 {
|
|
||||||
try_files {path} /
|
|
||||||
root * /site/selfhost-web
|
|
||||||
file_server
|
|
||||||
}
|
|
||||||
|
|
||||||
:3100 {
|
|
||||||
try_files {path} /
|
|
||||||
root * /site/sh-admin
|
|
||||||
file_server
|
|
||||||
}
|
|
||||||
|
|
||||||
:8080 {
|
|
||||||
# Serve the `selfhost-web` SPA by default
|
|
||||||
root * /site/selfhost-web
|
|
||||||
file_server
|
|
||||||
|
|
||||||
handle_path /admin* {
|
|
||||||
# Check the ENABLE_SUBPATH_BASED_ACCESS environment variable
|
|
||||||
@enabledSubpathBasedAccess {
|
|
||||||
expression {env.ENABLE_SUBPATH_BASED_ACCESS} == "true"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Conditionally serve /site/sh-admin-subpath-access if ENABLE_SUBPATH_BASED_ACCESS is true
|
|
||||||
handle @enabledSubpathBasedAccess {
|
|
||||||
root * /site/sh-admin-subpath-access
|
|
||||||
file_server
|
|
||||||
|
|
||||||
# Ensures any non-existent file in the server is routed to the SPA
|
|
||||||
try_files {path} /
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# Handle requests under `/backend*` path
|
|
||||||
handle_path /backend* {
|
|
||||||
reverse_proxy localhost:3170
|
|
||||||
}
|
|
||||||
|
|
||||||
# Catch-all route for unknown paths, serves `selfhost-web` SPA
|
|
||||||
handle {
|
|
||||||
root * /site/selfhost-web
|
|
||||||
file_server
|
|
||||||
try_files {path} /
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -49,7 +49,8 @@ execSync(`npx import-meta-env -x build.env -e build.env -p "/site/**/*"`)
|
|||||||
|
|
||||||
fs.rmSync("build.env")
|
fs.rmSync("build.env")
|
||||||
|
|
||||||
const caddyProcess = runChildProcessWithPrefix("caddy", ["run", "--config", "/etc/caddy/Caddyfile", "--adapter", "caddyfile"], "App/Admin Dashboard Caddy")
|
const caddyFileName = process.env.ENABLE_SUBPATH_BASED_ACCESS === 'true' ? 'aio-subpath-access.Caddyfile' : 'aio-multiport-setup.Caddyfile'
|
||||||
|
const caddyProcess = runChildProcessWithPrefix("caddy", ["run", "--config", `/etc/caddy/${caddyFileName}`, "--adapter", "caddyfile"], "App/Admin Dashboard Caddy")
|
||||||
const backendProcess = runChildProcessWithPrefix("pnpm", ["run", "start:prod"], "Backend Server")
|
const backendProcess = runChildProcessWithPrefix("pnpm", ["run", "start:prod"], "Backend Server")
|
||||||
|
|
||||||
caddyProcess.on("exit", (code) => {
|
caddyProcess.on("exit", (code) => {
|
||||||
|
|||||||
@@ -61,7 +61,8 @@ RUN npm install -g @import-meta-env/cli
|
|||||||
COPY --from=fe_builder /usr/src/app/packages/hoppscotch-selfhost-web/dist /site/selfhost-web
|
COPY --from=fe_builder /usr/src/app/packages/hoppscotch-selfhost-web/dist /site/selfhost-web
|
||||||
COPY --from=sh_admin_builder /usr/src/app/packages/hoppscotch-sh-admin/dist /site/sh-admin
|
COPY --from=sh_admin_builder /usr/src/app/packages/hoppscotch-sh-admin/dist /site/sh-admin
|
||||||
COPY --from=sh_admin_builder /usr/src/app/packages/hoppscotch-sh-admin/dist-subpath-access /site/sh-admin-subpath-access
|
COPY --from=sh_admin_builder /usr/src/app/packages/hoppscotch-sh-admin/dist-subpath-access /site/sh-admin-subpath-access
|
||||||
COPY aio.Caddyfile /etc/caddy/Caddyfile
|
COPY aio-multiport-setup.Caddyfile /etc/caddy/aio-multiport-setup.Caddyfile
|
||||||
|
COPY aio-subpath-access.Caddyfile /etc/caddy/aio-subpath-access.Caddyfile
|
||||||
ENTRYPOINT [ "tini", "--" ]
|
ENTRYPOINT [ "tini", "--" ]
|
||||||
RUN apk --no-cache add curl
|
RUN apk --no-cache add curl
|
||||||
COPY --chmod=755 healthcheck.sh .
|
COPY --chmod=755 healthcheck.sh .
|
||||||
|
|||||||
Reference in New Issue
Block a user