All Projects → InstantWebP2P → peer-proxy

InstantWebP2P / peer-proxy

Licence: MIT license
Secure local web service exposed from Peer even behind NAT/FW

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to peer-proxy

roxy
Roxy the Frontend Proxy
Stars: ✭ 52 (-16.13%)
Mutual labels:  reverse-proxy
docker-nginx-http3
Docker image for Nginx + HTTP/3 powered by Quiche
Stars: ✭ 19 (-69.35%)
Mutual labels:  reverse-proxy
NakovForwardServer
TCP port forwarding software, written in Java: forwards a local TCP port (e.g. 127.0.0.1:1521) to external port (e.g. 0.0.0.0:1522)
Stars: ✭ 41 (-33.87%)
Mutual labels:  reverse-proxy
medium-go-nginx-docker
Use Nginx with Docker to serve a Golang app.
Stars: ✭ 45 (-27.42%)
Mutual labels:  reverse-proxy
docker-varnish
Docker image for Varnish Cache (caching HTTP reverse proxy)
Stars: ✭ 46 (-25.81%)
Mutual labels:  reverse-proxy
p3y
A single binary reverse proxy written in go. It was developed for use in Kubernetes, to wrap services like Prometheus with simple BasicAuth and TLS encryption.
Stars: ✭ 15 (-75.81%)
Mutual labels:  reverse-proxy
spp
A simple and powerful proxy
Stars: ✭ 575 (+827.42%)
Mutual labels:  reverse-proxy
http-knocking
🚪HTTP-Knocking hides a Web server and open it by knocking sequence: Hide Web server until your knocks
Stars: ✭ 28 (-54.84%)
Mutual labels:  reverse-proxy
onionjuggler
Manage your Onion Services via CLI or TUI on Unix-like operating system with a POSIX compliant shell.
Stars: ✭ 31 (-50%)
Mutual labels:  hidden-service
deflek
index and API RBAC for Elasticsearch and Kibana via reverse proxy. DEPRECATED
Stars: ✭ 13 (-79.03%)
Mutual labels:  reverse-proxy
GhostNET
GhostNET script that will help you be safer on the cyber
Stars: ✭ 45 (-27.42%)
Mutual labels:  hidden-service
wsp
HTTP tunnel over Websocket
Stars: ✭ 85 (+37.1%)
Mutual labels:  reverse-proxy
palantir
🔮 HTTP REST API reverse proxy
Stars: ✭ 21 (-66.13%)
Mutual labels:  reverse-proxy
nginx-proxy
Docker container for automatically creating nginx configuration based on active services in docker host.
Stars: ✭ 28 (-54.84%)
Mutual labels:  reverse-proxy
tunman
Comprehensive solution for SSH tunnels - respawning, healthchecking/monitoring
Stars: ✭ 43 (-30.65%)
Mutual labels:  reverse-proxy
haskell-ricochet
(WIP/Experimental) Ricochet implementation as Haskell Library.
Stars: ✭ 22 (-64.52%)
Mutual labels:  hidden-service
authentik
The authentication glue you need.
Stars: ✭ 2,941 (+4643.55%)
Mutual labels:  reverse-proxy
menshend
stateless auth programmable reverse (http/tcp) proxy, with a restful api, cli and web interface that use vault as backend
Stars: ✭ 19 (-69.35%)
Mutual labels:  reverse-proxy
docker-media-server
Jellyfin media server with sonarr, radarr, ombi, jackett, deluge and traefik
Stars: ✭ 37 (-40.32%)
Mutual labels:  reverse-proxy
jesi
Hypermedia API Accelerator
Stars: ✭ 19 (-69.35%)
Mutual labels:  reverse-proxy

peer-proxy

Expose local web service from Peer even behind NAT/FW

Features

  • Expose local http server, behind firewall/nat
  • Expose remote website, behind firewall/nat
  • Proxy Websocket
  • Forward proxy tunneling
  • Secure end-to-end connections
  • Token-based authentication based on user's IP address
  • Rewrite location header in 3XX redirection response
  • Rewrite href in 2XX text/html response
  • Run over STUN session with appnet.io-stun-proxy
  • Proxy web server dynamically on fly
  • Http basic-auth support

Install

  • npm install peer-proxy, or git clone peer-proxy && cd peer-proxy && npm install
  • peer-proxy depend on node-httpp, please build it from repo nodejs-httpp
  • setup your own AppNet.io backend controller services refer to AppNet.link-controller

Usage/API:

1. create proxy-example.js
var Proxy = require('peer-proxy');
var prx = new Proxy(['http://w3schools.com/', 'http://example.com/'], function(err, proxyURL){
    console.log('Website                            Proxy URL(please open it on browser)');
    for (var k in proxyURL) {
        console.log(k+'        '+proxyURL[k]);
    }
});

2. launch proxy server by node-httpp-binary-directory/node.exe proxy-example.js in case Windows machine.
   console dump like below:
   Website                            Proxy URL(please open it)
   http://w3schools.com/        https://zfaef294477c5aa14s.fae725b2c0812dc6.vurl.51dese.com:51688//vtoken/eb04d54a2f9edd5d
   http://example.com/        https://z7fd8e9e469ef6733s.fae725b2c0812dc6.vurl.51dese.com:51688//vtoken/eb04d54a2f9edd5d
   
3. use peer-proxy binary on Linux, like  ./bin/peer-proxy -t http://example.com
   Website                            Proxy URL(please open it on browser)
   http://example.com        https://zc5a93bdde908a92cs.d4ddf763050ab93e.vurl.51dese.com:51688//vtoken/8bb975c3385f47f3

4. in case the local http server run on localhost with port 3000, do ./bin/peer-proxy -t http://localhost:3000
   if it's https server on port 3000, do ./bin/peer-proxy -t https://localhost:3000
   
5. run over STUN with appnet.io-stun-proxy, just embed 'vlocal.' as sub-domain in origin vURL, 
   like https://zc5a93bdde908a92cs.d4ddf763050ab93e.vurl.vlocal.51dese.com:51688//vtoken/8bb975c3385f47f3

TODO:

  • Rewrite href in text/html using DOM instead of regex

Support us

  • Welcome contributing on document, codes, tests and issues

### License

(The MIT License)

Copyright (c) 2012-present Tom Zhou([email protected])

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].