Skip to content

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.

License

Notifications You must be signed in to change notification settings

nirholas/openbare

Repository files navigation

🌐 OpenBare

A decentralized, censorship-resistant web proxy network

License: MIT Node.js Cloudflare Workers

Deploy your own node in 30 secondsUse community nodesBrowse freely

Quick StartDeploy Your NodeDocumentationContributing


✨ 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: Use Public Nodes

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');

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

docker run -d \
  -p 8080:8080 \
  -e NODE_ID=my-node \
  -e REGION=us-east \
  ghcr.io/nirholas/openbare:latest

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=https://registry.openbare.dev

# 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


🤝 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: security@openbare.dev


📄 License

MIT License - see LICENSE for details.


🙏 Acknowledgments


⬆ Back to Top

Made with ❤️ by the OpenBare community

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.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •