From bcaade98f9cfbad1bd78f574a44556df4389a20a Mon Sep 17 00:00:00 2001 From: jamesread Date: Sun, 22 Sep 2024 13:49:56 +0100 Subject: [PATCH] feat: Host an internal proxy to get around CORs issues --- Dockerfile.dev | 5 ++++- var/docker/Caddyfile | 9 +++++++++ var/docker/entrypoint.sh | 9 +++++++-- var/docker/supervisord/caddy.conf | 8 ++++++++ 4 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 var/docker/Caddyfile create mode 100644 var/docker/supervisord/caddy.conf diff --git a/Dockerfile.dev b/Dockerfile.dev index 95e34a5c..0162b4ef 100644 --- a/Dockerfile.dev +++ b/Dockerfile.dev @@ -14,17 +14,20 @@ ENV NPM_CONFIG_UPDATE_NOTIFIER=false ENV NEXT_TELEMETRY_DISABLED=1 RUN apk add --no-cache \ + caddy \ bash=5.2.21-r0 \ supervisor=4.2.5-r4 WORKDIR /app -EXPOSE 4200 EXPOSE 3000 +EXPOSE 4200 +EXPOSE 5000 COPY var/docker/entrypoint.sh /app/entrypoint.sh COPY var/docker/supervisord.conf /etc/supervisord.conf COPY var/docker/supervisord /app/supervisord_available_configs/ +COPY var/docker/Caddyfile /app/Caddyfile COPY .env.example /config/postiz.env VOLUME /config diff --git a/var/docker/Caddyfile b/var/docker/Caddyfile new file mode 100644 index 00000000..d539a52f --- /dev/null +++ b/var/docker/Caddyfile @@ -0,0 +1,9 @@ +:5000/ { + handle_path /api/* { + reverse_proxy * localhost:3000 + } + + handle { + reverse_proxy * localhost:4200 + } +} diff --git a/var/docker/entrypoint.sh b/var/docker/entrypoint.sh index df3b13fd..cca9af11 100755 --- a/var/docker/entrypoint.sh +++ b/var/docker/entrypoint.sh @@ -5,13 +5,18 @@ set -o xtrace if [[ "$SKIP_CONFIG_CHECK" != "true" ]]; then echo "Entrypoint: Copying /config/postiz.env into /app/.env" - if [ ! -f /config/.env ]; then - echo "Entrypoint: WARNING: No .env file found in /config/postiz.env" + if [ ! -f /config/postiz.env ]; then + echo "Entrypoint: WARNING: No postiz.env file found in /config/postiz.env" fi cp -vf /config/postiz.env /app/.env fi +if [[ "$INTERNAL_PROXY_ENABLED" != "false" ]]; then + echo "Entrypoint: Starting internal proxy" + cp -vf /app/supervisord_available_configs/caddy.conf /etc/supervisor.d/ +fi + if [[ "$POSTIZ_APPS" -eq "" ]]; then echo "Entrypoint: POSTIZ_APPS is not set, starting everything!" POSTIZ_APPS="frontend workers cron backend" diff --git a/var/docker/supervisord/caddy.conf b/var/docker/supervisord/caddy.conf new file mode 100644 index 00000000..f697d0ad --- /dev/null +++ b/var/docker/supervisord/caddy.conf @@ -0,0 +1,8 @@ +[program:backend] +directory=/app +command=caddy run --config /app/Caddyfile +autostart=true +autorestart=false +redirect_stderr=true +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0