nirholas/openbare
nirholas/openbare has 26 GitHub stars and 21 forks. GitHot measured 0 stars in 24 hours, 0 in 7 days, and 0 in 15 days. Last checked 2026-11-15 04:58 UTC. Last push 2026-11-01.
What you can do
- 👀 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
Measured star growth
- in 24h
- 0
- in 7 days
- 0
- in 15 days
- 0
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
About
Decentralized web proxy network designed for censorship resistance, high availability. Deploy nodes on Vercel, Railway, Cloudflare Workers in seconds. Use community-maintained public nodes. Features automatic failover between nodes, <50ms edge latency, built-in health monitoring, full compatibility with Ultraviolet, other TompHTTP clients.
Web & AppsREADME.md
Original🌐 OpenBare
A decentralized, censorship-resistant web proxy network
Deploy your own node in 30 seconds • Use community nodes • Browse freely
Quick Start • Deploy Your Node • Documentation • Contributing
✨ Features
- 👀 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
🏗️ Architecture
┌─────────────────────────────────────────────────────────────────────────┐
│ 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) │
└───────────────────────────────┘
🚀 Quick Start
Option 1: Point the Client at a Registry
The client can auto-discover nodes from a registry. @openbare/client is a workspace
package in this repo and is not published to npm, so import it from a clone (npm install
at the repo root links every workspace).
No public registry is currently hosted:
registry.openbare.devdoes not resolve while hosting is being migrated. Run your own withnpm run start:registry(see/registry) and pointregistryUrlat it, or skip discovery and list nodes explicitly as shown below.
import { OpenBareClient } from '@openbare/client';
// With your own registry (autoDiscover is off by default)
const client = new OpenBareClient({
registryUrl: 'http://localhost:3000',
autoDiscover: true
});
// Or without a registry, using an explicit node list
const direct = new OpenBareClient({
servers: ['https://openbare.xyz/bare/']
});
// Fetch any URL through the proxy network
const response = await direct.fetch('https://example.com');
Option 2: Run Locally
# 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/
Option 3: Deploy Your Own (see below)
🌐 Deploy Your Own Node
Recommended: Cloudflare Workers
| 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).
Cloudflare Workers (Recommended)
Deploy to 300+ edge locations worldwide with WebSocket support:
cd edge
npm install
npx wrangler login
npx wrangler deploy
You'll get a URL like: https://openbare-edge.YOUR_SUBDOMAIN.workers.dev
Live Example: https://openbare.xyz
Docker
No prebuilt image is published yet, so build it from server/Dockerfile:
docker build -t openbare ./server
docker run -d \
-p 8080:8080 \
-e NODE_ID=my-node \
-e REGION=us-east \
-e NODE_URL=https://your-public-url.example \
openbare
NODE_URL is required when NODE_ENV=production (the image default); the server refuses
to start without it.
Manual Deployment
cd server
npm install
npm start
See Self-Hosting Guide for detailed instructions.
📦 Components
| 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 |
🔧 Configuration
Environment Variables
# 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=http://localhost:3000 # your own registry; no public one is hosted
# Logging
LOG_LEVEL=info # trace/debug/info/warn/error
See .env.example for all options.
📊 API Endpoints
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 |
Example Response: GET /
{
"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/"
}
📖 Documentation
- Architecture - How OpenBare works
- Self-Hosting - Deployment guide
- API Reference - Full API documentation
- Client Usage - Client library guide
🤝 Contributing
We welcome contributions! See CONTRIBUTING.md for guidelines.
Development Setup
# 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
Areas for Contribution
- 🌍 Run a public node
- 🐛 Report bugs
- 💡 Suggest features
- 📝 Improve documentation
- 🔧 Submit PRs
🔒 Security
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: [email protected]
📄 License
Proprietary - Copyright 2026 nirholas. All rights reserved. See the LICENSE file for the full terms.
🙏 Acknowledgments
- TompHTTP - Bare Server protocol
- Ultraviolet - Web proxy framework
- Titanium Network - Proxy community
Made with ❤️ by the OpenBare community
Documentation
Full documentation site: https://nirholas.github.io/openbare/
- Getting started covers install and first run.
- Examples has copy-paste snippets.
Star History
Support the project
If openbare saves you time, star it on GitHub. Stars are how other developers and AI agents find the repositories worth trusting, and they cost you one click.
Know someone who would use it? Post on X · Share on Bluesky · Share on LinkedIn · Submit to Hacker News · Share on Reddit
Built for AI agents too
Coding agents and LLM tooling can read this repo directly: AGENTS.md, llms.txt, llms-full.txt. Point an agent at https://github.com/nirholas/openbare and it has the context it needs.
More from the same author
- All repositories by nirholas: the full catalog, grouped by topic
- three.ws: the platform for 3D AI agents with Solana wallets, a skill marketplace and x402 payments
- Questions or ideas: open an issue or start a discussion