sose 577ce9a4a3 | ||
---|---|---|
sigils | ||
.gitignore | ||
gen_cert.sh | ||
hellgate.js | ||
license | ||
mandatory-js-project-logo.png | ||
package-lock.json | ||
package.json | ||
preload.js | ||
readme.md | ||
writing_sigils.md |
readme.md
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
orxvfb-run npm start
- the server will listen on localhost
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 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
Notes
- as of right now the npm version of gemini-server is broken, use the version from github or this will not work