bunproxy

1.0.1 • Public • Published

Bun Proxy

Simple http + websockets proxy server, powerd by - Bun — A fast all-in-one JavaScript runtime without dependencies

Use cases

Setup your HTTPS Local network port forwarder with Caddy + bunproxy

  1. Create Caddyfile

Caddyfile

*.fbi.com {
	tls internal
	# match host
	@proxyhostport header_regexp hostport Host ([A-Za-z0-9-]+?)-([0-9]+)\.fbi.com
    @proxyhostonly header_regexp hostport Host ([A-Za-z0-9-]+?)\.fbi.com
    #
	reverse_proxy @proxyhostport http://bunproxy:9097 {
		header_up Host {re.hostport.1}:{re.hostport.2}
	}
	reverse_proxy @proxyhostonly http://bunproxy:9097 {
		header_up Host {re.hostport.1}:80
	}
	reverse_proxy http://bunproxy:9097
}

docker-compose.yml

services:
  caddy:
    image: caddy
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
    ports: [443:443, 80:80]
  bunproxy:
    restart: always
    build: .
    image: ghcr.io/snomiao/bunproxy
    # dev
    working_dir: /src
    command: bun --hot /src/index.ts
    volumes:
      - ./:/src
    environment:
      - PORT=9097
  nginx:
    image: nginx
  pong:
    image: caddy
    command: caddy respond --listen :2000-2004 "I'm server {{.N}} on port {{.Port}}"

Test your services by:

# without port, defaults to 80
curl -k https://nginx.fbi.com:8443

# with port
curl -k https://nginx-80.fbi.com:8443

# with port
curl -k https://pong-2000.fbi.com:8443

# with port
curl -k https://pong-2001.fbi.com:8443

Development

To install dependencies:

bun install

To run:

bun run index.ts

This project was created using bun init in bun v1.0.22. Bun is a fast all-in-one JavaScript runtime.

Caddy config

License

MIT

Package Sidebar

Install

npm i bunproxy

Weekly Downloads

0

Version

1.0.1

License

ISC

Unpacked Size

9.4 kB

Total Files

9

Last publish

Collaborators

  • snomiao