Skip to content

Latest commit

 

History

History
54 lines (40 loc) · 1.72 KB

README.md

File metadata and controls

54 lines (40 loc) · 1.72 KB

Titan it!

Build Dependencies crates.io

File share server for Titan protocol with Gemini frontend

Note

Project in development!

Install

cargo install titanit

Setup

Generate PKCS (PFX)
openssl genpkey -algorithm RSA -out server.pem -pkeyopt rsa_keygen_bits:2048
openssl req -new -key server.pem -out request.csr
openssl x509 -req -in request.csr -signkey server.pem -out server.crt -days 365
openssl pkcs12 -export -out server.pfx -inkey server.pem -in server.crt

Launch

Arguments

  • --bind, -b required, server host:port to listen incoming connections
  • --identity, -i required, filepath to server identity in PKCS (PFX) format
  • --password, -p optional, unlock encrypted identity by passphrase
  • --chunk, -c optional, buffer chunk size (1024 by default)
  • --size, -s optional, max size limit in bytes (unlimited by default)
  • --mime, -m optional, uploads MIME type whitelist (comma separated, all by default)
  • --directory, -d optional, uploads target directory (public by default)
  • --redirect, -r optional, redirection URL on request handle complete (e.g. gemini://localhost)
  • --welcome, -w optional, filepath to welcome page template (in gemtext format)

Start

titanit --bind 127.0.0.1:1965 \
        --identity path/to/server.pfx

Titan it!

  • gemini://127.0.0.1 - landing page
  • titan://127.0.0.1 - new file upload