Skip to content

Titan it! File share server for Titan protocol with Gemini frontend

License

Notifications You must be signed in to change notification settings

YGGverse/titanit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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