The replace hacks in email templates were double-prepending
/reset-password/step2 since Authelia already generates the correct
URL. Removed the Traefik redirectregex middleware too since it's
no longer needed.
Made-with: Cursor
When a subscription is deleted, all Docker volumes for the customer
stack are tarred to /data/archives/{stackName}/ before the stack is
removed and volumes pruned. On resubscribe or reactivation, volumes
are restored from the archive before deploying the stack.
Made-with: Cursor
- Update dashboard buttons to use correct Authelia paths:
/settings/two-factor-authentication and /settings/security
- Change customer stack ACL from one_factor to two_factor so Authelia
enables the 2FA registration UI (passkeys, TOTP)
Made-with: Cursor
The welcome page button was linking to Authelia's reset page which
requires an active login session. Now it POSTs to /resend-reset which
calls the Authelia API server-side and sends the email immediately.
Button text updated from "Reset Password" to "Set Password".
Made-with: Cursor
- Remove public/private toggle — all customer stacks now always deploy
behind authelia-auth middleware, no exceptions
- Remove ALLOW_CUSTOMER_STACK_AUTH_TOGGLE and CUSTOMER_STACK_REQUIRE_AUTH_DEFAULT
config, env vars, routes, and UI
- Replace docker-compose.dev.yml + docker-compose.swarm-dev.yml with
unified stack.yml for swarm deployment
- Various handler, ldap, stripe, swarm, and template additions from
prior work sessions
Made-with: Cursor