# Gemserv

A gemini server written in rust.

## Features

 - Vhosts
 - CGI
 - User directories
 - Reverse proxy
 - Redirect

## Installation and running

OpenSSL 1.1.0g or LibreSSL 2.7.0 or newer is required.

 - Clone the repo
 - Run 'cargo build --release'
 - Modify the config.toml to your needs
 - Run './target/release/gemserv config.toml'

### NetBSD
If running on NetBSD you'll need to set the environmental variable OPENSSL_DIR
before compiling.

'export OPENSSL_DIR="/usr/pkg"'

Also to run you'll need to symlink libssl, and libcrypt to "/usr/lib" by
running:

'ln -s /usr/pkg/lib/libssl.so.1.1 /usr/lib'
'ln -s /usr/pkg/lib/libcrypt.so.1.1 /usr/lib'

Thanks to tiwesdaeg for figuring it out.

## CGI Environments

These variables are preset for you. If you need more you can define them in the
config file under "cgienv"

 - GEMINI_URL
 - SERVER_NAME
 - SERVER_PROTOCOL
 - SERVER_SOFTWARE
 - SCRIPT_NAME
 - REMOTE_ADDR
 - REMOTE_HOST
 - REMOTE_PORT
 - QUERY_STRING
