AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
OpenFlare is an open-source CDN orchestration and edge security platform. It supports reverse proxy, centralized configuration synchronization, in-network tunneling (Tunnels), dynamic WAF protection, and CC defense challenges.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
OpenFlare is an open-source CDN orchestration and edge security platform. It supports reverse proxy, centralized configuration synchronization, in-network tunneling (Tunnels), dynamic WAF protection, and CC defense challenges.
After the first login with the admin user, you must change the default password 12345678.
The BETA version is a temporary product in the development and testing stage and may have unknown issues. It should not be used in production environments.README 전문 보기 ↗Next-Gen Distributed Reverse Proxy & Edge Security Gateway for OpenResty / Nginx
OpenFlare is a modern, open-source distributed reverse proxy and edge security gateway platform designed for multi-server infrastructures and edge clusters.
Rather than a simple single-host admin panel, OpenFlare empowers traditional OpenResty / Nginx nodes with centralized cluster orchestration, dynamic zero-reload sync, line-rate edge WAF defense, and secure in-network tunneling:
openflared clients without public IPs or open inbound ports.OpenFlare is designed to operate seamlessly either as an independent edge gateway or in harmony with Cloudflare and public CDNs:
Ideal for developers managing multi-region VPS clusters or homelabs:
Functions as an intelligent origin shield and routing gateway behind Cloudflare:
| Feature | Traditional Nginx (nginx.conf) | Nginx Proxy Manager (NPM) | OpenFlare |
|---|---|---|---|
| Cluster Architecture | Manual per-host editing via SSH | Single node only; no cluster sync | Native Distributed Control Plane + Edge Agents |
| Configuration Sync | Requires nginx -s reload (connection churn) | Reloads on every change | Shared memory dynamic sync (Zero-Reload) |
| Anti-CC / Bot Protection | Basic limit_req rate limiting only | Not supported | Built-in Turnstile-like PoW Client Challenge |
| In-Network Tunnels | Requires separate third-party tools (frp) | Not supported | Built-in OpenFlared Tunnels (Zero inbound ports) |
| WAF & Threat Defense | Requires manual ModSecurity compilation | Basic exploit rules only | Dynamic WAF, GeoIP, IP list checksum sync |
| Static Pages Hosting | Manual directory copying and setup | Static file proxying only | Automated GitHub Release deployment & rollbacks |
| Works with Cloudflare | Manual set_real_ip_from list maintenance | Complex proxy header tuning | Native real IP restoration, ideal origin shield |
flowchart TD
subgraph Visitors ["Public Visitors & Clients"]
User["Public Users / Browsers"]
CF["Cloudflare CDN (Optional Edge Layer)"]
end
subgraph EdgePlane ["Edge Data Plane (OpenResty Agent Nodes)"]
Edge1["Edge Node A (OpenResty)"]
Edge2["Edge Node B (OpenResty)"]
end
subgraph ControlPlane ["Control Plane"]
Server["OpenFlare Server (Web Dashboard)"]
DB[("PostgreSQL + Redis")]
end
subgraph Backend ["Upstream & Internal Services"]
Origin["Public Origin Web Server"]
subgraph PrivateNet ["Private Network / Homelab"]
NAS["Internal Apps / NAS"]
Client["OpenFlared Tunnel Client"]
end
end
User -->|Direct HTTPS Request| Edge1
User -->|Proxied via Cloudflare| CF
CF -->|Secure Upstream Traffic| Edge2
Server <-->|Dynamic Sync / Metrics| Edge1
Server <-->|Dynamic Sync / Metrics| Edge2
Server --- DB
Edge1 -->|Reverse Proxy| Origin
Edge2 -->|Reverse Proxy| Origin
Client <-->|Encrypted Tunnel| Edge1
NAS --- Client
Deploy the control plane using docker-compose:
# Download environment template
curl -o .env.example https://raw.githubusercontent.com/Rain-kl/OpenFlare/refs/heads/main/.env.example
cp .env.example .env
services:
openflare:
image: ghcr.io/rain-kl/openflare:latest
restart: unless-stopped
env_file: .env
environment:
TZ: ${TZ:-Asia/Shanghai}
ports:
- "3000:3000"
volumes:
- openflare_uploads:/app/uploads
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
postgres:
image: postgres:17-alpine
restart: unless-stopped
environment:
POSTGRES_DB: ${DB_NAME:-openflare}
POSTGRES_USER: ${DB_USERNAME:-openflare}
POSTGRES_PASSWORD: ${DB_PASSWORD:-replace-with-strong-password}
volumes:
- openflare_postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${DB_USERNAME:-openflare} -d ${DB_NAME:-openflare}"]
interval: 10s
timeout: 5s
retries: 5
redis:
image: valkey/valkey:8.0-alpine
restart: unless-stopped
command: ["valkey-server", "--appendonly", "yes"]
volumes:
- openflare_redis_data:/data
healthcheck:
test: ["CMD", "valkey-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
start_period: 5s
volumes:
openflare_uploads:
openflare_postgres_data:
openflare_redis_data:
http://localhost:3000admin / 12345678[!WARNING] Change the default password
12345678immediately upon first login.
The BETA version is in active development and testing; avoid using it in mission-critical production environments without regular backups.
Run the Agent container on any edge server (ensure ports 80/443 are open):
docker pull ghcr.io/rain-kl/openflare-agent:latest
docker run -d --name openflare-agent --restart unless-stopped \
-p 80:80 -p 443:443/tcp -p 443:443/udp \
-v openflare-agent-pages:/data/var/lib/openflare/pages \
-e OPENFLARE_SERVER_URL=http://<YOUR_SERVER_IP>:3000 \
-e OPENFLARE_AGENT_TOKEN=<YOUR_AGENT_TOKEN> \
ghcr.io/rain-kl/openflare-agent:latest
(Copy the node token directly from Node Management in the dashboard)
Official Documentation: https://openflare.fyrn.link
| Component | Minimum Requirements | Recommended Requirements | Note |
|---|---|---|---|
| Server Control Plane | 1 CPU / 2 GB RAM / 20 GB Disk | 2 CPU / 4 GB RAM / 50 GB+ Disk | Scale disk based on access log retention |
| Agent Data Plane | 1 CPU / 512 MB RAM / 2 GB Disk | 2 CPU / 2 GB RAM / 10 GB+ Disk | Scale based on concurrent connections & WAF load |
| Relay Node | 1 CPU / 1 GB RAM / 5 GB Disk | 2 CPU / 2 GB RAM / 20 GB Disk | Mainly bound by bandwidth and CPU network throughput |
| OpenFlared Client | 1 CPU / 256 MB RAM / 1 GB Disk | 1 CPU / 512 MB RAM / 5 GB Disk | Extremely lightweight client |
OpenFlare is an independent, community-driven open-source project. It is not affiliated with, endorsed by, or sponsored by Cloudflare, Inc. Cloudflare and related trademarks are the property of their respective owners.
This project is licensed under the Apache License 2.0.