All Projects → mozilla → node-janus

mozilla / node-janus

Licence: MIT License
https://wiki.mozilla.org/Mobile/Janus

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to node-janus

safe-dot-android
An app that 🔔 alerts you when a third-party 🕵🏻‍♀️ application uses your device camera or microphone. Privacy Indicators for Android
Stars: ✭ 63 (+8.62%)
Mutual labels:  privacy-protection
SevenZipSharp
Fork of SevenZipSharp on CodePlex
Stars: ✭ 171 (+194.83%)
Mutual labels:  compression
drynx
Decentralized, Secure, Verifiable System for Statistical Queries and Machine Learning on Distributed Datasets
Stars: ✭ 31 (-46.55%)
Mutual labels:  privacy-protection
userscript-proxy
HTTP proxy to inject scripts and stylesheets into existing sites.
Stars: ✭ 66 (+13.79%)
Mutual labels:  proxy-server
IpProxyPool
Golang 实现的 IP 代理池, 涉及到的技术点: go gorm proxy proxypool ip crawler 爬虫 mysql viper cobra
Stars: ✭ 36 (-37.93%)
Mutual labels:  proxy-server
rotating-proxy-python
Python script for rotation through Proxy Servers
Stars: ✭ 25 (-56.9%)
Mutual labels:  proxy-server
pxy
A simple proxy server with flexibility.
Stars: ✭ 31 (-46.55%)
Mutual labels:  proxy-server
autohosts
Automate hosts file updates on Linux and MacOS. Block Firefox telemetry, Google snooping and web trackers at the root.
Stars: ✭ 69 (+18.97%)
Mutual labels:  privacy-protection
BrotliSharpLib
Full C# port of Brotli compression algorithm
Stars: ✭ 77 (+32.76%)
Mutual labels:  compression
mtproto-proxy-server
Web Server & MTProxy MTPROTO is proxy for Telegram
Stars: ✭ 26 (-55.17%)
Mutual labels:  proxy-server
exhal
Compression and decompression tools for NES, SNES, and Game Boy games by HAL Laboratory
Stars: ✭ 54 (-6.9%)
Mutual labels:  compression
lepcc
Point Cloud Compression used in i3s Scene Layer Format
Stars: ✭ 22 (-62.07%)
Mutual labels:  compression
gon
Not meer another f2e build tool
Stars: ✭ 13 (-77.59%)
Mutual labels:  proxy-server
BitcoinCacheMachine
Run privacy-preserving Bitcoin payment infrastructure at your home or office. Deploy on commodity x64_86.
Stars: ✭ 18 (-68.97%)
Mutual labels:  privacy-protection
packtag
A JSP Taglib for delivering minified, combined and gzip-compressed resources (JavaScript and CSS).
Stars: ✭ 22 (-62.07%)
Mutual labels:  compression
naf
Nucleotide Archival Format - Compressed file format for DNA/RNA/protein sequences
Stars: ✭ 35 (-39.66%)
Mutual labels:  compression
StegoProxy
Steganography proxy implemented in java
Stars: ✭ 19 (-67.24%)
Mutual labels:  proxy-server
rc-zip
Pure rust zip & zip64 reading and writing
Stars: ✭ 93 (+60.34%)
Mutual labels:  compression
KCCacheProxy
Local caching proxy for KanColle
Stars: ✭ 74 (+27.59%)
Mutual labels:  proxy-server
BeeCloud-Proxy
BeeCloud Minecraft Bedrock Edition proxy server software with UDP protocol.
Stars: ✭ 22 (-62.07%)
Mutual labels:  proxy-server

Janus - Privacy & Compression Proxy

Build Status

Requirements

Installation

Get the code first.

git clone https://github.com/mozilla/node-janus

Next, use NPM to install all the dependencies.

cd node-janus  
npm install

Configuration and Usage

Proxy

You can find the default proxy configuration in config/default.yml. All settings are exposed and documented there.

You may edit the settings directly in the default configuration file or preferably override some of settings using a custom configuration file, see the node-config documentation for more details about the configuration system.

To start the proxy, just run

./proxy

The only command-line arguments supported are -h for help and -v for showing the version.

Firefox

Minimal Version

You need at least Firefox 33 for SPDY proxy support.

Self-Signed Certificates

When using a self-signed certificate, you need to add it to Firefox first. To do this, use Firefox to open the proxy via its host-port combination.

https://<proxy.host>:<proxy.port>/

This should prompt you to add an exception for the self-signed certificate.

Automatic Client Configuration Using the Add-On

The prefered way for using the proxy is by installing the Janus add-on. When using the add-on, you can conveniently configure the optional features of the proxy and view some statistics on bandwidth savings.

Should you have reasons to set up the proxy without the add-on, please follow the manual instructions next.

Manual Client Configuration

Desktop

You can configure the secure proxy in Preferences/Advanced/Network/Settings. Select Automatic proxy configuration URL and set it to your custom PAC file or use the default configuration served by the integrated PAC server.

http://<pac.host>:<pac.port>

This will serve a suitable PAC file with the proper host and ports set. Check config/default.yml for the default PAC server connection details.

Android

For Fennec the steps are similar. Open about:config and set network.proxy.autoconfig_url to the location of your PAC file or the Janus PAC server. To load the PAC file and activate the proxy, set network.proxy.type to 2.

Production Deployment

Additional Requirements

By default, the proxy uses a basic in-memory cache and does only log basic metric stats. Additionally, the proxy supports a Redis-based caching solution and StatsD metrics reporting.

To enable the Redis cache, you need to have a running Redis server instance. The proxy-side configuration is straight-forward using config/default.yml, where you set the host and port accordingly and switch caching modes by setting cache.type.

To view and process the full metrics, you need a receiver compatible to StatsD metrics. To establish a connection, simply set the metrics.statsd settings accordingly in config/default.yml or your local overriding config files.

Self-Signed Certificate

You will also need to use your own certificate for your server FQDN. You can generate a new key and a new certificate simply by executing this command from node-janus root directory:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout keys/key.pem -out keys/crt.pem

Be careful to correctly set the Common Name with your server FQDN, e.g., for example.com:

Common Name (e.g. server FQDN or YOUR name) []:example.com

Because a self-signed certificate is not delivered by a trusted CA, you will have to manually add it to your browser. Please have a look to the Firefox section for more details.

Development

We would be happy to accept pull requests for known issues or useful new features, so we encourage you to contribute!

Please make sure all tests pass locally before putting the request up for review, additional tests for new features would be great, too.

Tests

To run all tests use

npm test

To get coverage statistics use

npm run-script coverage

To run performance tests using Marionette you need to point the configuration to your Firefox binary in file config/test/test.yml, setting test.firefoxPath. Then launch the tests using

npm run-script marionette

To simulate different mobile network environments, use

npm run-script networksimulation 2G|3G|4G

and stop the system-wide simulation by reverting to the defaults using

npm run-script networksimulation default
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].