{"id":15539416,"url":"https://github.com/greatwizard/gemserv","last_synced_at":"2025-04-23T16:10:37.147Z","repository":{"id":71226861,"uuid":"423620409","full_name":"GreatWizard/gemserv","owner":"GreatWizard","description":"A gemini server written in rust. Fork from https://git.sr.ht/~int80h/gemserv","archived":false,"fork":false,"pushed_at":"2021-11-01T21:28:31.000Z","size":69,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-10-09T12:51:45.553Z","etag":null,"topics":["gemini","gemserv","rust","server"],"latest_commit_sha":null,"homepage":"https://git.sr.ht/~int80h/gemserv","language":"Rust","has_issues":false,"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/GreatWizard.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"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}},"created_at":"2021-11-01T21:24:11.000Z","updated_at":"2024-10-07T13:09:02.000Z","dependencies_parsed_at":"2023-03-13T20:21:24.309Z","dependency_job_id":null,"html_url":"https://github.com/GreatWizard/gemserv","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GreatWizard%2Fgemserv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GreatWizard%2Fgemserv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GreatWizard%2Fgemserv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GreatWizard%2Fgemserv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GreatWizard","download_url":"https://codeload.github.com/GreatWizard/gemserv/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250468270,"owners_count":21435452,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["gemini","gemserv","rust","server"],"created_at":"2024-10-02T12:10:22.913Z","updated_at":"2025-04-23T16:10:37.141Z","avatar_url":"https://github.com/GreatWizard.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gemserv\n\nA gemini server written in rust.\n\n## Features\n\n - Vhosts\n - CGI\n - User directories\n - Reverse proxy\n - Redirect\n - SCGI\n\n## Installation and running\n\nOpenSSL 1.1.0g or LibreSSL 2.7.0 or newer is required.\n\n - Clone the repo\n - If you want to use all features run 'cargo build --release' or if you only\n   want to serve static files run 'cargo build --release --no-default-features'\n - Modify the config.toml to your needs\n - Run './target/release/gemserv config.toml'\n\n### Init scripts\n\nIn the init-scripts directory there's OpenRC(Courtesy of Tastytea) and systemd\nservice files.\n\n### NetBSD\nIf running on NetBSD you'll need to set the environmental variable OPENSSL_DIR\nbefore compiling.\n\n'export OPENSSL_DIR=\"/usr/pkg\"'\n\nAlso to run you'll need to symlink libssl, and libcrypt to \"/usr/lib\" by\nrunning:\n\n'ln -s /usr/pkg/lib/libssl.so.1.1 /usr/lib'\n'ln -s /usr/pkg/lib/libcrypt.so.1.1 /usr/lib'\n\nThanks to tiwesdaeg for figuring it out.\n\n## CGI and SCGI\n\nThere's example SCGI scripts for python and perl in the cgi-scripts directory.\n\nIn the configuration file there's \"cgi\" which is an optional bool to turn cgi\non. If it's true it'll run scripts from any directory. To limit it to only one\ndirectory set \"cgipath\"\n\nIf \"cgi\" is false or not set the server will respond \"Not Found\" to any\nexecutable file.\n\nScripts have 5 seconds to complete or they will be terminated.\n\n### CGI Environments\n\n\nThese variables are preset for you. If you need more you can define them in the\nconfig file under \"cgienv\"\n\n - GEMINI_URL\n - SERVER_NAME\n - SERVER_PROTOCOL\n - SERVER_SOFTWARE\n - SCRIPT_NAME\n - REMOTE_ADDR\n - REMOTE_HOST\n - REMOTE_PORT\n - QUERY_STRING\n - PATH_INFO\n\nTLS variables\n - AUTH_TYPE\n - TLS_CLIENT_HASH\n - REMOTE_USER\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgreatwizard%2Fgemserv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgreatwizard%2Fgemserv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgreatwizard%2Fgemserv/lists"}