~boringcactus/gemifedi

684a5f8853932282db77d9604a40e0f8b5429247 — Melody Horn 1 year, 1 month ago d43bab6 v0.1.0
patch up the README
3 files changed, 16 insertions(+), 12 deletions(-)

M .build.yml
M README.md
M src/main.rs
M .build.yml => .build.yml +2 -1
@@ 7,6 7,7 @@ sources:
tasks:
  - build: |
      cd gemifedi
      cargo test
      cargo build
artifacts:
  - gemifedi/target/release/gemifedi
  - gemifedi/target/debug/gemifedi

M README.md => README.md +12 -11
@@ 1,26 1,27 @@
# gemifedi

[![builds.sr.ht status](https://builds.sr.ht/~boringcactus/gemifedi.svg)](https://builds.sr.ht/~boringcactus/gemifedi?)

a [gemini](https://gemini.circumlunar.space/) frontend to [the fediverse](https://en.wikipedia.org/wiki/Fediverse) (specifically, Mastodon and Pleroma instances).

by [boringcactus](https://www.boringcactus.com).

currently very awful.
currently mostly awful.

## usage

1. compile or obtain a binary.
2. generate a self-signed key for localhost since that's hardcoded in right now.
   ```shell script
   openssl genrsa -out localhost.key 2048
   printf "[req]\ndistinguished_name=req\n[SAN]\nsubjectAltName=DNS:localhost\n" > localhost.conf
   openssl req -new -x509 -key localhost.key -out localhost.cert -days 3650 -subj /CN=localhost -extensions SAN -config 'localhost.conf'
   ```
3. in the same directory as your `localhost.key`/`localhost.cert`, run `gemifedi`.
4. open gemini://localhost:49302 (yes the port number is also hard coded, sorry).
2. run `gemifedi localhost` to attach it to `localhost`, or run `gemifedi --help` for more comprehensive options.
4. open the gemini link that gets printed by `gemifedi`.
5. run through the authentication prompts.
6. tada! your timeline, very poorly rendered, via Gemini.
6. tada! your timeline, ugly but technically rendered, via Gemini.

## demo instance (i promise not to snoop on your timeline but i technically could so if you don't trust me don't trust me)

coming soonish.

## bruh this code sucks shit
## bruh this code isn't quite as bad as it used to be but still sucks

i am aware of that.
it'll get fixed eventually.
the error handling is the main thing i want to fix next.

M src/main.rs => src/main.rs +2 -0
@@ 316,6 316,8 @@ async fn main() -> Result<(), Error> {
        key,
    )?;

    log::info!("about to start listening on gemini://{}{}/", options.domain, if options.port == 1965 { format!("") } else { format!(":{}", options.port) });

    maj::server::serve(
        Arc::new(Handler::default()),
        tls_config,