proxygen
TypeScript icon, indicating that this package has built-in type declarations

1.0.13 • Public • Published

proxygen

Generate a local development proxy in minutes.

This tool will allow you to easily create a proxy to connect various services you might be using during development, while allowing you to use a secure connection / SSL in your browser.

Installation

npm install -g proxygen

Usage

Launch proxygen:

proxygen proxygen.json

Configuration

Create a proxy configuration file named proxygen.json.

For each proxy, you can configure conditions and an action:

{
  "hosts": ["www.sample.dev"],
  "proxies": [{
    "conditions": [{ "target": "host", "type": "equals", "value": "www.sample.dev", "then": "pass" }],
    "action": { "type": "proxy", "host": "www.sample.com" }
  }]
}

Make sure to create hosts file entries for the hosts you have specified:

127.0.0.1 www.sample.dev

SSL Certificates

proxygen will automatically create SSL certificates for the domains specified. When you start proxygen the first time, a CA certificate will be installed in ~/.proxygen/proxygen.ca.cert.pem. Make sure to 'trust' this certificate in your keychain settings.

Use Cases

You might have a setup similar to this:

Using proxygen, you can easily set up the following routing:

Example Configuration:

{
  "hosts": ["www.awesome.dev"],
  "proxies": [{
    "name": "APIServer",
    "conditions": [{ "target": "path", "type": "matches", "value": "^/api/", "then": "pass" }],
    "action": { "type": "proxy", "host": "127.0.0.1", "port": 9000 }
  }, {
    "name": "GraphQLServer",
    "conditions": [{ "target": "path", "type": "matches", "value": "^/graphql/", "then": "pass" }],
    "action": { "type": "proxy", "host": "127.0.0.1", "port": 9001 }
  }, {
    "name": "CloudStorage",
    "conditions": [{ "target": "path", "type": "matches", "value": "^/cdn/", "then": "pass" }],
    "action": { "type": "cache", "protocol": "https:", "host": "cdn.awesome.com", "root": "/tmp/cdn" }
  }, {
    "name": "Website",
    "action": { "type": "proxy", "host": "127.0.0.1", "port": "8080" }
  }]
}

Run as Service

Install forever:

npm install -g forever

Start service:

forever start (which proxygen)

License

MIT

Readme

Keywords

none

Package Sidebar

Install

npm i proxygen

Weekly Downloads

1

Version

1.0.13

License

MIT

Unpacked Size

31.9 kB

Total Files

18

Last publish

Collaborators

  • tstrebitzer