Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

320 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bifrost Logo

Bifrost Proxy

License: MIT Go Version Build Status

Bifrost is a production-grade proxy system designed for high-performance traffic routing, deep inspection, and seamless tunnel integration. It bridges your local environment with remote networks through WireGuard, OpenVPN, and intelligent domain-based routing.

📚 Full documentation: https://bifrost.docs.renner.dev/


✨ Key Features

🛡️ Secure Tunnels & Protocols

  • Multi-Protocol Support: HTTP, HTTPS (CONNECT), and SOCKS5.
  • VPN Integration: Native WireGuard (userspace) and OpenVPN support.
  • TUN Mode: Full-system traffic capture with advanced split-tunneling (App, Domain, and CIDR rules).

🚀 Management & Automation

  • Auto-Updates: Built-in GitHub-based update mechanism with channel support (stable/prerelease).
  • Service Management: Native system service installation for Windows (SCM), macOS (launchd), and Linux (systemd).
  • System Proxy: OS-level proxy configuration on Windows (registry/WinINET), macOS (networksetup), and Linux/GNOME (gsettings). On unsupported desktops it returns ErrNotSupported rather than silently succeeding.

🔍 Reliability & Observability

  • Intelligent Routing: Route traffic through different backends based on sophisticated domain patterns.
  • Health Checks: TCP, HTTP, and Ping-based health monitoring with automatic failover.
  • Rich Analytics: Prometheus metrics, structured JSON logging, and interactive Web UI.

🏗️ Architecture

The Bifrost ecosystem consists of a Server for central routing and a Client for local traffic handling.

graph TD
    subgraph "Local Environment"
        App[Browser / Application] --> Client[Bifrost Client]
    end

    subgraph "Bifrost Client"
        Client --> Debug[Traffic Debugger]
        Debug --> Router[Router / Matcher]
    end

    Router -- "Direct Action" --> Internet[Public Internet]
    Router -- "Server Action" --> Server[Bifrost Server]

    subgraph "Bifrost Server"
        Server --> SRouter[Server Router]
        SRouter --> WG[WireGuard Tunnel]
        SRouter --> OVP[OpenVPN Tunnel]
        SRouter --> Fwd[Forward Proxy]
        SRouter --> SDirect[Direct Connection]
    end

    WG --> TInternet[Target Internet]
    OVP --> TInternet
    Fwd --> TInternet
    SDirect --> TInternet
Loading

💻 Dashboard & Interface

Both the client and the server ship a Web UI for monitoring and configuration. The UIs live in web/client and web/server (React + Vite + Tailwind) and are built and embedded into the Go binaries by the make build targets — no separate web server to run.

Beyond the browser UI there are dedicated frontends in this repository:

  • desktop/ — Wails-based desktop app (Windows, macOS, Linux) with tray integration.
  • mobile/ — React Native / Expo app (iOS, Android).
  • openwrt/ — packaging for running the client on OpenWrt routers.

Note

UI appearance may vary based on platform and version.


🏁 Quick Start

Requirements for building from source: Go 1.25+, Node.js (the Web UIs are compiled and embedded during the build) and make. Prebuilt nightly archives are also published on the Releases page.

1. Server Setup

# Build the server (also builds and embeds the server Web UI)
make build-server

# Start from a copy of the example configuration
cp configs/server-config.example.yaml server-config.yaml
./bin/bifrost-server -c server-config.yaml

2. Client Setup

# Build the client (also builds and embeds the client Web UI)
make build-client

# Generate a client configuration
./bin/bifrost-client config init --server your-server:7080

# Validate it, then run
./bin/bifrost-client validate -c client-config.yaml
./bin/bifrost-client -c client-config.yaml

configs/ contains ready-made examples for the server, the client, Docker and OpenWrt.


🛠️ Installation & Services

Install Bifrost as a system service to ensure it runs in the background.

# Install as service
sudo bifrost-client service install --config /path/to/config.yaml

# Check status
bifrost-client service status

📖 Documentation

Explore our comprehensive guides for advanced setups:

The rendered version of these docs is at https://bifrost.docs.renner.dev/.


🧰 Tech Stack

Layer Technology
Server & client Go 1.25 (Cobra CLI, userspace WireGuard, OpenVPN, TUN)
Web UIs React 19, TypeScript, Vite, Tailwind CSS (embedded into the binaries)
Desktop app Wails (Go + web frontend)
Mobile app React Native / Expo
Observability Prometheus metrics, structured JSON logs
Build & release Make, GoReleaser, Docker, GitHub Actions
Docs site Astro Starlight (docs/)

📜 License

This project is licensed under the MIT License. See the LICENSE file for details.

Releases

Packages

Contributors

Languages