Skip to content

fix: recover rejected logins and configure container routing - #53

Open
sembrestels wants to merge 2 commits into
dappnode:masterfrom
sembrestels:fix/auth-recovery-and-routing
Open

sembrestels wants to merge 2 commits into
dappnode:masterfrom
sembrestels:fix/auth-recovery-and-routing

Conversation

@sembrestels

Copy link
Copy Markdown

Rejected auth keys can cause repeated restarts that interrupt browser login. An authenticated container can also remain running while firewall or forwarding errors prevent routing.

Changes:

  • Retry once without either auth-key environment alias after an explicit key rejection, preserving the state volume and settings.
  • Allow one hour for browser authentication, while respecting explicit timeout overrides.
  • Supply firewall auto-detection in the image defaults.
  • Enable IPv4 and IPv6 forwarding inside the container.
  • Add health checks requiring authenticated, online operation without reported Tailscale health warnings.
  • Mark the setup-wizard key optional and secret, document recovery, and add regression tests and CI.

Unrelated startup failures retain their original failure behavior, and termination signals reach the daemon. The existing CA update and upstream version are unchanged.

Validation:

  • All 13 regression tests pass locally.
  • Compose validation, the amd64 image build, and isolated container smoke tests pass.
  • A real daemon given an invalid synthetic key falls back once to browser login and remains running beyond 60 seconds with zero restarts.
  • Authenticated end-to-end testing from a separate Linux client passes for both advertised subnet routes and IPv4 exit-node egress, before and after restarting the PR image.
  • Targeted packet observation confirms traffic crosses tailscale0, while public-IP comparison confirms internet egress through the Dappnode.
  • The PR image reports healthy, reuses saved authentication, retains its Tailscale addresses, and has zero automatic restarts.

The original image was restored and connectivity verified afterward. Persistent Compose configuration and other services were preserved, and temporary test services were removed.

Authenticated test report:
https://github.com/sembrestels/DAppNodePackage-tailscale/blob/d64532b9d78dbcd2c4bbe07fa6c6f5079f0217e8/tests/AUTHENTICATED-VALIDATION.md

Limits:

  • Authenticated routing tests are manual and are not part of CI.
  • ARM64 execution and IPv6 internet egress remain untested.
  • Rejected keys still need clearing or replacing in saved Dappnode configuration; fallback removes them from the process environment only.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant