diff --git a/configs/caddy/Caddyfile b/configs/caddy/Caddyfile index 46d8a27..5296625 100644 --- a/configs/caddy/Caddyfile +++ b/configs/caddy/Caddyfile @@ -1,56 +1,6 @@ { + } -{$DOMAIN} { - root * /srv - encode gzip - handle { - try_files {path} /index.html - file_server - } - header /assets/*.js { - Service-Worker-Allowed "/" - } - handle_path /3m/* { - reverse_proxy 3m:8001 - } - handle_path /chat { - reverse_proxy ergo:8097 - } - handle_path /voice { - reverse_proxy grumble:8443 - } - handle_path /video/* { - rewrite /video / - reverse_proxy mediamtx:8889 - } -} - -{$HOST_DOMAIN} { - header Access-Control-Allow-Origin * - header Access-Control-Allow-Origin i.cef.icu - header Access-Control-Allow-Origin cef.icu - @uploads { - path_regexp hash ^/uploads/(.*)/.* - } - - rewrite @uploads /uploads/{re.hash.1} - respond /uploads/ 403 - respond /pfp/ 403 - - handle_path /embed/* { - reverse_proxy imagor:8000 - header -Cache-Control - header -Expires - header Cache-Control "public, max-age=604800" - } - - reverse_proxy minio:9000 { - @error status 500 404 - handle_response @error { - root * /srv - try_files /assets/theme-cef/blankIcon.png - file_server - } - } -} +import ./Frontend +import ./Imagor diff --git a/configs/caddy/Frontend b/configs/caddy/Frontend new file mode 100644 index 0000000..7f1ab17 --- /dev/null +++ b/configs/caddy/Frontend @@ -0,0 +1,24 @@ +{$DOMAIN} { + root * /srv + encode gzip + handle { + try_files {path} /index.html + file_server + } + header /assets/*.js { + Service-Worker-Allowed "/" + } + handle_path /3m/* { + reverse_proxy 3m:8001 + } + handle_path /chat { + reverse_proxy ergo:8097 + } + handle_path /voice { + reverse_proxy grumble:8443 + } + handle_path /video/* { + rewrite /video / + reverse_proxy mediamtx:8889 + } +} diff --git a/configs/caddy/Imagor b/configs/caddy/Imagor new file mode 100644 index 0000000..4b4bb36 --- /dev/null +++ b/configs/caddy/Imagor @@ -0,0 +1,8 @@ +{$IMAGOR_URL} { + header Access-Control-Allow-Origin * + header Access-Control-Allow-Origin {$DOMAIN} + reverse_proxy imagor:8000 + header -Cache-Control + header -Expires + header Cache-Control "public, max-age=604800" +} diff --git a/configs/caddy/Storage b/configs/caddy/Storage new file mode 100644 index 0000000..00285ad --- /dev/null +++ b/configs/caddy/Storage @@ -0,0 +1,21 @@ +{$HOST_DOMAIN} { + header Access-Control-Allow-Origin * + header Access-Control-Allow-Origin i.cef.icu + header Access-Control-Allow-Origin cef.icu + @uploads { + path_regexp hash ^/uploads/(.*)/.* + } + + rewrite @uploads /uploads/{re.hash.1} + respond /uploads/ 403 + respond /pfp/ 403 + + reverse_proxy minio:9000 { + @error status 500 404 + handle_response @error { + root * /srv + try_files /assets/theme-cef/blankIcon.png + file_server + } + } +} diff --git a/configs/caddy/StorageCombo b/configs/caddy/StorageCombo new file mode 100644 index 0000000..c95a126 --- /dev/null +++ b/configs/caddy/StorageCombo @@ -0,0 +1,29 @@ +{$HOST_DOMAIN} { + header Access-Control-Allow-Origin * + header Access-Control-Allow-Origin i.cef.icu + header Access-Control-Allow-Origin cef.icu + @uploads { + path_regexp hash ^/uploads/(.*)/.* + } + + rewrite @uploads /uploads/{re.hash.1} + respond /uploads/ 403 + respond /pfp/ 403 + + handle_path /embed/* { + reverse_proxy imagor:8000 + header -Cache-Control + header -Expires + header Cache-Control "public, max-age=604800" + } + + + reverse_proxy minio:9000 { + @error status 500 404 + handle_response @error { + root * /srv + try_files try_files /assets/theme-cef/blankIcon.png + file_server + } + } +} diff --git a/configure.sh b/configure.sh index 430fe28..972de55 100755 --- a/configure.sh +++ b/configure.sh @@ -23,7 +23,7 @@ envp() { envgen() { if [ -z "${!1}" ]; then echo "$1='$2'" >> .env - export "$1='$2'" + export "$1=$2" fi } @@ -41,7 +41,7 @@ envp ERGO__NETWORK__NAME "What's the overall name of the network? No spaces or s envp DOMAIN "What is your domain? Omit HTTP/HTTPS (e.g. 'cef.icu')" envgen ERGO__SERVER__NAME $DOMAIN envgen ERGO__DATASTORE__MYSQL__PASSWORD $MYSQL_PASSWORD -envgen THREEM_DBURL "mysql+mysqldb://root:$MYSQL_PASSWORD@mariadb/ergo_ext" +envgen THREEM_DBURL "mysql+mysqldb://root:$MYSQL_PASSWORD@mariadb/ergo" envp HOST_DOMAIN "What is the domain of your Minio configuration (e.g. 'i.cef.icu')" envgen THREEM_MINIO_EXTERNAL_ADDR $HOST_DOMAIN diff --git a/docker-compose.yml b/docker-compose.yml index 4175f30..2aece36 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -125,6 +125,7 @@ services: environment: DOMAIN: ${DOMAIN} HOST_DOMAIN: ${HOST_DOMAIN} + IMAGOR_URL: ${IMAGOR_URL} ports: - "80:80" - "443:443" @@ -136,8 +137,8 @@ services: - caddyconfig:/config - ${PWD}/www:/srv - type: bind - source: ${PWD}/configs/caddy/Caddyfile - target: /etc/caddy/Caddyfile + source: ${PWD}/configs/caddy + target: /etc/caddy restart: "always" mariadb: container_name: mariadb