Skip to content

antanst/gemini-grs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gemini-grs

A Gemini protocol server written in Rust.

TODO

  • Configuration via environment variables
  • Proper logging
  • Serve images
  • Read and send file in chunks instead of serving whole file from memory
  • Expand to serve other protocols (spartan, scroll, titan etc.)
  • Async I/O?

External dependencies

OpenSSL

Building

cargo build --release

Running

Generate your TLS keys:

openssl genrsa -out key.pem 2048
openssl req -new -key key.pem -out request.pem
openssl x509 -req -days 36500 -in request.pem -signkey key.pem -out cert.pem

Environment variables with examples:

  • GEMINI_SERVER_HOSTNAME="0.0.0.0:1965"
  • GEMINI_SERVER_TLS_KEY_FILENAME="/where/you/put/key.pem"
  • GEMINI_SERVER_TLS_CERT_FILENAME="/where/you/put/cert.pem"
  • GEMINI_SERVER_ROOT_DIRECTORY="/files/to/serve"
  • RUST_LOG="debug"

Example command:

GEMINI_SERVER_TLS_KEY_FILENAME=/home/user/server/key.pem \
GEMINI_SERVER_TLS_CERT_FILENAME=/home/user/server/cert.pem \
GEMINI_SERVER_ROOT_DIRECTORY=/gemini-root \
RUST_LOG=debug \
./target/release/gemini-grs

About

A Gemini protocol server written in Rust.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages