{"id":25865193,"url":"https://github.com/yggverse/titanit","last_synced_at":"2026-02-17T18:04:57.415Z","repository":{"id":279923740,"uuid":"935803831","full_name":"YGGverse/titanit","owner":"YGGverse","description":"Titan it! File share server for Titan protocol with Gemini frontend","archived":false,"fork":false,"pushed_at":"2025-02-24T04:19:34.000Z","size":53,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-11-20T21:04:55.205Z","etag":null,"topics":["file-share","gemini","gemini-protocol","native-tls","server","socket","titan","titan-protocol","titanit","tls"],"latest_commit_sha":null,"homepage":"https://crates.io/crates/titanit","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/YGGverse.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":"https://yggverse.github.io/#donate"}},"created_at":"2025-02-20T03:35:59.000Z","updated_at":"2025-02-24T04:19:37.000Z","dependencies_parsed_at":"2025-02-28T14:45:53.685Z","dependency_job_id":"83f08504-2936-46f6-bc0a-249d16675a6b","html_url":"https://github.com/YGGverse/titanit","commit_stats":null,"previous_names":["yggverse/titanit"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/YGGverse/titanit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YGGverse%2Ftitanit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YGGverse%2Ftitanit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YGGverse%2Ftitanit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YGGverse%2Ftitanit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/YGGverse","download_url":"https://codeload.github.com/YGGverse/titanit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YGGverse%2Ftitanit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29552260,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-17T17:56:56.811Z","status":"ssl_error","status_checked_at":"2026-02-17T17:56:55.544Z","response_time":100,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["file-share","gemini","gemini-protocol","native-tls","server","socket","titan","titan-protocol","titanit","tls"],"created_at":"2025-03-02T01:33:30.824Z","updated_at":"2026-02-17T18:04:57.400Z","avatar_url":"https://github.com/YGGverse.png","language":"Rust","funding_links":["https://yggverse.github.io/#donate"],"categories":[],"sub_categories":[],"readme":"# Titan it!\n\n![Build](https://github.com/YGGverse/titanit/actions/workflows/build.yml/badge.svg)\n[![Dependencies](https://deps.rs/repo/github/YGGverse/titanit/status.svg)](https://deps.rs/repo/github/YGGverse/titanit)\n[![crates.io](https://img.shields.io/crates/v/titanit.svg)](https://crates.io/crates/titanit)\n\nFile share server for Titan protocol with Gemini frontend\n\n\u003e [!NOTE]\n\u003e\n\u003e Project in development!\n\n## Install\n\n``` bash\ncargo install titanit\n```\n\n## Setup\n\n\u003cdetails\u003e\n\u003csummary\u003eGenerate PKCS (PFX)\u003c/summary\u003e\n\u003cpre\u003e\nopenssl genpkey -algorithm RSA -out server.pem -pkeyopt rsa_keygen_bits:2048\nopenssl req -new -key server.pem -out request.csr\nopenssl x509 -req -in request.csr -signkey server.pem -out server.crt -days 365\nopenssl pkcs12 -export -out server.pfx -inkey server.pem -in server.crt\u003c/pre\u003e\n\u003c/details\u003e\n\n## Launch\n\n### Arguments\n\n* `--bind`, `-b` required, server `host:port` to listen incoming connections\n* `--identity`, `-i` required, filepath to server identity in PKCS (PFX) format\n* `--password`, `-p` optional, unlock encrypted `identity` by passphrase\n* `--chunk`, `-c` optional, buffer chunk size (`1024` by default)\n* `--size`, `-s` optional, max size limit in bytes (unlimited by default)\n* `--mime`, `-m` optional, uploads MIME type whitelist (comma separated, all by default)\n* `--directory`, `-d` optional, uploads target directory (`public` by default)\n* `--redirect`, `-r` optional, redirection URL on request handle complete (e.g. `gemini://localhost`)\n* `--welcome`, `-w` optional, filepath to welcome page template (in gemtext format)\n\n### Start\n\n``` bash\ntitanit --bind 127.0.0.1:1965 \\\n        --identity path/to/server.pfx\n```\n\n### Titan it!\n\n* `gemini://127.0.0.1` - landing page\n* `titan://127.0.0.1` - new file upload","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyggverse%2Ftitanit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyggverse%2Ftitanit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyggverse%2Ftitanit/lists"}