Skip to content

Initial setup

View as Markdown

Follow this page once the containers are running and InfraWard answers at your public URL. It takes about fifteen minutes.

Open InfraWard and sign in with the ADMIN_EMAIL and ADMIN_PASSWORD from .env.

InfraWard sign-in page with email and password fields

The account is created on the first start of the API, only if the database has no users. There are no built-in default credentials. If the page rejects the password, check the API log: when ADMIN_EMAIL or ADMIN_PASSWORD is missing or the password is shorter than 12 characters, the API logs a warning and creates no user.

Two-factor authentication (TOTP) is mandatory for administrators who sign in with a password. After the password, InfraWard opens Configura la verificación en dos pasos (Set up two-step verification) and does not let you continue until it is done.

  1. Scan the QR code with an authenticator app. If you cannot scan it, open ¿No puedes escanearlo? Escribe la clave (Can’t scan it? Type the key) and enter the key manually.

    Two-step verification setup with a QR code and a field for the 6-digit code

  2. Type the 6-digit code shown by the app and select Activar (Enable).

  3. InfraWard shows ten recovery codes, once. Copy them or download them as .txt, store them in a password manager and select Ya los he guardado (I have saved them).

    Ten recovery codes, blurred, with Copy, Download .txt and I have saved them buttons

Each recovery code works once, in place of a TOTP code. To move the second factor to a new phone or generate new codes, go to Ajustes → Perfil → Seguridad (Settings → Profile → Security).

Open Ajustes → Secretos (Settings → Secrets). With the default deployment both providers show Operativo (Operational): openbao stores secrets and signs SSH certificates, and local stores secrets.

Secrets providers: openbao and local, both operational

If openbao is missing or shows an error, the API could not log in with its AppRole. Check docker compose logs api and see Troubleshooting.

Open Ajustes → Inventario (Settings → Inventory). The global policy applies to every asset that has no rule of its own:

Setting Default Meaning
Reconciliación (Reconciliation) every 6 h How often each root node is collected and rediscovered.
Escaneo de vulnerabilidades (Vulnerability scanning) enabled Whether assets are scanned at all.
Escaneo automático (Automatic scanning) yes, after collection and discovery Whether a scan starts automatically after each collection.
Excluir del escaneo (Exclude from scanning) nothing Asset types, name patterns (bitnami/*, *-test) or specific assets that stay in the inventory but are not scanned.

Global inventory policy with reconciliation, scanning, automatic scanning and exclusions

Rules can also be set per tag, per project and per asset. When several rules apply, the asset’s own rule wins, then the closest parent, then its tags (the most restrictive), then its projects (the most restrictive), then the global policy.

The same tab holds the expiry warnings for TLS certificates and domains, the Reenvíos NAT (NAT forwards) that tell InfraWard which public ports your router forwards to which internal servers (used to decide what is exposed), and the colours of tags.

Open Ajustes → Usuarios (Settings → Users) and select Nuevo usuario (New user). Enter the email, the name and the role. InfraWard generates a 20-character temporary password and shows it once. Send it to the person through a secure channel. It is valid for 24 hours and must be changed at the first sign-in.

User list with an administrator, an editor and an operator with a pending temporary password

Roles are fixed. Every role can read the inventory and the vulnerabilities.

Permission Admin Editor Operator Auditor Viewer
Collect, discover, scan, reconcile (assets.operate) ✔ ✔ ✔
Enrol, edit, tag and retire assets (assets.write) ✔ ✔
Create and edit projects (projects.write) ✔ ✔
Change inventory policies (policy.write) ✔ ✔
Manage domain connectors (connectors.write) ✔ ✔
Manage vault entries without seeing passwords (vault.manage) ✔ ✔
Accept the risk of findings and reopen them (findings.accept) ✔ ✔
See secrets provider status (secrets.status) ✔ ✔ ✔
See users (users.read) ✔ ✔
Read the audit log (audit.read) ✔ ✔
Purge assets permanently (assets.purge) ✔
Manage users and roles (users.manage) ✔
Reveal vault passwords (vault.admin) ✔
Manage outbound alert channels (alerts.manage) ✔
Open the web terminal (terminal.open) ✔ by access policy by access policy by access policy by access policy

Sensitive actions (changing roles, deactivating users, purging, revealing a vault password, opening a terminal, creating write tokens, changing alert channels) ask for re-authentication if the last confirmation is older than 10 minutes (REAUTH_MAX_AGE).

To sign users in with your identity provider instead, see Authentication, MFA and OIDC.

Administrators can open a terminal on any server where interactive administration access is enabled. For anyone else, open Ajustes → Acceso (Settings → Access), choose a person or a role, then an asset, a tag or a project, and select Dar acceso (Grant access).

Terminal access policy granting laura.gomez@example.com access through the prod tag

See Web terminal.

Notifications always appear in the bell of the top bar: new, missing and retired assets, failed reconciliations, expiring certificates and domains, dangling DNS records, critical vulnerabilities in KEV that are exposed, accepted risks that expired and vault reveals. To also send them elsewhere, open Ajustes → Alertas (Settings → Alerts) and select Nuevo canal (New channel). Only administrators can do this, and it asks for re-authentication.

Type What it sends
Webhook A JSON POST to an HTTPS URL, for example ntfy, n8n, Slack or Teams through an automation. With a Secreto de firma (Signing secret), each request carries X-InfraWard-Signature with an HMAC-SHA256 of <X-InfraWard-Timestamp>.<body>.
Email A message to the Destinatarios (Recipients) through the worker’s SMTP server. Configure SMTP_* first; see Configuration variables.

Qué recibe (What it receives) limits a channel to some notification types; empty means all. Vault reveals, which only administrators see, are only sent if you tick También las que solo ven los admins. Enviar prueba (Send test) sends a test message, and the list shows the result of the last delivery.

The webhook URL and secret are stored in the secrets provider. By default the worker only sends to public HTTPS addresses; for a receiver on your own network, see ALERTS_WEBHOOK_ALLOW_PRIVATE and ALERTS_WEBHOOK_ALLOW_HTTP.

  • Ajustes → Conectores (Connectors): add a Cloudflare connector to inventory your domains. See Domains.
  • Ajustes → Tokens de API (API tokens): personal tokens for scripts, with an expiry of at most one year. See REST API.
  • Ajustes → Caja fuerte (Vault): default rotation period, notifications on each reveal and days in the trash. See Credential vault.
  • Ajustes → Auditoría (Audit): every sign-in (including failed ones), enrolment, purge, policy change, role change and terminal session, with its source IP.

Add your first server.