Password auth with apache2 reverse-proxy
2021-02-22
EDIT: see here for Caddy, also easier to set up too.
Sometimes you found an interesting project to self-hosted, but it doesn't have password authentication built-in. Luckily, we need to reverse-proxy them anyway and apache2/ nginx / httpd happen to provide password auth with reverse-proxy by default.
To set up password auth with apache2 via reverse-proxy:
echo "${PASSWORD}" | htpasswd -c -i /etc/apache2/.htpasswd ${USER}
on your host machine which has apache2 installed.- create a vhost config:
ProxyPreserveHost On
ProxyPass / http://localhost:${EXPOSED_CONTAINER_PORT}/
ProxyPassReverse / http://localhost:${EXPOSED_CONTAINER_PORT}/
ServerName ${YOUR_DOMAIN}
Order deny,allow
Allow from all
Authtype Basic
Authname "Password Required"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
That's it!