Edgeweir
Guides

Account and sign-in

The console's only account: creation, sign-in methods, account security, sessions, personal settings, and console navigation.

Account

The console has one account, created by the setup wizard (/setup, Create your account).

ItemDescription
Setup fieldsSetup token (the one-time token printed in the console log), Name (1–100 characters), Email (the sign-in email), Password (12–128 characters). For the steps, see Quick start
Other accountsSign-up is closed; the console has no user management and no way to add a second account
Name and emailThe console offers no way to change them
PasswordChanged in Account security; the web UI has no password recovery or reset. A forgotten password is reset on the server, see Account recovery
APIAccessKeys (prefix ewk_) call /api/v1 as this account; create them in Personal settings

Sign-in

Page: /login.

MethodDescription
PasswordEnter Email and Password, then click Sign in
Two-factor authenticationWith TOTP enabled, a correct password leads to Two-factor authentication: enter the 6-digit code, or click Use a backup code and enter a backup code. The step is valid for 10 minutes
PasskeyClick Sign in with a passkey; no two-factor step follows. Hidden in browsers without WebAuthn
ItemDescription
RedirectAfter sign-in, the console returns to the page opened before, otherwise to Overview
Sign-in rate limitSign-in, two-factor authentication, and password change: 3 attempts per 10 seconds per client IP, active in production (NODE_ENV=production). For how the client IP is determined, see Trusted proxies and client IP
AuditSuccessful (auth.sign_in, with the sign-in method) and failed (auth.sign_in_failed) sign-ins are written to the audit log

Sessions

ItemDescription
Lifetime7 days; extended at most once every 24 hours while in use (better-auth defaults)
Sign outUser menu at the bottom of the sidebar → Log out
Other devicesThe console does not list sessions; changing the password signs out the sessions on other devices, and account recovery signs out all sessions

Account security

Page: user menu → Security (/security, titled Account security).

Password

ItemDescription
ChangeEnter Current password, New password, and Confirm new password, then click Change password
Length12–128 characters
Other sessionsSigned out after the change

Two-factor authentication (TOTP)

  1. Under Two-factor authentication (TOTP), enter Current password and click Enable.
  2. Scan the QR code with an authenticator, or enter the Secret key manually.
  3. Enter the 6-digit Code and click Verify.
  4. Store the Backup codes (shown once).
ItemDescription
StatusOn / Off next to the card title
TOTP parameters6 digits, 30 seconds, issuer Edgeweir
Backup codes10 codes, format xxxxx-xxxxx, each usable once
New backup codesDisable and enable two-factor authentication again
DisableEnter Current password and click Disable

Passkeys

ItemDescription
AddEnter a Name (optional, at most 64 characters), click Add passkey, and follow the browser prompt. The button is disabled in browsers without WebAuthn
DeleteDelete from the list, with confirmation
BindingPasskeys are bound to the host name of EDGEWEIR_PUBLIC_URL; after the console host name changes, registered passkeys stop working

Password changes, two-factor enable and disable, and passkey add and delete are written to the audit log (account.*).

Personal settings

Page: user menu → Personal settings (/settings).

CardContent
PreferencesLanguage (简体中文 / English) and Theme (Light / Dark / System), stored in the current browser
Access keysCreate and revoke AccessKeys: Name and Scope (Read only / Read and write); the key is shown once. Read-only keys call GET procedures and rules.validate only. Keys are created only in a signed-in console; creating one with an AccessKey returns 403 ACCESS_KEY_SESSION_REQUIRED

For using and revoking AccessKeys, see Access logs and access keys; for the request format, see API and endpoints.

Console navigation

New site at the top of the sidebar opens the new site form; while there is no node it is Add node and opens the add-node dialog. ⌘K / Ctrl+K opens the command menu; the arrow keys pick an entry and Enter runs it:

EntryBehavior
SitesType a site's name or domain to search; Enter opens the site. Before typing, starred and recently visited sites are listed
Site actionsThe first 3 sites found each have Under Attack: (site) (turns the site's Under Attack the other way after a confirmation) and Purge cache: (site) (creates a whole-site purge after a confirmation)
NavigationOpens any page (Security, Personal settings and the Monitoring tab of the system settings included, and Regions and Service accounts, which open the page they live on)
ActionsNew site, Add node, Ban an IP… (opens the ban dialog, with the site filled in on a site's pages), Purge URLs… (opens Purge & prefetch), Global Under Attack (turns it the other way after a confirmation), Switch language, Toggle dark mode
GroupMenuPathContent
—Overview/overviewSee Overview; shows how many items need attention, if any
—Sites/sitesSite list and details; for enabling and disabling, see Site enabling. The Sites | L4 apps switch above the list leads to the L4 app list (/l4), see Layer-4 forwarding
—Certificates/certificatesCertificates and DNS credentials; see HTTPS and certificates
—Purge & prefetch/purgeURL, directory, and site purges, URL prefetch, and tasks; see Origins and cache
Access controlGlobal rules/rulesRules applied to every site; see Rules, IP lists, and GeoIP
Access controlIP lists & bans/ip-lists, /bansThe IP lists | Bans switch at the top moves between the two lists: lists referenced by rules, and allow and block lists, see Rules, IP lists, and GeoIP; site bans and global bans, see Bans. /bans?site=<site ID> shows one site's bans; This site's bans on a site's Security tab links there
Access controlProtection settings/protectionGlobal Under Attack, the CC template, ban settings, and GeoIP databases; see Protection settings
InfrastructureClusters & nodes/clustersClusters, node groups, nodes, configuration canary, node upgrades, revisions, and the cluster's DNS binding and scheduling; see Clusters and nodes. The Clusters | Regions switch at the top leads to the regions view (/clusters?view=regions), see Regions
InfrastructureDNS steering/dnsDNS provider accounts, each cluster's DNS binding, and mass removal protection; see Configure DNS steering
SystemAlerts/alertsAlert channels, SMTP, subscriptions, recent events, and alert rules; see Alerts page
SystemAudit log/auditSee Audit log
SystemSystem settings/systemTabs General, Monitoring (/system?tab=probes: regional probes and probe settings, see Regional probes), and Service accounts (/system?tab=service-accounts, see Service accounts); see System settings

User menu

The bottom of the sidebar shows the account's name and email; click it to open the user menu.

ItemDescription
Security/security; see Account security
Personal settings/settings; see Personal settings
Language简体中文 / English
ThemeLight / Dark / System
Log outEnds the current session and returns to the sign-in page

Overview

Overview (/overview) is the home page after sign-in.

BlockContent
Needs attentionWhat needs the operator, each row with its cluster's name and a link to it; hidden when nothing does, see Needs attention
SitesNumber of sites; starred sites first, then the other sites by creation time, at most 5. Sites are starred in the Sites list or on the site page
NodesOnline and total nodes; nodes that need attention first: Offline, Apply failed, Data plane unhealthy, Behind, Awaiting configuration, Awaiting heartbeat, Disabled, In sync. Shows Add node when there are no nodes
Recent revisionsThe latest revisions across all clusters, with their reasons
RecentsPages and sites recently opened in the current browser, at most 5
AnalyticsTraffic, ranges from 1 hour to 30 days (24 hours by default); the metric cards open breakdowns by site, node, and status code. Top sites and Top nodes show each item's cluster

Needs attention, nodes, and recent revisions refresh every 10 seconds, analytics every minute.

Other paths

PathDescription
/No page: redirects to /setup before setup, to /overview when signed in, otherwise to /login
/loginSign-in
/setupSetup wizard; redirects to /login once setup is done
/regionsRedirects to /clusters?view=regions; /regions?tab=probes to /system?tab=probes
/service-accountsRedirects to /system?tab=service-accounts

Troubleshooting

SymptomCauseAction
Invalid codeThe two-factor code is wrongCheck the time on the authenticator device and retry, or use a backup code
Verification expired, sign in againThe two-factor step took longer than 10 minutesSign in again
Too many requests, try again laterSign-in rate limit reachedRetry after 10 seconds
Incorrect passwordCurrent password is wrong when changing the password or enabling or disabling two-factor authenticationEnter the current password again
A passkey no longer signs inThe console host name changedSign in with the password, delete the old passkey, and add it again
Forgotten passwordThe web UI has no password recoveryReset the password on the server, see Account recovery
Authenticator device and backup codes both lostTwo-factor authentication cannot be completedTurn two-factor authentication off on the server, see Account recovery; enable it again after signing in
Two-factor authentication always fails after BETTER_AUTH_SECRET changedTOTP secrets and backup codes are encrypted with the previous secret, which the new one cannot decryptRestore the previous BETTER_AUTH_SECRET; if it is lost, turn two-factor authentication off on the server (see Account recovery) and enable it again after signing in

Account recovery

When nobody can sign in, run recover.js on the server that runs the console: it resets the password of the only account, turns two-factor authentication off, or both. The command does not go through the web UI; it reads the console container's environment and changes the database directly.

  1. Run the command; drop the option you do not need:

    docker compose exec console node dist/server/recover.js --reset-password --disable-two-factor

    On 宝塔 / aaPanel deployments the container is named edgeweir-console:

    docker exec -it edgeweir-console node dist/server/recover.js --reset-password --disable-two-factor
  2. The command prints the account's name and email. With --reset-password, enter the new password twice when prompted (12–128 characters); it is not shown while typing.

  3. Once the command prints what it changed, sign in with the account email, using the new password if you reset it.

  4. If two-factor authentication was turned off, enable it again in Account security and keep the new backup codes.

ItemDescription
SessionsAll sessions of the account are signed out; sign-ins waiting for their two-factor code expire
UnchangedName, email, passkeys, and AccessKeys. If someone else may have used the account, review them after signing in and delete passkeys and AccessKeys you do not recognize
AuditWritten to the audit log: account.recover, actor System (recover)

For the options, reading the password from a file, the output, and exit codes, see Command line.

Edit on GitHub

On this page