# hellgate [!hellgate logo](mandatory-js-project-logo.png) a complete web-to-gemini proxy ## requirements - nodejs - npm - electron - openssh - sh - libgtk-2-0 - libgconf-2-4 - xvfb (if you're running it headless) ## setup - `sudo apt install libgtk2.0-0 libgconf-2-4` (if you're on debian, other distros idk) - `sudo apt install xvfb` (again, on debian) - `git clone https://tildegit.org/sose/hellgate` - `cd hellgate` - `sudo npm install -g electron --unsafe-perm=true` - `npm install` - `./gen_cert` - `npm start` or `xvfb-run npm start` - the server will listen on localhost:1965 - this is not configurable ## what is this? - hellgate is a web browser with a gemini server attached - ask the server for a webpage and it will access it, render it, and send it to you in gemtext format ## why not just use `curl` and convert the html to gemtext? - because hellgate runs a fully featured web browser, it has the ability to execute javascript like a browser would - this means websites that require javascript to function (like say, cnn.com) can be made accessible over gemini ## what is the `sigils` dir for? - hellgate is extensible through the use of files called 'sigils' - a sigil is a file containing user-created javascript that will execute inside the browser sandbox whenever its corresponding page is accessed - sigils are mainly used for generating nicer looking gemtext for specific websites, but they can be used to automate any action within the browser's javascript environment - sigils are located in the `sigils` dir and are titled with the domain name of their corresponding website - see [writing sigils](writing_sigils.md) for more info on how to write a sigil - if you write a new sigil for a specific website, don't hesitate to send it as a pull request to this repo