EndGame V3 is a front-end shield that sits in front of your origin service (onion or i2p). It filters abusive traffic, rate-limits hostile clients, and challenges bots with a lightweight captcha—so legitimate users can reach your site while attacks are absorbed at the edge.
TL;DR
• Free to use, self-hosted, and runs locally (no third parties).
• Works with Tor and I2P.
• Optional GoBalance load-balancing for large scale.
• Hardened defaults (fail2ban, rkhunter, chkrootkit) and tuned kernel/sysctl.
- How It Works
- Key Features
- Requirements
- Before You Begin (Trust & Safety)
- Quick Start
- Configuration Guide
- Branding the Front
- Going Big: GoBalance
- Tech Stack
- Support
- License
- Repo: Commit & Push
Traffic path:
- Run EndGame on a separate machine from your origin.
- EndGame proxies only clean requests to your backend.
- With GoBalance, many EndGame fronts can sit behind a single “master onion,” distributing load under heavy traffic.
- Powerful request filtering with NGINX + Lua, including inline captcha.
- Rate limiting aware of Tor v3 circuit IDs, plus secondary cookie-based limits.
- I2P and Tor support out of the box (toggle per your threat model).
- Hardening & compromise checks: fail2ban, rkhunter, chkrootkit, debsecan.
- Performance tuning: kernel/sysctl tweaks, module caching.
- GoBalance (Go rewrite of onionbalance) for high-traffic scaling.
- Captcha in Rust (no runtime deps) for fast challenge pages.
- Easy theming: color, logo, favicon for queue/captcha pages.
- Fresh Debian 12 (bookworm) host with root (or passwordless sudo).
- Network access suitable for Tor and/or I2P (depending on your setup).
- A separate origin server (onion or local lan) to receive proxied traffic.
Note: Older docs sometimes mention Debian 11. Use Debian 12 (bookworm) for the included installer.
- Obtain EndGame from a trusted source. Do not blindly clone random forks.
- Verify signatures when available.
- Keep your KEY and SALT (cookie crypto) secret and unique.
- Understand your legal requirements when operating darknet services.
-
(Optional) Build GoBalance
- Compile GoBalance (Go required) and generate its config.
- Note your
MASTERONION(the master onion that signs/publishes descriptors).
-
Edit
endgame.config- Set a strong
TORAUTHPASSWORD. - Choose your routing mode:
- Tor proxy mode: set
BACKENDONION1/2to your origin onion(s) for redundancy. - Local proxy mode: set
LOCALPROXY=trueandPROXYPASSURL=http://<origin-ip>:<port>.
- Tor proxy mode: set
- Set secure cookie values:
KEY— 68–128 random alphanumeric characters.SALT— exactly 8 alphanumeric characters.
- Set a strong
-
Brand the front (recommended)
- Colors:
HEXCOLOR,HEXCOLORDARK - Identity:
SITENAME,SITETAGLINE,SITESINCE - Assets (Base64):
FAVICON,SQUARELOGO,NETWORKLOGO
- Colors:
-
Install on a fresh Debian 12 host
- Transfer the prepared archive (excluding the
sourcecodeif instructed). - As root:
./setup.sh
- The script installs dependencies, configures Tor/I2P (as enabled), hardens the system, creates services, and outputs your onion (and I2P) addresses.
- Transfer the prepared archive (excluding the
-
Go live
- Share your new front onion with users or add it to GoBalance so a single master onion spreads load across multiple fronts.
- Tor setup toggles:
TORSETUP=true, optionalTORINTRODEFENSE=true,TORPOWDEFENSE=true - I2P setup toggle:
I2PSETUP=true - Session & rate limits: tune session length, request/stream rate in the config.
- Local vs Tor backend:
- Local proxy ⇒
LOCALPROXY=true,PROXYPASSURL=http://<origin> - Tor proxy ⇒ set
BACKENDONION1/2and leaveLOCALPROXY=false
- Local proxy ⇒
Tip: Keep separate configs for staging and production. Rotate
KEY/SALTif you suspect leakage.
- Queue page and captcha can be themed:
- Primary color:
HEXCOLOR - Darker shade:
HEXCOLORDARK - Logos/Favicon: base64 strings to avoid extra requests on first load
- Primary color:
- Branding helps users recognize the official front and reduces confusion.
- Use GoBalance to publish descriptors that point users to many EndGame fronts from a single master onion.
- Benefits:
- Load distribution under DDoS.
- Fault isolation if a single front is saturated.
- For very large fleets, you can split work across multiple GoBalance + Tor processes.
- NGINX (with naxsi, headers-more, echo, Lua modules)
- LuaJIT, lua-resty-* libraries
- Tor, NYX, socat (as configured)
- I2P (i2pd) (optional)
- Security tools: fail2ban, rkhunter, chkrootkit, debsecan
- GoBalance (Go) and Rust captcha
Need help installing or tuning? We provide free install guidance (brand setup, config review, operational tips).
- Website: .com
- Open an issue in this repo with details about your environment.
Released under the GNU Affero General Public License v3.0 (AGPL-3.0). You may copy, modify, and redistribute under the terms of AGPL-3.0. If you offer this work as a network service, you must provide the complete corresponding source to users of the service.
See LICENSE for the full text.
