hellgate/readme.md

55 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-25 04:51:02 +00:00
----
2021-04-23 23:43:02 +00:00
2021-04-25 04:51:02 +00:00
A complete web-to-gemini proxy
## Requirements
2021-04-23 23:43:02 +00:00
- nodejs
- npm
- electron
- openssh
- sh
- libgtk-2-0
- libgconf-2-4
- xvfb (if you're running it headless)
2021-04-25 04:51:02 +00:00
## Setup
2021-04-23 23:43:02 +00:00
- `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
2021-04-25 04:51:02 +00:00
## What is this?
2021-04-23 23:43:02 +00:00
- 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
2021-04-25 04:51:02 +00:00
## Why not just use `curl` and convert the html to gemtext?
2021-04-23 23:43:02 +00:00
- 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
2021-04-25 04:51:02 +00:00
## What is the `sigils` dir for?
2021-04-23 23:43:02 +00:00
- 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
2021-04-25 04:51:02 +00:00
## Notes
2021-04-24 04:46:36 +00:00
- as of right now the npm version of gemini-server is broken, use the version
from github or this will not work