Add element-web and nextcloud proxy on one origin

Note: continue to use http://localhost:8080 after run.sh
This commit is contained in:
Ben 2022-02-26 17:27:19 +01:00
parent 8fee4d9785
commit 33ca2c93db
Signed by: ben
GPG Key ID: 0F54A7ED232D3319
2 changed files with 87 additions and 1 deletions

View File

@ -0,0 +1,70 @@
server {
listen 8080;
listen [::]:8080;
server_name localhost;
root /var/empty;
index index.html;
log_not_found on;
access_log /dev/stderr combined;
error_log /dev/stderr info;
location /upschooling/element-web {
rewrite ^/upschooling/element-web/(.*)$ /$1 break;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass "http://127.0.0.1:8082";
}
location /.well-known/matrix {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods GET;
default_type application/json;
# TODO: Add missing matrix well-known files
proxy_set_header Host localhost:8008;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_redirect http://localhost:8008/.well-known/matrix http://localhost:8080/.well-known/matrix;
proxy_pass "http://127.0.0.1:8008$uri";
}
location / {
proxy_set_header Host localhost:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_redirect off;
proxy_pass "http://127.0.0.1:80$uri";
}
}
server {
listen 8082;
listen [::]:8082;
server_name localhost;
root /usr/share/nginx/html;
index index.html;
set_real_ip_from 127.0.0.1;
set_real_ip_from ::1;
# Set no-cache for the version, config and index.html
# so that browsers always check for a new copy of Element Web.
# NB http://your-domain/ and http://your-domain/? are also covered by this
location = /index.html {
add_header Cache-Control "no-cache";
}
location = /version {
add_header Cache-Control "no-cache";
}
# covers config.json and config.hostname.json requests as it is prefix.
location /config {
add_header Cache-Control "no-cache";
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
}

18
run.sh
View File

@ -20,6 +20,10 @@ if $CONTAINER_RUNTIME inspect --type container synapse 1> /dev/null; then
$CONTAINER_RUNTIME rm -f synapse
sleep 0.5
fi
if $CONTAINER_RUNTIME inspect --type container elementweb 1> /dev/null; then
$CONTAINER_RUNTIME rm -f elementweb
sleep 0.5
fi
if $CONTAINER_RUNTIME inspect --type container nextcloud 1> /dev/null; then
$CONTAINER_RUNTIME rm -f nextcloud
fi
@ -30,7 +34,9 @@ fi
$CONTAINER_RUNTIME run -d \
--name=nextcloud \
-p 8080:80 \
-p 8080:8080 \
-p 8081:80 \
-p 8082:8082 \
-p 8008:8008 \
-v "$DIR:/var/www/html/custom_apps/upschooling" \
--add-host "synapse:127.0.0.1" \
@ -128,5 +134,15 @@ else
echo -e "Matrix user @upschooling:synapse created. \e[1;38;5;2mOK\033[0m"
fi
$CONTAINER_RUNTIME run -d \
--log-driver "k8s-file" \
--name=elementweb \
"--network=container:$($CONTAINER_RUNTIME inspect --format "{{.Id}}" nextcloud)" \
-v "$DIR/extra/element-web-nginx.conf:/etc/nginx/conf.d/default.conf" \
--hostname elementweb \
docker.io/vectorim/element-web
echo -e "Element Web has started. \e[1;38;5;2mOK\033[0m"
# for nextcloud logs use $CONTAINER_RUNTIME exec --user 33 -it nextcloud ./occ log:watch
# for webserver logs use $CONTAINER_RUNTIME logs -f elementweb