Deploy user model
Day-2 commands run as thevulpy-commerce user, never as root. After installation, switch to that user for all maintenance:
/home/vulpy-commerce/vulpy-commerce. Running commands as root can break file ownership and prevent Fox from operating correctly.
Fox isolation
Fox runs inside its own container with deliberate restrictions:- No Docker socket: Fox cannot start or stop other containers. Environment commands such as
pnpm vulpy env add,up,down, andgoliverefuse to run inside the Fox container. - Hidden staging and live directories: Staging and live environment directories are not mounted into Fox’s filesystem, so the AI operator cannot read or modify production data.
IMDS lock (AWS)
On AWS, the instance metadata service (IMDS) is blocked by default with annftables reject rule. This prevents container-escaped processes from reaching 169.254.169.254.
- Enabled by default via
VULPY_IMDS_LOCK=1. - Opt out with
VULPY_IMDS_LOCK=0if you have a specific need. - Verify the rule is active with
pnpm vulpy hermes doctor.
Host egress lock
The host egress lock restricts outbound traffic patterns and is reported bypnpm vulpy hermes doctor. Run the doctor command after install to confirm the lock is in place.
Tailscale split identities
Fox and the host should run on separate Tailscale devices. This limits lateral movement if one identity is compromised. Fox uses its own Tailscale sidecar for HTTPS, while the host uses a separate device for SSH and management. For setup instructions, see Tailscale access.Agent-risk disclaimer
The install wizard requires you to typeyes to acknowledge agent risk before setup begins. For unattended installs, pass --i-understand-agent-risk. This confirms you understand that an AI agent with file-system access carries inherent risk and that you have reviewed the isolation measures above.
Secrets management
- Keep secrets in
environments/<name>/.env. These files are generated locally and must never be committed to git. - Rotate keys and tokens at the provider dashboard (Stripe, SendGrid, and so on) rather than editing them in place.
- Use
pnpm vulpy env syncto copy secrets between environments when needed.
Basic auth on Fox
The Fox WebUI is protected by basic authentication. Verify it is working with:verify will flag it.
Quick hardening checklist
1
Deploy user in place
Confirm you are running commands as
vulpy-commerce, not root.2
IMDS lock verified
Run
pnpm vulpy hermes doctor and confirm the IMDS lock is active.3
Fox on its own Tailscale identity
Check the Tailscale admin console: Fox and the host appear as separate devices.
4
Secrets not committed
Run
git status and confirm environments/ is ignored.5
Basic auth working
Run
pnpm vulpy verify and confirm Fox basic auth passes.6
Backups running
Schedule or manually run
pnpm vulpy env backup <name> before going live.Backup and restore
Take backups before hardening changes and before going live.
IMDS lock
Learn how the IMDS lock works and when to disable it.