Your VPS, defended autonomously.

One static binary that replaces fail2ban, learns your host's known-good state, bans attackers at the firewall within seconds — and hands the interesting cases to an AI analyst. No agents to babysit, no Python, no OpenSSL.

Install — one command (Linux x86_64, systemd, nftables)
curl -fsSL https://guard.shieldie.ai/install.sh | sudo sh

The installer is interactive: it detects your SSH address and this server's own public addresses as the management addresses that are never auto-banned (you can add more), asks whether to enable the web dashboard (generated or your own password) and whether to join the shieldie.cloud shared blocklist, then downloads release v0.2.263, verifies its SHA-256 against the published checksum, runs the binary's own idempotent init and starts the daemon. Unattended: sudo sh -s -- --yes --web. Read the script first: install.sh.

v0.2.263 · 2026-09-20 static binary · no dependencies written in Rust nftables / ufw AI optional

How it works

Watchthe logs of SSH, web servers, mail, databases, VoIP, DNS, VPN and more — out of the box
Detectfail2ban-style jails: repeated failures from one source inside a time window
Banat the kernel firewall, including traffic to your containers, with harsher bans for repeat offenders
Guardyour management address can never be banned, so a rule cannot lock you out
Baselinelearn the host's known-good state and flag what appears or changes afterwards
Analysean AI analyst triages, investigates and writes the post-mortem — within a spend cap you set

What you get

fail2ban, without the baggage

Single ~15 MB static binary, no runtime dependencies. Reads the system journal directly. Jails for common services ship enabled; a service without logs is reported, never silently ignored.

Bans that actually block

Enforced in the kernel firewall (nftables, ufw as a fallback), covering traffic to Docker-published ports too. Recovers on its own if the ruleset is flushed. Optional banning of whole attacking subnets.

🔒Built not to lock you out

Your management addresses are exempt from every ban path and re-checked at boot. The daemon itself runs unprivileged; only a narrow, audited set of root actions is possible.

🧠An analyst, not an autopilot

An AI analyst reviews incidents, investigates the serious ones and explains what happened — with a hard spend cap and secrets redacted before anything leaves the box. Works rules-only without a key.

👁Host-state baseline (FIM)

Learns the known-good state of the host, then flags what appears or changes afterwards: listeners, privileged binaries, scheduled jobs, access keys, service units, suspicious processes and more.

📊Dashboard, CLI, MCP

Web viewer with the incident timeline and ban history; a fail2ban-style CLI; an MCP server for your own agents. ntfy / Telegram alerts.

shieldie.cloud (opt-in)

Share the addresses your jails banned and pull the network's blocklist — only addresses that several independent servers agreed on. Your local decisions always win.

🔁Recidivists get harsher

Returning attackers are banned for progressively longer; a subnet that keeps coming back can be banned as a whole.

After installing

DoCommand
Status, jails, live feedsudo shieldie-guard status · jails · watch
Enable the AI analyst (optional)echo -n 'sk-ant-…' | sudo shieldie-guard set-key
Ban / unban by handsudo shieldie-guard ban 203.0.113.9 --ttl 3600 · unban 203.0.113.9
Talk to the analystsudo shieldie-guard chat
Check a config edit before restartingsudo shieldie-guard config-check
Join the shared blocklistsudo shieldie-guard cloud enroll → [cloud] enabled = true
Upgradere-run the install command (idempotent; restarts the service)

Requirements: Linux x86_64 with systemd and nftables (ufw works with limits). The default install is safe to run on a production host; set your management address before starting so a rule can never lock you out.

Downloads

FileSHA-256
shieldie-guard-v0.2.263-x86_64-unknown-linux-musl4ba23aed6723cede74204c7659a603ff639345a1b9273a21292cd8c141056885
…​.sha256 · all releases · install.shverify: sha256sum -c *.sha256

Manual install: download the binary, chmod +x, then sudo ./shieldie-guard init --admin-ip YOUR.IP and sudo systemctl start shieldie-guard. The binary embeds everything init installs.