https://github.com/fabiosantoscode/magicproxy
A proxy for front-end web development. It changes responses from remote websites
https://github.com/fabiosantoscode/magicproxy
Last synced: 4 months ago
JSON representation
A proxy for front-end web development. It changes responses from remote websites
- Host: GitHub
- URL: https://github.com/fabiosantoscode/magicproxy
- Owner: fabiosantoscode
- Created: 2013-09-05T14:51:09.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2014-11-24T15:49:32.000Z (about 11 years ago)
- Last Synced: 2025-03-25T04:26:51.984Z (10 months ago)
- Language: JavaScript
- Size: 303 KB
- Stars: 12
- Watchers: 5
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# magicProxy
A proxy for front-end web development. It changes responses from remote websites.
Using this, you can forget about having your local HTTP server or using `rsync`/`wget` to sync your computer with the remote site, broken URLs and ajax APIs, cross-domain problems, and just access the website you are changing and activate the `replace.js` or `fakeDir.js` plugins.
You can also access websites only accessible to your computer (E.G. in your local server and/or with a hostname only you have in `/etc/hosts`) from the outside, by accessing through your proxy.
## Installation
1. Clone this repository
git clone git@github.com:fabiosantoscode/magicProxy.git
cd magicProxy
2. Npm install the dependencies
npm install
3. Run the proxy
node index.js -c magicproxyrc.example
4. Access your system's network configuration, and set up your proxy to `localhost`, port `8080`. Check that everything works.
5. Access http://www.example.com/, see the changes made by the proxy, and play around with magicproxyrc.example (the configurations are reloaded on the fly).
## Included plug-ins.
- replace.js: Intercepts requests for key files and responds with local files instead.
- fakeDir.js: Pretend a local folder is actually on the server.
- markup.js: Uses [cheerio](https://github.com/MatthewMueller/cheerio) for changing HTML markup. You can insert or remove chunks.
- empty.js: Empty some HTTP responses. Useful for annoying tracking scripts.
- log.js: Log HTTP verbs, status codes and URLS for every response.
Configuration instructions are written in the plugins' `.js` files.
## Usage examples:
- Work on the JS code of a remote website on its true environment without tripping on cross-domain policy
- Change the living, working HTML on a remote website without worrying about using relative URLs
- Stop scripts which jam your debugger from loading
- Remove some elements from remote sites you are working on, such as video players, canvases, etc.
## Roadmap:
- A plug-in interface with a unified configuration system
- HTTPS support, WS support
- A simple command line interface (execute on a folder, looks for .magicproxyrc configuration files and load them)
- Run as a web application for showing others your local work
- Split plugins into several projects
- Verbose mode, which shows what requests were changed, and by which plugin
- Automatic rebuild plugin, which watches directory for changes and executes a script when necessary
Be happy!
-- Fábio