Gopher (RFC 1436) Web Proxy
gopherproxy is a Gopher (RFC 1436) and Gemini (gopher://zaibatsu.circumlunar.space/1/~solderpunk/gemini/docs/) Web Proxy that acts as a gateway into Gopherspace/Geminispace by proxying standard Web HTTP requests to Gopher/Gemini requests of the target server.
gopherproxy is a fork of https://github.com/prologic/gopherproxy.
Demo: https://proxy.vulpes.one/
Requirements
- libvips: Fast on-demand thumbnail generation
Installation
```#!bash $ go install git.vulpes.one/gopherproxy/...
## Usage
```#!bash
$ gopherproxy
Arguments:
-bind=<ip[:port]>
: The interface to bind to (default: "0.0.0.0:8000")-uri=<uri>
: The default address to open in the proxy (default: "floodgap.com")-robots-file=<file>
: robots.txt file to serve to protect Gopher sites from web crawlers (default: "robots.txt")-robots-debug=<true|false>
: Print output about clients ignoring robots.txt (this includes regular browsers) (default: false)-vips-concurrency=<n>
: Concurrency level of libvips (i.e. number of worker threads)
Development
For development, the following libraries and programs are required in addition to the previously listed ones:
- SASS (sassc): Compiling SCSS to CSS
- TypeScript (tsc): Compiling TypeScript to JavaScript
- Terser (terser): Minifying JavaScript
- fonttools (pyftsubset): Minifying fonts
Folder structure:
- assets: Assets that will be embedded into the executable using packr
- css: SCSS source files
- fonts: Fonts that will be minified
- js: TypeScript source files
I recommend using a git pre-commit hook that compiles all assets automatically:
```#!bash
!/bin/sh
make build git add -f assets exit 0 ```
License
MIT