🌀 NeXuS Multi-Network Stack - Final Implementation¶
Date: February 14, 2026 Philosophy: Sane • Simple • Secure
What We Built¶
The Right Way (Container Orchestration)¶
Instead of rebuilding everything, we orchestrate existing working containers:
Your Working Medusa (Tor)
+
Official I2P Container
+
Official Yggdrasil Container
+
HAProxy Smart Router
=
NeXuS Multi-Network Stack
Files Created¶
1. nexus-compose.yaml (Container Orchestration)¶
- Uses your existing working medusa-proxy
- Adds official I2P container (purplei2p/i2pd)
- Adds official Yggdrasil container
- HAProxy routes between them
- Everything isolated, nothing breaks
2. haproxy-nexus.cfg (Smart Routing)¶
- Routes *.i2p domains → I2P network
- Routes everything else → Tor (your medusa)
- Stats page on port 9090
- Simple, understandable config
3. nexus-start.sh (One Command Startup)¶
- Starts all containers with one command
- Shows all proxy endpoints
- Gives test commands
- Shows how to stop
Usage¶
cd /home/user/git/medusa-proxy
# Start the NeXuS stack
./nexus-start.sh
# Proxy endpoints:
# - Main Router: localhost:9080 (SOCKS) - smart routing
# - HTTP Router: localhost:9443 (HTTP) - domain-based routing
# - Tor Direct: localhost:1080 (your existing medusa)
# - I2P Direct: localhost:4447 (I2P SOCKS)
# - Stats: http://localhost:9090 (admin/nexus)
# Test Tor routing
curl --socks5 localhost:9080 http://check.torproject.org/api/ip
# Test I2P access
curl --socks5 localhost:4447 http://example.i2p
# Stop everything
podman-compose -f nexus-compose.yaml down
What This Gives You¶
Multi-Network Access¶
- Tor - Your existing working medusa (5 instances, load balanced)
- I2P - Anonymous .i2p access, P2P optimized
- Yggdrasil - Encrypted IPv6 mesh network
Smart Routing¶
- Automatic *.i2p → I2P routing
- Everything else → Tor
- Easy to add more routing rules
Production Ready¶
- Uses official containers (well-maintained)
- Each network isolated (secure)
- Easy to update (just pull new images)
- Your original medusa untouched (still works)
Architecture¶
Client Application
↓
HAProxy Router (localhost:9080)
↓
┌──┴──┐
↓ ↓
Tor I2P Yggdrasil
(medusa) ↓ ↓
1080 4447 9001
Adding More Networks¶
Want to add more? Just edit nexus-compose.yaml:
reticulum:
image: reticulum/rnsd:latest
container_name: nexus-reticulum
ports:
- "4965:4965"
networks:
- nexus-net
Then update haproxy-nexus.cfg to route to it.
Troubleshooting¶
Containers won't start¶
# Check if ports are in use
podman ps
netstat -tlnp | grep -E "(9080|1080|4447)"
# View logs
podman-compose -f nexus-compose.yaml logs
Routing not working¶
# Check HAProxy stats
open http://localhost:9090
# User: admin, Pass: nexus
# Test each backend directly
curl --socks5 localhost:1080 http://check.torproject.org/api/ip # Tor
curl --socks5 localhost:4447 http://example.i2p # I2P
Philosophy¶
Sane¶
- Use what works (existing containers)
- Don't rebuild what exists
- Simple architecture, easy to understand
Simple¶
- 3 files total
- 1 command to start
- Clear documentation
Secure¶
- Container isolation
- Official images (maintained)
- No custom builds breaking things
- Original medusa untouched
What We Learned¶
Don't Over-Engineer¶
- Started by trying to build everything from scratch ❌
- Ended by orchestrating existing containers ✅
Use Existing Tools¶
- Official containers > custom builds
- Podman-compose > complex Dockerfiles
- Configuration > code changes
Keep It Working¶
- Don't break what already works
- Add around, not into
- Test before replacing
🌀 Together Everyone Achieves More 🌀
Three files. One command. Multi-network anonymity.