diff --git a/README.md b/README.md index 1119dff..0348228 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,10 @@ The deployable version of Ultraviolet, a highly sophisticated proxy used for eva [![Deploy to Koyeb](https://www.koyeb.com/static/images/deploy/button.svg)](https://github.com/titaniumnetwork-development/Ultraviolet-Node/wiki/Deploy-to-Koyeb) +If you are deploying to an alternative service or to a server, refer to [Deploy via terminal](https://github.com/titaniumnetwork-development/Ultraviolet-Node/wiki/Deploy-via-terminal). + +Additional information such as customizing your frontend can be found on the [wiki](https://github.com/titaniumnetwork-development/Ultraviolet-Node/wiki). + ## Features - CAPTCHA support along with hCAPTCHA support @@ -45,139 +49,3 @@ The deployable version of Ultraviolet, a highly sophisticated proxy used for eva - [Incognito](https://github.com/caracal-js/Incognito), a popular web proxy service with focus on privacy - [Holy-Unblocker](https://git.holy.how/holy/website), a popular web proxy service focusing on bypassing web filters and more - [Hypertabs](titaniumnetwork.org/), a web proxy service using a PWA browser as its frontend - -## Table of Contents - -- [Installation And Setup](#installation-and-setup) -- [Basic Guide](#basic-guide) -- [Replit Setup Guide](#replit-setup-guide) -- [Comprehensive Guide](#comprehensive-guide) -- [Configuration](#configuration) -- [Frontend](#static-files) -- [Core Scripts](#core-scripts) - -# Installation and Setup - -Installation of Ultraviolet is simple. You can find a Tl;DR of the installation and setup process just below. If you are unfamiliar with the "standard" installation process, look a bit farther down for a more comprehensive installation and setup guide. - -## Basic Guide - -```sh -$ git clone https://github.com/titaniumnetwork-development/Ultraviolet-Node -$ cd Ultraviolet-Node -$ npm install -$ npm start -``` - -## Replit Setup Guide - -To setup on Replit, first click on the "Run on Replit" button. After loading into your repl, click on the green "Run" button. Alternatively, run the following commands: - -```sh -$ npm install -$ npm start -``` - -## Comprehensive Guide - -Below will describe a comprehensive guide to install Ultraviolet on Linux machines. - -To clone the repository, simply run the following command: - -```sh -$ git clone https://github.com/titaniumnetwork-development/Ultraviolet-Node -``` - -To begin work on the actual setup, cd into the repository. You can do so by running the following command: - -```sh -$ cd Ultraviolet-Node -``` - -From here, you can install your dependencies. To do so, run the following command: - -```sh -$ npm install -``` - -Finally, to start Ultraviolet, run the following command: - -```sh -$ npm start -``` - -You can then find Ultraviolet on `http://127.0.0.1:8080`. If you would like to change the port UV will be running on: - -- edit the last line in [src/index.js](src/index.js) -- set the `PORT` environment variable - -Please note that UV will not function without HTTPS. If you are hosting on Replit or Heroku, this won't be a problem as they provide you with SSL/TLS by default and will automatically apply it to your instance, however if you are attempting to host UV on a different platform, such as a personal server, you **WILL** need to use HTTPS. - -## Static Files - -The static files (frontend) is generated in the [Ultraviolet-Static](https://github.com/titaniumnetwork-development/Ultraviolet-Static) repository. You can follow the instructions within the repository to modify the frontend here. - -## Configuration - -Configuring Ultraviolet is very simple. Simple descriptions of each configurable option are provided as a comment in the block below. More detailed documentation can be found just below mentioned block. - -`uv.config.js` - -```javascript -self.__uv$config = { - prefix: "/sw/", // Proxy url prefix - bare: "/bare/", // Bare server location - encodeUrl: Ultraviolet.codec.xor.encode, // URL Encoding function - decodeUrl: Ultraviolet.codec.xor.decode, // Decode URL function - handler: "/uv.handler.js", // Handler script - bundle: "/uv.bundle.js", // Bundled script - config: "/uv.config.js", // Configuration script - sw: "/uv.sw.js", // Service Worker Script -}; -``` - -| Configuration | Options and Explanation | -| ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Prefix | The prefix is the prefix that you want users to see. Ex: `https://example.com/service.` The default prefix is `service`. | -| Bare | Bare Servers can run on directories. For example, if the directory was /bare/ then the bare origin would look like `http://example.org/bare/`. The bare origin is passed to clients. | -| encodeUrl | EncodeUrl is how you want the URL a proxy site's visitors has to be encoded. Options include `Ultraviolet.codec.base64.encode`, `Ultraviolet.codec.plain.encode`, or `Ultraviolet.codec.xor.encode`. It is recommended that you use `xor` or `base64` as it hides the queries your visitors are searching and visiting. | -| decodeURL | DecodeUrl is how you want the url to be decoded. It is recommended you keep it the same as `encodeUrl`. | -| Handler | Handler is the path to the UV handler. The default name and path to this file is `static/uv/uv.handler.js`. | -| Bundle | Bundle is the path to the UV bundle file. The default name and path to this file is `static/uv/uv.bundle.js`. | -| Config | Config is the path to the UV config file. The default name and path to this file is `static/uv/uv.bundle.js`. | -| SW | SW is the path to the UV Service Worker script. The default name and path to this file is `static/uv/uv.sw.js`. | - -## Nginx configuration - -```nginx -location / { - proxy_busy_buffers_size 512k; - proxy_buffers 4 512k; - proxy_buffer_size 256k; - proxy_pass http://localhost:8080; - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection 'Upgrade'; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-Host $host:$server_port; - proxy_set_header X-Forwarded-Server $host; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Host $host; -} - -``` - -## Core Scripts - -[Configuration](#configuration) mentions a few scripts that make up Ultraviolet. To get documentation for what each of the scripts do, check out the [documentation](https://github.com/titaniumnetwork-development/Ultraviolet-Core) for them in their standalone repository. - -# Main Scripts After Building - -The client-hooking & service worker scripts required for UV are located in [ultraviolet-scripts](https://github.com/titaniumnetwork-development/Ultraviolet-Core) - -- Scripts - - `uv.sw.js` Service worker gateway - - `uv.sw-handler.js` - Service worker handler - - `uv.bundle.js` Webpack compiled Ultraviolet rewriter - - `uv.handler.js` Client-side hooking - - `uv.config.js` Configuration