# 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](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=`: The interface to bind to (default: "0.0.0.0:8000") - `-uri=`: The default address to open in the proxy (default: "floodgap.com") - `-robots-file=`: robots.txt file to serve to protect Gopher sites from web crawlers (default: "robots.txt") - `-robots-debug=`: Print output about clients ignoring robots.txt (this includes regular browsers) (default: false) - `-vips-concurrency=`: 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