hellgate/readme.md

53 lines
1.9 KiB
Markdown
Raw Normal View History

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