Skip to content

The admin area

/admin is the dashboard. Everything below it needs ROLE_ADMIN, which app:user:promote grants and app:admin:create grants while also verifying the account.

Instance status

/admin/status reports, for this instance: whether the mail transport accepts a connection, whether the sender address is still the undeliverable default, whether the message queue is being drained, how many messages have failed, whether the Mercure hub answers, and — when billing is on — whether the Stripe keys are set.

The install wizard shows the same page before it creates your administrator, so a broken mailer is visible before it can lock you out.

The worker check is deliberately honest about its limits. A running worker leaves no lasting trace, so an empty queue is reported as unknown, not as healthy. What it can prove is the failure: messages sitting available and unclaimed for over a minute mean nothing is consuming them.

Feature flags

The flags page lists every flag the database defines, and its scan view lists every flag the code references but the database does not — creating those rows on request.

A missing row is not an error. Every install flag falls back to exactly the value the wizard would have written (registration on, no cap, billing and social login off, a 14-day trial), so an instance recovered entirely from the shell behaves like a wizard-installed one with the defaults accepted.

Some flags gate integrations rather than behaviour: billing.enabled decides whether the Stripe client is ever instantiated, and auth.google.enabled / auth.github.enabled decide whether a social provider is reachable at all — its credentials alone are not enough.

Waitlist

When a registration cap is closed, /waitlist collects addresses and /admin/waitlist works through them: invite a single entry, invite a selection, or invite the oldest. Redeeming an invite converts the entry into an account.

Site-review outbox

/admin/site-review-outbox lists every undelivered site-review event on the instance, with attempt counts and next-retry times. See Failed messages and the outbox.