2021-04-23 23:45:16 +00:00
|
|
|
![hellgate logo](mandatory-js-project-logo.png)
|
2021-04-23 23:43:02 +00:00
|
|
|
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`
|
2021-04-24 04:46:36 +00:00
|
|
|
- the server will listen on localhost
|
2021-04-23 23:43:02 +00:00
|
|
|
|
|
|
|
## 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
|
2021-04-24 04:46:36 +00:00
|
|
|
|
|
|
|
## notes
|
|
|
|
- as of right now the npm version of gemini-server is broken, use the version
|
|
|
|
from github or this will not work
|