1.0.13 • Published 2 years ago

proxygen v1.0.13

Weekly downloads
6
License
MIT
Repository
-
Last release
2 years ago

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

1.0.13

2 years ago

1.0.12

3 years ago

1.0.11

3 years ago

1.0.10

4 years ago

1.0.9

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.0

4 years ago