Skip to content

Latest commit

 

History

History

app-proxy

Umbrel App Proxy

Docker Build Docker Pulls

☂️ App Proxy

App-proxy is a transparent HTTP proxy to add authentication to Umbrel apps. Every HTTP request and Websocket connection goes through the proxy and each request has the session token checked for validity. The session token is set via App-auth. It runs by-default as a containerized service.

🚀 Getting started

If you are looking to run Umbrel on your hardware, you do not need to run this service on it's own. Just download Umbrel OS and you're good to go.

🛠 Running app-proxy

Make sure umbrel-manager and app-auth are running and available.

Development and testing

cd $UMBREL_ROOT/containers/app-proxy/test
./test.sh docker-compose.app1.yml

Within the test directory there are several test apps to test different functionality such as Websocket and SSE with the proxy.

Environment variables (dev/testing)

The following environment variables are set in .env file of the project's root:

Variable Description Default
LOG_LEVEL Log level for the proxy (http-proxy-middleware) info
PROXY_PORT HTTP proxy container port 4000
PROXY_AUTH_ADD true/false as to whether the app should be protected with authentication true
PROXY_AUTH_WHITELIST A comma seperated list of paths that are whitelisted (e.g. /public/*)
PROXY_AUTH_BLACKLIST A comma seperated list of paths that are whitelisted (e.g. /admin/*,/api/*)
APP_HOST App's frontend container hostname/IP
APP_PORT App's frontend container port
APP_MANIFEST_FILE Location of app's manifest file /extra/umbrel-app.yml
UMBREL_AUTH_PORT App-auth's exposed (port-forwarded) port 2000
UMBREL_AUTH_SECRET A shared secret for manager, app-auth and app-proxy umbrel
UMBREL_AUTH_HIDDEN_SERVICE_FILE Location of app-auth's Tor HS hostname /var/lib/tor/auth/hostname
MANAGER_IP Umbrel's manager IP 10.21.21.4
MANAGER_PORT Umbrel's manager container port 9005