Deploy your own node in 30 seconds • Use community nodes • Browse freely
Quick Start • Deploy Your Node • Documentation • Contributing
- 👀 Instant Setup - Deploy to Cloudflare Workers in 30 seconds
- 🌍 Decentralized - Community-run nodes across the globe
- ⚡ Edge Performance - Cloudflare Workers for <50ms latency worldwide
- 🔄 Automatic Failover - Client seamlessly switches between nodes
- 📊 Built-in Monitoring - Health checks, metrics, and status dashboard
- 🔒 Production Ready - Rate limiting, security headers, graceful shutdown
- 🤝 UV Compatible - Works with Ultraviolet and other TompHTTP clients
┌─────────────────────────────────────────────────────────────────────────┐
│ YOUR APPLICATION │
│ (SperaxOS, Ultraviolet, etc.) │
└─────────────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────┐
│ OPENBARE CLIENT │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Server Pool │──│ Failover │──│ Discovery │ │
│ │ Manager │ │ Logic │ │ Client │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘
│
┌───────────────┼───────────────┐
▼ ▼ ▼
┌───────────┐ ┌───────────┐ ┌───────────┐
│ Node 1 │ │ Node 2 │ │ Node 3 │
│ (US) │ │ (EU) │ │ (Asia) │
│ Vercel │ │ Cloudflare│ │ Railway │
└───────────┘ └───────────┘ └───────────┘
│ │ │
└───────────────┼───────────────┘
▼
┌───────────────────────────────┐
│ OPENBARE REGISTRY │
│ (Optional - Node Discovery) │
└───────────────────────────────┘
Use community-maintained nodes without deploying anything:
import { OpenBareClient } from '@openbare/client';
const client = new OpenBareClient({
// Auto-discover nodes from registry
registry: 'https://registry.openbare.dev'
});
// Fetch any URL through the proxy network
const response = await client.fetch('https://example.com');# Clone the repo
git clone https://github.com/nirholas/openbare.git
cd openbare
# Start the server
cd server
npm install
npm start
# Server running at http://localhost:8080
# Bare endpoint at http://localhost:8080/bare/| Platform | Deploy | Best For |
|---|---|---|
| Cloudflare Workers ⭐ | Deploy to Workers → | Global edge, WebSocket support, free tier |
| Render | render.com | Persistent servers, easy setup |
| Fly.io | fly.io | Global, WebSocket support |
| Self-hosted | Docker → | Full control |
⚠️ Note: Vercel and Railway don't work well for proxy servers (serverless limitations / banned dependencies).
Deploy to 300+ edge locations worldwide with WebSocket support:
cd edge
npm install
npx wrangler login
npx wrangler deployYou'll get a URL like: https://openbare-edge.YOUR_SUBDOMAIN.workers.dev
Live Example: https://openbare.xyz
docker run -d \
-p 8080:8080 \
-e NODE_ID=my-node \
-e REGION=us-east \
ghcr.io/nirholas/openbare:latestcd server
npm install
npm startSee Self-Hosting Guide for detailed instructions.
| Package | Description | Location |
|---|---|---|
| @openbare/server | Node.js bare server with metrics | /server |
| @openbare/client | Client library with failover | /client |
| @openbare/edge | Cloudflare Workers server | /edge |
| @openbare/registry | Node discovery service | /registry |
# Node Identification
NODE_ID=my-bare-node # Unique node ID
REGION=us-east # Geographic region
NODE_URL=https://example.com # Public URL
# Rate Limiting
RATE_LIMIT_MAX=100 # Requests per minute
RATE_LIMIT_WINDOW_MS=60000 # Window size
# Registry (Optional)
REGISTRY_URL=https://registry.openbare.dev
# Logging
LOG_LEVEL=info # trace/debug/info/warn/errorSee .env.example for all options.
Every OpenBare node exposes these endpoints:
| Endpoint | Method | Description |
|---|---|---|
/ |
GET | Server info and status |
/bare/ |
* | Bare Server protocol |
/health |
GET | Health check (for load balancers) |
/status |
GET | Detailed metrics |
/info |
GET | Node information |
{
"status": "ok",
"name": "OpenBare Server",
"version": "1.0.0",
"node_id": "us-east-abc123",
"region": "us-east",
"uptime_seconds": 86400,
"requests_served": 150000,
"healthy": true,
"bare_endpoint": "/bare/"
}- Architecture - How OpenBare works
- Self-Hosting - Deployment guide
- API Reference - Full API documentation
- Client Usage - Client library guide
We welcome contributions! See CONTRIBUTING.md for guidelines.
# Clone the repo
git clone https://github.com/nirholas/openbare.git
cd openbare
# Install all workspace dependencies
npm install
# Start server in dev mode
npm run dev:server
# Run tests
npm test- 🌍 Run a public node
- 🐛 Report bugs
- 💡 Suggest features
- 📝 Improve documentation
- 🔧 Submit PRs
OpenBare is designed with security in mind:
- Rate limiting prevents abuse
- Helmet.js sets security headers
- No logging of proxied content
- Registry validation prevents malicious nodes
Report security issues to: security@openbare.dev
MIT License - see LICENSE for details.
- TompHTTP - Bare Server protocol
- Ultraviolet - Web proxy framework
- Titanium Network - Proxy community
Made with ❤️ by the OpenBare community