MCPcopy Index your code
hub / github.com/HaradaKashiwa/FreeGFW

github.com/HaradaKashiwa/FreeGFW @v26.6.27

Chat with this repo
repository ↗ · DeepWiki ↗ · release v26.6.27 ↗ · + Follow
838 symbols 3,207 edges 58 files 9 documented · 1%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

FreeGFW

English | فارسی | 中文

FreeGFW is a high-performance proxy service management system built on the Sing-box and Xray core. It provides a modern web interface for easily deploying, managing, and monitoring various proxy protocol services.

FreeGFW aims to provide a simple, powerful proxy management system, making it easy for users to deploy and manage their own proxy services. It simplifies circumvention, allowing ordinary people to easily use proxy services. To facilitate use by everyone, it fundamentally eliminates FreeGFW's fingerprint characteristics to avoid detection and scanning by search engines.

📸 Screenshots

✨ Key Features

  • 🚀 High Performance Core: Built on Sing-box and Xray, supporting the latest proxy protocols and features.
  • 🌐 Multi-Protocol Support: Native support for VLESS (Reality/Vision), VMess, Shadowsocks, Hysteria2, etc.
  • ☁️ Built-in WARP: One-click Cloudflare WARP integration to easily unlock ChatGPT and resolve clean IP issues.
  • 🖥️ Modern Dashboard: Built-in Web management interface built with React + TailwindCSS, intuitive and convenient.
  • 👥 User Management: Supports multi-user system, assigning independent configurations for different users.
  • 📊 Traffic Monitoring: Real-time monitoring of server upload/download speeds and user traffic usage.
  • 🔒 Auto HTTPS: Integrated Let's Encrypt for automatic SSL certificate application and renewal.
  • One-Click Deployment: Supports Docker deployment or direct binary execution, ready out of the box.

📦 Preset Node Templates

The system comes with the following out-of-the-box configuration templates to meet different network environments and anti-blocking needs:

Template Name Core Protocol Transport Layer Encryption / Obfuscation
VLESS+TCP+Reality+Vision VLESS TCP Reality + Vision
VLESS+XHTTP+Reality VLESS XHTTP Reality
VLESS+TCP+XTLS VLESS TCP XTLS
Hysteria2 Hysteria2 UDP QUIC-based
NaiveProxy NaiveProxy HTTPS TLS
VMess+AEAD+TCP+TLS VMess TCP Traditional TLS
VMess+AEAD+WS+TLS VMess WebSocket Traditional TLS
VMess+AEAD+TCP VMess TCP AEAD
Shadowsocks (AES-256-GCM) Shadowsocks TCP AES-256-GCM

🚀 Quick Start

One-Click Installation Script (Recommended)

Automatically install Docker and deploy the FreeGFW container. It will show the server IP upon successful deployment.

curl -fsSL https://raw.githubusercontent.com/haradakashiwa/freegfw/main/install.sh | bash

System Service Installation (Systemd)

Install directly on the host machine as a Systemd service (without Docker).

curl -fsSL https://raw.githubusercontent.com/haradakashiwa/freegfw/main/install-systemd.sh | bash

Docker Deployment

docker run -d --name freegfw --network=host \
  -v "freegfw:/data" \
  ghcr.io/haradakashiwa/freegfw

📝 Configuration

  • Port Configuration: Default port 8080, can be modified via environment variable PORT.
  • Data Storage: All data (database, certificates, config files) stored by default in data/ directory.

🔗 Link Feature

FreeGFW innovatively introduces the "Link" feature, allowing you to interconnect multiple FreeGFW nodes to form a decentralized proxy network.

The original intention of designing this feature is that the characteristics of airports or service providers on the market are very obvious. We need to bypass this physical characteristic. Allowing users to build their own node proxy network is essentially decentralized, which can effectively reduce the risk of being blocked. At the same time, we hope to provide a simple and easy-to-use way to manage these nodes, so that users can easily add, delete, and manage their own nodes.

Core Advantages

  • Subscription Aggregation: Users only need to subscribe to any one node to get connection information for all nodes in the network.
  • Auto Sync: Nodes automatically sync server configurations (IP, port, protocol, etc.) without manual updates.
  • Decentralization: No central server, any two points can interconnect, suitable for building private proxy networks among family/friends.

Topology Diagram

graph TD
    User([User Device])

    subgraph "FreeGFW Network"
        NodeA["Node A (US)"]
        NodeB["Node B (HK)"]
        NodeC["Node C (JP)"]

        NodeA <== Auto Sync ==> NodeB
        NodeB <== Auto Sync ==> NodeC
        NodeA <== Auto Sync ==> NodeC
    end

    User -- "1. Get Subscription" --> NodeA
    NodeA -- "2. Return A+B+C Config" --> User

    User -. "3. Proxy Connection" .-> NodeA
    User -. "3. Proxy Connection" .-> NodeB
    User -. "3. Proxy Connection" .-> NodeC

Usage

  1. Generate Link: In Node A's "Link Management", click "Add Link" to generate a one-time interconnection code.
  2. Establish Connection: Enter the code on Node B.
  3. Auto Trust: Both nodes will automatically exchange server info and start syncing status continuously.
  4. Unified Subscription: At this point, your subscription link will automatically include all available nodes from Node A and Node B.

🤝 Contribution

Welcome to submit Issues and Pull Requests to help improve this project!

📄 License

GPLv3

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

e
called by 407
public/assets/index.js
i
called by 192
public/assets/index.js
t
called by 185
public/assets/index.js
s
called by 138
public/assets/index.js
n
called by 112
public/assets/index.js
o
called by 87
public/assets/index.js
r
called by 79
public/assets/index.js
l
called by 60
public/assets/index.js

Shape

Function 720
Method 93
Struct 17
Class 6
Interface 1
TypeAlias 1

Languages

TypeScript85%
Go15%

Modules by API surface

public/assets/index.js650 symbols
services/traffic_tracker.go26 symbols
services/template.go12 symbols
services/xray_dispatcher.go11 symbols
frontend/src/components/ui/dialog.tsx10 symbols
frontend/src/utils/fetcher.js8 symbols
services/letsencrypt.go7 symbols
services/core.go7 symbols
models/models.go7 symbols
routes/routes.go6 symbols
controllers/link.go6 symbols
services/sse.go5 symbols

For agents

$ claude mcp add FreeGFW \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page