titanit

Crates.iotitanit
lib.rstitanit
version0.1.1
created_at2025-02-20 03:50:04.831945+00
updated_at2025-02-24 04:18:51.53673+00
descriptionFile share server for Titan protocol with Gemini frontend
homepage
repositoryhttps://github.com/YGGverse/titanit
max_upload_size
id1562229
size56,467
(d47081)

documentation

README

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
Commit count: 51

cargo fmt