Tab Cloak
Wisp Protocol Transport
Advanced Options
Search Engine
Select Theme
Icon Presets
Enable Devtools
Read below for information if the official site is blocked or for obtaining more links. Can't deploy using any of the free options below? Check out Railway or look into cheap, paid VPS hosting solutions.
Be sure to join Titanium Network's Discord for more official site links: https://discord.gg/unblock
master
and the dev container
configuration is set to Holy Unblocker LTSnpm run fresh-install
and npm start
in the terminalEither use the button above to deploy to the deployment options above or type the commands below on a dedicated server:
git clone --recurse-submodules https://github.com/titaniumnetwork-dev/Holy-Unblocker.git
cd Holy-Unblocker
git submodule init
# Using the configuration file you can automatically use pm2 if you are hosting on a VPS!
npm run fresh-install
npm start
# Or on subsequent uses...
npm restart
# If you encounter any build errors...
npm run build
# If you encounter any service errors...
npm run proxy-validator
This website is hosted locally with Scramjet, Ultraviolet (Wisp, Bare-Mux, EpoxyTransport, CurlTransport) and Rammerhead built-in.
The default place for the proxy when its started is
http://localhost:8080
, but you can change it if needed in
./ecosystem.config.js
. You can also modify the other
configuration values at ./config.json
. To clarify you change the
PORT and other production metrics via ./ecosystem.config.js
.
Localized changes for source randomization, auto-minify, etc. are located in
./config.json
.
Simply host Tor using this guide: https://tb-manual.torproject.org/installation/
If you are hosting Holy Unblocker LTS on a VPS utilizing Ubuntu consider attaching Tor to systemctl for easier production management. Once Tor is up and running on either Linux or Windows it will work automatically with Holy Unblocker LTS when enabled by the user via the Settings menu.
The primary location for tweaking any web proxy related settings assigned via
the Settings menu is ./views/assets/js/register-sw.js
. Here you
can modify the provided transport options set locally via a cookie, swap out
SOCKS5 proxies, change Onion routing ports, specify a blacklist, and more.
stockSW
: The default service worker configuration file for
Ultraviolet. For Holy Unblocker however adblocking is automatically enabled
so this is not used by default.
blacklistSW
: A modified version of Ultraviolet that allows for
blacklisting domains and adblocking.
proxyUrl
: Specifies a SOCKS5 protocol URL defaulting to the
default Tor proxy port. This can be swapped out with any valid port or
SOCK5s proxy.
transports
: Specifies any provided ports to be swapped via
Bare-Mux and utilize Wisp.
wispUrl
: Modify the pathname or url handling for WispdefaultMode
: Specify the default transport used globally (can
be swapped by the users still via the Settings menu)
ScramjetController
: This constructor allows you to swap out the
prefix used for Scramjet dynamically and specify file locations. Note you
may need to edit ./views/scram/scramjet.sw
when changing file
names.
The primary location for any client side navigation scripts is
./views/assets/js/common.js
. This file is primary used for
Omnibox (Search Engine) functionality, swapping proxy options and linking
games.
getDomain
: This constant is used for specifying any subdomains
to remove when appending a URL into the omnibox.
goFrame
: This specifies the stealth frame used for Holy
Unblocker LTS
sx
: This constant specifies the search engine you want to be
proxied whenever a user types something in that isn't a URL
search/uvUrl/sjUrl
: These functions specify and parse the
queries used for submitted URLs
RammerheadEncode:
This constant is a dependency for Rammerhead
parsing and querying
urlHandler/asyncUrlHandler
: Used to set functions for the
goProx object.
goProx
: This constant allows for the mapping of URL handling
for specific proxies, games or links that need to fall under a web proxy.
const goProx = Object.freeze({
ultraviolet: urlHandler(uvUrl),
scramjet: urlHandler(sjUrl),
rammerhead: asyncUrlHandler(
async (url) => location.origin + (await RammerheadEncode(search(url)))
),
// `location.protocol + "//" + getDomain()` more like `location.origin`
examplepath: urlHandler(location.protocol + `//c.${getDomain()}/example/`),
examplesubdomain: urlHandler(location.protocol + '//c.' + getDomain()),
example: urlHandler(sjUrl('https://example.com')),
});
prSet
: Attaches event listeners using goProx for any buttons or
inputs needed
// prSet function code here....
prSet('pr-uv', 'ultraviolet');
prSet('pr-sj', 'scramjet');
prSet('pr-rh', 'rammerhead');
prSet('pr-yt', 'youtube');
prSet('pr-example', 'example');
huLinks/navLists
: Automatically takes paths stated in
./views/assets/json
and appends them depending on the page and
usage. This is used for hiding links that would lead to filter blocks and
create an easier system for adding games.
As stated above all game links that need to be appended to a page (including
images and descriptions) are managed via the nav files
in./views/assets/json
. When cloning Holy Unblocker utilize
--recurse-submodules
to ensure all submodules are downloaded
along with git submodule init
.
views/archive/g
: Contains any local or external HTML5/web
games.
views/archive/gfiles/flash
: Contains Ruffle (an Adobe Flash
emulator) and a collection of flash games linked to an external CDN.
views/archive/gfiles/rarch
: Contains webretro which is a
project that ports RetroArch to WASM. Supports many systems like GBA, N64,
etc; ROMS are NOT INCLUDED.
index.html
: The homepage of the site. -
error.html
: A general error page for all 404 errors and other
errors. - info.html
: Documentation (This page!) -
faq.html
: Frequently asked questions page. -
hidden.html
: Fake "Site not Found" page (unused) -
frame.html
: Handles any pages under stealth. -
surf.html
: Web Proxies page, page offers to be redirected to any
proxies you would like to add. In this case, Ultraviolet and Rammerhead. -
credits.html
: List of all contributors to the site. -
bookmarklets.html
: Bookmarklets page, to be worked on more in the
future. - icons.html
: Information regarding Settings Menu page.
Added this in for standard users. - terms.html
: Terms of
Services, AUP and Privacy Policy page. - gtools.html
: Games page,
help from @BinBashBanana and @kinglalu. - games5.html
: HTML5 game
navigation page. - emulators.html
: Emulator navigation page,
using webretro. -
emulibrary.html
: Games page for emulated games (not included in
public release) - flash.html
: Games page for flash games, credits
given to @BinBashBanana and Titanium Network for its assets. -
ultraviolet.html
: TODO - scramjet.html
: TODO -
rammerhead.html
: TODO - youtube.html
: A proxied
version of Youtube running off the locally hosted Ultraviolet. -
discord.html
: Hub for the Discord proxy. -
reddit.html
: Hub for the Reddit proxy.
/views/
: The physical site base of Holy Unblocker goes here
where static assets are served.
/src/
: For future implementation of obfuscation and keyword
removing features.
/views/
/archive/
is used for game pages and vibeOS./pages/
is used for the HTML for the site./assets/
is used for storing various CSS, JS, image, and JSON
files.
/views/assets/js/
bareTransport.js
is a locally installed version of the bare
transport module which allows Ultraviolet to function.
card.js
adds a fancy visual effect to the box cards displayed
on the welcome screen.
common.js
is used on all pages and allows commonly used
features to function.
csel.js
manages the settings menu on the header.particles.js
is the animated background effect that's
present on all pages.
register-sw.js
creates and manages service workers that allow
Ultraviolet to function, and also uses bare transport.
You will first want to host your proxies locally or externally. OUTDATED
Out of the list of hosting providers Dedipath and Azure rank first as a preference. You may also self-host.
After you have selected a decent VPS, use Cloudflare for the DNS records for both the site and the subdomains for the proxies.
This is an example of DNS records involving Heroku. Self-hosting will require
A records
preferably.
@
and www.example.ml
are being used for Holy
Unblocker LTS.
client.example.ml
is being used for other instances like
Libreddit or Invidious.
As stated previously, Holy Unblocker is hosted locally with Scramjet, Ultraviolet and Rammerhead out of the box. No need for external instances.
For beginners, Freenom is a good provider for obtaining domains for free.
However, Freenom only provides their TLDs (.cf
, .ml
,
.gq
, .ga
, and .tk
) for free, which can
be easily blocked.
www.example.cf
and example.cf
with .cf being
interchangeable with other Freenom domain names.
.net
domain normally costs around $10. On
Porkbun for the first year it costs $3 so its definitely a deal.
Make sure they are CNAME although A records also work and try to follow this structure:
Type | Name | Target
CNAME | @ | your-main-heroku-target-here.herokudns.com
CNAME | www | your-main-heroku-target-here.herokudns.com
Below are if you want external proxies also with your site:
CNAME | a | your-womginx-instance-here.herokudns.com
Make sure HTTPS is forced and have SSL set to Flexible for some services. Otherwise you can have SSL set to Full.
Preferably if you have your own device use Visual Studio Code. Pretty much the best option you can get but obviously this is an opinion. Also make sure you have Node.JS installed on your machine.
Not going to go too in depth with this part but first fork this repository. The clone it locally through a Terminal of some sort depending on what OS you are on. Make sure you navigate to the folder you want to set this up in.
git clone https://github.com/QuiteAFancyEmerald/Holy-Unblocker.git
cd Holy-Unblocker
npm install
Now simply add the folder you cloned this repo in in VSC. Then run
npm install
. I recommend that if you are releasing this
publically on GitHub that you add a .gitignore
in your root
directory with the following exclusions:
node_modules
Now you have your following workspace environment setup. To deploy the following workspace you just created you will need to look up depending on your hosting provider.
For an online IDE that you can use on your school computer and/or chromebook use GitPod. Basically the equivalent of Visual Studio Code but with in-browser support.
https://gitpod.io/
https://gitpod.io#https://github.com/YourNameHere/Holy-Unblocker/
Use the same steps above by running npm install
in your
repository and adding a .gitignore
in your root directory
specifying to exclude node_modules
.
Yes, this project is active again for LTS support! However, the approach is now much simpler to ensure functionality: traffic will be focused on a single domain. More than ever, this project serves as a proof of concept for the brave souls willing to innovate in the web proxy service space.
This project is maintained by the Holy Unblocker LTS team and is an official flagship Titanium Network web proxy site.
View the official website for more detail and credits.
This project currently uses Scramjet and Ultraviolet as web proxies adhering to the Wisp protocol. Bare-Mux is utilized for swapping transport systems to be utilized with Wisp. The included transport systems are EpoxyTransport and libcurl-transport. Rammerhead is also provided as an additional web proxy option.