{"id":13771137,"url":"https://github.com/spektom/hydepark","last_synced_at":"2025-05-15T16:33:47.660Z","repository":{"id":138109243,"uuid":"338300032","full_name":"spektom/hydepark","owner":"spektom","description":"Forum application for Gemini space","archived":false,"fork":false,"pushed_at":"2021-03-13T09:42:54.000Z","size":25,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-08-03T17:09:41.869Z","etag":null,"topics":["gemini","gemini-protocol"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/spektom.png","metadata":{"files":{"readme":"README.md","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}},"created_at":"2021-02-12T11:30:55.000Z","updated_at":"2024-01-27T00:00:14.000Z","dependencies_parsed_at":"2024-01-06T21:34:04.709Z","dependency_job_id":null,"html_url":"https://github.com/spektom/hydepark","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spektom%2Fhydepark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spektom%2Fhydepark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spektom%2Fhydepark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spektom%2Fhydepark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/spektom","download_url":"https://codeload.github.com/spektom/hydepark/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225008619,"owners_count":17406308,"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","gemini-protocol"],"created_at":"2024-08-03T17:00:48.115Z","updated_at":"2024-11-17T06:31:06.965Z","avatar_url":"https://github.com/spektom.png","language":"Rust","funding_links":[],"categories":["Servers"],"sub_categories":["Graphical"],"readme":"hydepark\n========\n\nA discussion forum application for [Gemini](https://gemini.circumlunar.space).\n\n## Preparing for run\n\n### Compilation\n\nAs a prerequisite, the following dependencies must be installed:\n \n * libsqlite3-dev\n * libssl-dev\n\nNext, you'll need [Rust](https://www.rust-lang.org) to compile Hydepark. Once you have it, run:\n\n    cargo build --release\n\n### Server SSL certificate\n\n[Gemini](https://gemini.circumlunar.space) protocol mandates the use of TLS encryption, therefore as a prerequisite step you must have a valid SSL certificate.\nYou can generate your own self-signed server certificate, or obtain one from a CA like [Let's Encrypt](https://letsencrypt.org).\n\nHere's one example for generating self-signed SSL certificate using [OpenSSL](https://www.openssl.org) (replace *example.com* with your own domain name):\n\n    openssl req -newkey rsa:2048 -nodes -keyout example.com.key \\\n      -nodes -x509 -out example.com.crt -subj \"/CN=example.com\"\n\nHydepark works with `.pfx` certificate container. To create one, run:\n\n    openssl pkcs12 -export -out cert.pfx \\\n      -inkey example.com.key -in example.com.crt\n\n## Running\n\n    RUST_LOG=hydepark=trace ./target/release/hydepark\n\nSee [env_logger](https://docs.rs/env_logger) documentation on controlling log verbosity.\n\n## Configuration\n\nThe service can be configured using command line arguments. For the list of available options, run: `hydepark -h`.\n\n### Storage\n\nHydepark uses external storage for storing all the information on users, forum topics, etc. By default, in-memory SQLite is used as a storage. To use persistent storage, configure one of the available storage types:\n\n|Type|Connection string|\n|-|-\n|SQLite|`sqlite://[\u003cpath to SQLite database file\u003e]`|\n\nExample of using persistent SQLite database file:\n\n    RUST_LOG=hydepark=trace ./target/debug/hydepark --db-conn=sqlite://test.db\n\n## Client authentication\n\nHydepark uses client side SSL certificates for user authentication. Clients can browse existing topics and messages anonymously, but once they wish to create a new topic or write a new message they will be asked to \"register\" by providing a username. The username will be linked with the SSL certificate currently used.\n\n### Updating client certificate\n\nWhen client certificate is about to be expired, a warning link will be shown. Click on the link, and follow the instructions for attaching a new certificate to your account. To update the certificate explicitly, navigate to: `gemini://\u003chostname\u003e/update-cert-req`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspektom%2Fhydepark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspektom%2Fhydepark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspektom%2Fhydepark/lists"}