56 lines
1.2 KiB
Plaintext
56 lines
1.2 KiB
Plaintext
# 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
|
|
|
|
In the configuration file there's "cgi" which is an optional bool to turn cgi
|
|
on. If it's true it'll run scripts from any directory. To limit it to only one
|
|
directory set "cgipath"
|
|
|
|
Scripts have 5 seconds to complete or they will be terminated.
|
|
|
|
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
|