Featured command-line interface for rocky.
Works with rocky +0.3
Installation
npm install -g rocky-cli
Standalone binaries
Packaged using nar. Shipped with node.js 0.12.7
Build your own binaries
To build an up-to-date binaries, just follow the next steps:
npm install -g nar
git clone https://github.com/h2non/rocky-cli.git && cd rocky-cli
npm install
npm run nar
Usage
chmod +x rocky-cli-0.1.4-linux-x64.nar
./rocky-cli-0.1.4-linux-x64.nar exec --port 3000 --config rocky.toml
Usage
Start rocky HTTP proxy serverUsage: rocky [options] Options: --help, -h Show help [boolean] --config, -c File path to TOML config file --port, -p rocky HTTP server port --forward, -f Default forward server URL --replay, -r Define a replay server URL --route, -t Define one or multiple routes, separated by commas --key, -k Path to SSL key file --cert, -e Path to SSL certificate file --secure, -s Enable SSL certification validation --balance, -b Define server URLs to balance between, separated by commas --mute, -m Disable HTTP traffic log in stdout [boolean] --debug, -d Enable debug mode [boolean] -v, --version Show version number [boolean] Examples: rocky -c rocky.toml \ -f http://127.0.0.1:9000 \ -r http://127.0.0.1
Examples
Passing the config file:
rocky --config rocky.toml --port 8080
Reading config from stdin
:
cat rocky.toml | rocky --port 8080
Transparent rocky.toml
file discovery in current and higher directories:
rocky --port 8080
Alternatively rocky
can find the config file passing the ROCKY_CONFIG
environment variable:
ROCKY_CONFIG=path/to/rocky.toml rocky --port 8080
Or for simple configurations you can setup a proxy without a config file, defining the routes via flag:
rocky --port --forward http://server --route "/download/*, /images/*, /*"
Configuration file
Default configuration file name: rocky.toml
For an up-to-date list of supported configuration params, see rocky documentation
The configuration file must be declared in TOML language
port = 8080forward = "http://google.com"replay = ["http://duckduckgo.com"] [ssl]cert = "server.crt"key = "server.key" ["/users/:id"]method = "all"forward = "http://new.server" ["/oauth"]method = "all"forward = "http://auth.server" ["/*"]method = "GET"forward = "http://old.server" ["/download/:file"]method = "GET"timeout = 5000balance = ["http://1.file.server", "http://2.file.server"] ["/photo/:name"]method = "GET"replayAfterForward = true[[replay]] target = "http://old.server" forwardHost = true[[replay]] target = "http://backup.server"
License
MIT - Tomas Aparicio