You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
kim (grufwub) e3aee14034 add updated builds based on 3.1.7
Signed-off-by: kim (grufwub) <grufwub@gmail.com>

Former-commit-id: ba526b1ea747c4af12cde9413834ca843669720c
3 years ago
build add updated builds based on 3.1.7 3 years ago
cmd add initial support for gemini, version bump to v3.0.0-alpha 4 years ago
core drop beta tag before merge to master 3 years ago
docs update CGI docs 3 years ago
gemini small CGI var rename 3 years ago
gopher initial support for PATH_INFO in CGI scripts 3 years ago
.gitignore see previous commit 4 years ago
LICENSE.md move LICENSE to LICENSE.md 4 years ago
README.md move note about chroots to docs/MISC.md 3 years ago
build.sh update compiled binaries 4 years ago
generate_cert.sh consolidate scripts to build.sh, move out of scripts/ 4 years ago
go.mod update go-errors 4 years ago
go.sum update go-errors 4 years ago

README.md

Gophi

A server with Gopher & Gemini protocol support in GoLang!

Unix (like) OSes only. Cross-compiled to way too many architectures. Build-script now much improved, but still not pretty...

I work on open-source projects like this and many others for free. If you would like to help support my work that would be hugely appreciated 💕 https://liberapay.com/grufwub/

Binary releases in build/

Features

  • Built with security, concurrency and efficiency in mind

  • LRU file caching with user-controlled cache size, max cached file size, refresh frequency and max file age before being marked as stale

  • Buffer pools to minimize allocations

  • CGI/1.1 support

  • URL encoding with query support

  • Path access restrictions with regex (see usage)

  • Request remapping with regex (see usage)

  • User server spaces (see usage)

  • Separate system and access logging

  • Chroot and privilege dropping support (see extra notes for more information)

  • Only 1 external dependency, go-toml brought in by my own go-config library

Further Docs

Usage

Example Configuration

CGI compliance

Gopher specific information

Gemini specific information

Extra notes

Future plans

  • improve the build scripts...

  • gemini vhosts

  • chroot setup script

  • Gemini enforce TLS client validity / certificate zones

  • SCGI