Troubleshooting
Check service status
cd ~/walter-selfhost
bin/selfhost-compose --mode internal-tls ps
bin/selfhost-compose --mode internal-tls logs -f setup walter
Swap the mode flag if you are using public-tls.
Common issues
The image pull is unauthorized
Validate the provided credentials explicitly:
echo "<provided-token>" | docker login ghcr.io -u <provided-username> --password-stdin
docker pull ghcr.io/matchylabs/walter:0.1.0
Walter shows the migration-required page
Run the migration job for the current release, then restart Walter:
bin/selfhost-compose --mode public-tls run --rm setup
bin/selfhost-compose --mode public-tls up -d
The browser setup flow does not appear
With AUTH_MODE=password, first boot should land on the admin setup flow when no users exist. Check the walter container logs and confirm the app can reach PostgreSQL.
License or LLM fields were not preseeded
That is expected unless you passed them to bin/selfhost-install. Walter can accept those values in the browser after the stack starts.
Agents cannot connect
Verify that:
PHX_HOSTmatches the hostname agents can reachpublic-tlsandinternal-tlsclients trust the certificate chain
The built-in database is not reachable
Wait a few seconds for PostgreSQL to finish its first start, then re-run:
bin/selfhost-compose --mode internal-tls ps
bin/selfhost-compose --mode internal-tls logs -f db