Skip to content

jaemk/proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

proxy

Build status Build Status crates.io:cli-proxy

command-line proxy server

This tool is intended for:

  • A quick stand-in for a real proxy server (For development purposes only).
  • A very simple static site/file server

Installation

Pre-compiled executables

See releases

Build from crates.io

cargo install cli-proxy

Build from source

  • clone this repo
  • cargo build --release

Updates

  • Self update functionality (from GitHub releases) is available behind --features update
  • Binary releases are compiled with the update feature
  • If you've downloaded a binary release, you can update to latest GitHub release via: proxy self update

Usage

Development proxy

# - listen on `localhost:3000`
# - serve requests starting with `/static/` from the relative path `static/`
# - serve requests starting with `/media/`  from the absolute path `/abs/path/to/media
# - serve requests starting with `/assets/` from the relative path `assets`
# - proxy requests starting with `/api/`    to  `localhost:4001`
# - proxy requests starting with `/status/` to  `localhost:4002`
# - proxy remaining requests to `localhost:3002`
proxy serve \
    --port 3000 \
    --static /static/,static/ \
    --static /media/,/abs/path/to/media \
    -s /assets/,assets \
    --sub-proxy /api/,localhost:4001 \
    -P /status/,localhost:4002 \
    localhost:3002

Static site server

# - generate crate documentation
cargo doc

# - serve / request with target/doc/<crate>/index.html
# - serve static files starting with "/" from target/doc
# - serve static files starting with "/" from target/doc/<crate>
proxy serve . \
    --file /,target/doc/<crate>/index.html,text/html \
    --static /,target/doc \
    --static /,target/doc/<crate>

Static file server

# - serve static files from the current directory
proxy fs .