Garage Web UI login troubleshooting

Correct URL

The Garage Web UI is served from the root path:

http://192.168.0.224:3909/

Do not use http://192.168.0.224:3909/auth/login for the browser login page.

The login API endpoint is:

POST http://192.168.0.224:3909/api/auth/login

with this JSON body:

{"username":"admin","password":"YOUR-PASSWORD"}

Diagnostics

Run these commands on LXC 107:

ssh root@192.168.0.224
systemctl status garage-webui --no-pager
p=$(pgrep -f '^/usr/local/bin/garage-webui$')
tr '\0' '\n' < /proc/$p/environ | grep '^AUTH_USER_PASS='
curl -s -i -X POST http://127.0.0.1:3909/api/auth/login \
  -H 'Content-Type: application/json' \
  -d '{"username":"admin","password":"YOUR-PASSWORD"}'

Common causes

Reset the password

Generate a new hash for a known password:

htpasswd -nbBC 10 admin 'NEW-PASSWORD' | tr -d '\n' | sed 's/\$2y\$/\$2b\$/'

Then replace the AUTH_USER_PASS line in /etc/garage-webui.env with the generated value, without escaping $:

AUTH_USER_PASS=admin:$2b$10$...

Restart the service:

systemctl restart garage-webui

Test with the same NEW-PASSWORD:

curl -s -i -X POST http://127.0.0.1:3909/api/auth/login \
  -H 'Content-Type: application/json' \
  -d '{"username":"admin","password":"NEW-PASSWORD"}'

Verify the live process

p=$(pgrep -f '^/usr/local/bin/garage-webui$')
tr '\0' '\n' < /proc/$p/environ | grep '^AUTH_USER_PASS='

The value shown here must exactly match the line in /etc/garage-webui.env. Also check for trailing spaces or CR characters:

cat -A /etc/garage-webui.env