Security
Wardrik runs under one operating-system user. Processes running as that user can read its state and use its credentials. Use a trusted host and a dedicated service account.
| Port | Interface | Access | |
|---|---|---|---|
| The HTTP API | 4747 | loopback, or http.ip |
requests with a token, dashboard sessions, and the public paths |
| Erlang distribution | random | all | anyone with the cookie |
| epmd | 4369 | all | anyone; returns the node name and port |
- The HTTP API is plain HTTP. Over a network, put a TLS-terminating proxy in front.
- Block 4369 and the distribution port at the firewall.
Distribution
Section titled “Distribution”wardrik stop and wardrik pid connect to the node with the cookie in
~/.local/share/wardrik/cookie. Anyone with the cookie and network access to the port can run
arbitrary code on the node. RELEASE_COOKIE overrides the cookie, and WARDRIK_COOKIE_FILE sets
the file path.
Secrets
Section titled “Secrets”${NAME}inconfig.yamlresolves from the environment, the env file, or the vault, so the file contains no secrets.- The vault encrypts secrets and accounts with AES-256-GCM. Back up its key separately from the store. See the vault.
~/.config/wardrik/envcontains keys.wardrik doctorfails if other users can read it.~/.local/share/wardrik/cli_tokenis the admin token, with full access.- An MCP server run as a command runs as the daemon's user, with its environment. Run only trusted servers.
Agent permissions
Section titled “Agent permissions”A policy checks each call. After a turn reads untrusted content, its gated tools need approval. See Policy and Untrusted content.
MCP servers, webhooks, and OAuth apps added at runtime must use public HTTPS URLs. For local
development, allow_private_urls: true permits private addresses.
| Directory | Contents | Readable by |
|---|---|---|
~/.config/wardrik |
config.yaml, agents/, policies/, env |
as you set it; env is mode 600 |
~/.local/share/wardrik |
the store, the cookie, vault_key, cli_token |
the daemon's user |
~/.local/state/wardrik |
logs | the daemon's user |
WARDRIK_CONFIG_DIR, WARDRIK_DATA_HOME and WARDRIK_STATE_DIR override them.
Report a vulnerability
Section titled “Report a vulnerability”Open the repository’s Security tab and choose Report a vulnerability to submit a private report.