An extensible, general purpose http->gemini mirror with full javascript support, live at gemini://illegaldrugs.net/cgi-bin/hellgate
Go to file
sose cfe343a950 remove testing tls keys 2021-04-24 04:48:07 +00:00
sigils first commit 2021-04-23 16:43:02 -07:00
.gitignore remove testing tls keys 2021-04-24 04:48:07 +00:00
gen_cert.sh first commit 2021-04-23 16:43:02 -07:00
hellgate.js configurable ports 2021-04-24 04:46:36 +00:00
license first commit 2021-04-23 16:43:02 -07:00
mandatory-js-project-logo.png first commit 2021-04-23 16:43:02 -07:00
package-lock.json first commit 2021-04-23 16:43:02 -07:00
package.json first commit 2021-04-23 16:43:02 -07:00
preload.js first commit 2021-04-23 16:43:02 -07:00
readme.md configurable ports 2021-04-24 04:46:36 +00:00
writing_sigils.md first commit 2021-04-23 16:43:02 -07:00

readme.md

hellgate logo 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

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