fbi-proxy 0.1.1

A fast and flexible proxy server for intercepting and modifying HTTP/HTTPS requests
fbi-proxy-0.1.1 is not a library.

fbi-proxy

FBI Proxy is a super easy way to turn your local network over https.

Quick Start

# Build the Rust proxy (production)
npm run build-proxy

# Start the proxy system
npm start

# Development mode with auto-reload
npm run dev

Build Scripts

Rust Proxy Build Commands:

# Production build (optimized)
npm run build-proxy

# Development build (faster compilation)
npm run build-proxy-dev

# Windows-specific build (uses build-windows.bat)
npm run build-proxy-windows

# Check code without building
npm run check-proxy

# Clean build artifacts
npm run clean-proxy

# Run tests
npm run test-proxy

# Format code
npm run fmt-proxy

# Run linter
npm run clippy-proxy

# Run proxy directly (for testing)
npm run run-proxy

Combined Commands:

# Build and run (development)
npm run proxy:dev

# Build and run (production)
npm run proxy:prod

# Full build (includes pre-build checks)
npm run build

Architecture

  • TypeScript CLI (src/cli.ts): Orchestrates Caddy and Rust proxy
  • Rust Proxy (rs/proxy.rs): High-performance HTTP/WebSocket proxy using Hyper
  • Caddy Server: Handles TLS termination and domain routing

Development Workflow

First Time Setup:

# 1. Install dependencies
npm install

# 2. Build the Rust proxy
npm run build-proxy

# 3. Start development
npm run dev

Daily Development:

# Quick development cycle
npm run proxy:dev

# Or step by step:
npm run build-proxy-dev  # Fast Rust build
npm run dev              # Start with auto-reload

Before Committing:

npm run fmt-proxy        # Format Rust code
npm run clippy-proxy     # Check Rust linting
npm run check-proxy      # Verify compilation
npm run test-proxy       # Run tests

Production Build:

npm run build           # Full optimized build
npm run proxy:prod      # Build and run production

Prerequisites

  • Rust: Install from https://rustup.rs/
  • Caddy: Web server for TLS termination
  • Bun: Runtime for TypeScript CLI

feats

  1. Port Forwarder, https://[port].fbi.com proxies to http://localhost:[port]
  2. Host Forwarder, https://[].[host].fbi.com proxies to [host] with url https://[].fbi.com
  3. Host:Port forwarder https://[host]--[port].fbi.com proxies to http://[host]:[port]
  4. Configurable host alias

...

configurable local Proxy generator

Environment Defaults:

LOCALHOST="fbi.com"
SERVICES="localhost:5600"

activitywatch=3000 activitywatch=3000 activitywatch=3000 activitywatch=3000


# https://activitywatch.fbi.com -> localhost:5600
activitywatch: :5600

# https://aw.fbi.com -> localhost:5600
aw: :5600

# https://calibre.fbi.com -> localhost:7250
calibre: :7250

# https://everything.fbi.com -> localhost:2489
everything: :2489

# https://vscode.fbi.com -> localhost:8000
vscode: :8000