bifrost-proxy

module
v0.0.0-...-92dd6e1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 26, 2026 License: MIT

README ΒΆ

Bifrost Logo

Bifrost Proxy

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.


✨ 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 (Windows supported).
πŸ” 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

πŸ’» Dashboard & Interface

Bifrost comes with a premium Web UI for monitoring and configuration.

Web UI Mockup

[!NOTE] Note: UI appearance may vary based on platform and version.


🏁 Quick Start

1. Server Setup
# Build the server
make build-server

# Start with default configuration
./bin/bifrost-server -c server-config.yaml
2. Client Setup
# Build the client
make build-client

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

# Run the client
./bin/bifrost-client -c client-config.yaml

πŸ› οΈ 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:


πŸ“œ License

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

Directories ΒΆ

Path Synopsis
cmd
client command
Package main provides the Bifrost client entry point.
Package main provides the Bifrost client entry point.
server command
Package main provides the Bifrost server entry point.
Package main provides the Bifrost server entry point.
internal
accesscontrol
Package accesscontrol provides IP-based access control for Bifrost.
Package accesscontrol provides IP-based access control for Bifrost.
accesslog
Package accesslog provides access logging for Bifrost.
Package accesslog provides access logging for Bifrost.
api/client
Package client provides the REST API for Bifrost client.
Package client provides the REST API for Bifrost client.
api/server
Package server provides cache management API handlers.
Package server provides cache management API handlers.
auth
Package auth provides authentication for Bifrost.
Package auth provides authentication for Bifrost.
auth/mfa
Package mfa provides multi-factor authentication wrapper for Bifrost.
Package mfa provides multi-factor authentication wrapper for Bifrost.
auth/negotiate
Package negotiate provides HTTP Negotiate (SPNEGO/Kerberos/NTLM) authentication handling.
Package negotiate provides HTTP Negotiate (SPNEGO/Kerberos/NTLM) authentication handling.
auth/plugin/apikey
Package apikey provides API key authentication for Bifrost.
Package apikey provides API key authentication for Bifrost.
auth/plugin/hotp
Package hotp provides HMAC-based One-Time Password (HOTP) authentication for Bifrost.
Package hotp provides HMAC-based One-Time Password (HOTP) authentication for Bifrost.
auth/plugin/jwt
Package jwt provides JWT token authentication for Bifrost.
Package jwt provides JWT token authentication for Bifrost.
auth/plugin/kerberos
Package kerberos provides Kerberos/SPNEGO authentication for Bifrost.
Package kerberos provides Kerberos/SPNEGO authentication for Bifrost.
auth/plugin/ldap
Package ldap provides LDAP/Active Directory authentication.
Package ldap provides LDAP/Active Directory authentication.
auth/plugin/mtls
Package mtls provides mutual TLS (client certificate) authentication for Bifrost.
Package mtls provides mutual TLS (client certificate) authentication for Bifrost.
auth/plugin/native
Package native provides username/password authentication with bcrypt hashes.
Package native provides username/password authentication with bcrypt hashes.
auth/plugin/none
Package none provides the "none" authentication plugin which allows all requests.
Package none provides the "none" authentication plugin which allows all requests.
auth/plugin/ntlm
Package ntlm provides NTLM/Negotiate authentication for Bifrost.
Package ntlm provides NTLM/Negotiate authentication for Bifrost.
auth/plugin/oauth
Package oauth provides OAuth/OIDC authentication for Bifrost.
Package oauth provides OAuth/OIDC authentication for Bifrost.
auth/plugin/system
Package system provides system (PAM) authentication for Bifrost.
Package system provides system (PAM) authentication for Bifrost.
auth/plugin/totp
Package totp provides Time-based One-Time Password (TOTP) authentication for Bifrost.
Package totp provides Time-based One-Time Password (TOTP) authentication for Bifrost.
auth/session
Package session provides session token storage and management for Bifrost.
Package session provides session token storage and management for Bifrost.
backend
Package backend provides backend connection handling for Bifrost.
Package backend provides backend connection handling for Bifrost.
cache
Package cache provides HTTP caching functionality for the Bifrost proxy.
Package cache provides HTTP caching functionality for the Bifrost proxy.
cli/client
Package client provides CLI commands for the Bifrost client.
Package client provides CLI commands for the Bifrost client.
cli/server
Package server provides CLI commands for the Bifrost server.
Package server provides CLI commands for the Bifrost server.
client
Package client provides the Bifrost client implementation.
Package client provides the Bifrost client implementation.
config
Package config provides configuration loading and validation for Bifrost.
Package config provides configuration loading and validation for Bifrost.
debug
Package debug provides traffic debugging for Bifrost client.
Package debug provides traffic debugging for Bifrost client.
device
Package device provides a unified interface for TUN and TAP network devices.
Package device provides a unified interface for TUN and TAP network devices.
frame
Package frame provides Ethernet frame parsing and building for TAP devices.
Package frame provides Ethernet frame parsing and building for TAP devices.
health
Package health provides health checking functionality.
Package health provides health checking functionality.
logging
Package logging provides structured logging for Bifrost.
Package logging provides structured logging for Bifrost.
matcher
Package matcher provides domain pattern matching for routing rules.
Package matcher provides domain pattern matching for routing rules.
mesh
Package mesh provides Hamachi-like mesh networking functionality.
Package mesh provides Hamachi-like mesh networking functionality.
metrics
Package metrics provides Prometheus metrics for Bifrost.
Package metrics provides Prometheus metrics for Bifrost.
openvpn
Package openvpn provides OpenVPN configuration and process management.
Package openvpn provides OpenVPN configuration and process management.
p2p
Package p2p provides peer-to-peer connectivity with NAT traversal.
Package p2p provides peer-to-peer connectivity with NAT traversal.
proxy
Package proxy provides proxy protocol implementations.
Package proxy provides proxy protocol implementations.
ratelimit
Package ratelimit provides rate limiting and bandwidth throttling.
Package ratelimit provides rate limiting and bandwidth throttling.
router
Package router provides domain-based routing for Bifrost.
Package router provides domain-based routing for Bifrost.
server
Package server provides the Bifrost server implementation.
Package server provides the Bifrost server implementation.
service
Package service provides cross-platform system service management.
Package service provides cross-platform system service management.
tray
Package tray provides system tray integration for Bifrost client.
Package tray provides system tray integration for Bifrost client.
updater
Package updater provides self-update functionality for Bifrost binaries.
Package updater provides self-update functionality for Bifrost binaries.
util
Package util provides common utilities for Bifrost.
Package util provides common utilities for Bifrost.
version
Package version provides build version information for Bifrost.
Package version provides build version information for Bifrost.
vpn
Package vpn provides TUN-based VPN functionality with split tunneling support.
Package vpn provides TUN-based VPN functionality with split tunneling support.
vpnprovider
Package vpnprovider provides interfaces and utilities for VPN provider integrations.
Package vpnprovider provides interfaces and utilities for VPN provider integrations.
vpnprovider/mullvad
Package mullvad provides a VPN provider implementation for Mullvad VPN.
Package mullvad provides a VPN provider implementation for Mullvad VPN.
vpnprovider/nordvpn
Package nordvpn implements the NordVPN provider for Bifrost Proxy.
Package nordvpn implements the NordVPN provider for Bifrost Proxy.
vpnprovider/pia
Package pia provides a client for the Private Internet Access VPN provider API.
Package pia provides a client for the Private Internet Access VPN provider API.
vpnprovider/protonvpn
Package protonvpn provides a VPN provider implementation for ProtonVPN.
Package protonvpn provides a VPN provider implementation for ProtonVPN.
wireguard
Package wireguard provides WireGuard configuration parsing and management.
Package wireguard provides WireGuard configuration parsing and management.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL