A Bluesky feed generator written in Rust, serving posts written in Russian by people living in Netherlands
Go to file
Aleksei Voronov 1d17c8b637 Make it able to run in production
- Remove the build Dockerfile, it's not useful on cheap VMs because you can't really build anything on them
- Update the serving address to be 0.0.0.0 so that it's actually exposed externally (127.0.0.1 isn't)
- Also update the port to be 3030 for no reason at all
- Add a Cross.toml config file for cross-compilation since my machine isn't exactly Linux that the resulting binary needs to run on
2023-10-06 20:24:58 +02:00
sql Fix SQL syntax 2023-10-05 20:38:22 +02:00
src Make it able to run in production 2023-10-06 20:24:58 +02:00
.env.example Add some untested version of publishing a feed 2023-09-22 13:33:13 +02:00
.gitignore Read chatgpt and postgresql credentials from .env 2023-09-07 19:20:38 +02:00
Cargo.lock Upgrade dependencies because why not 2023-10-02 17:26:21 +02:00
Cargo.toml Upgrade dependencies because why not 2023-10-02 17:26:21 +02:00
Cross.toml Make it able to run in production 2023-10-06 20:24:58 +02:00
README.md Update README with some up-to-date info 2023-10-02 17:23:22 +02:00

README.md

nederlandskie

A Bluesky feed generator written in Rust.

The specific algorithm indexes and serves posts written in Russian language, by people living in Netherlands.

Not fully complete yet, see roadmap.

Roadmap

  • Read stream of posts from Bluesky
  • Store posts in the database
  • Store user profiles in the database
  • Detect the country of residence from profile information
  • Keep subscription state to not lose messages
  • Serve the feed
  • Handle deleting of posts
  • Handle errors in the web service gracefully
  • Handle missing profiles in the profile classifier
  • Add a way to mark a profile as being from a certain country manually
  • Handle reconnecting to websocket somehow
  • Publish the feed

Configuration

  1. Copy .env.example into .env and set up the environment variables within:

    • PUBLISHER_BLUESKY_HANDLE to your Bluesky handle
    • PUBLISHER_BLUESKY_PASSWORD to Bluesky app password that you created in settings
    • CHAT_GPT_API_KEY for your ChatGPT key
    • DATABASE_URL for PostgreSQL credentials
    • FEED_GENERATOR_HOSTNAME to the hostname of where you intend to host the feed
  2. Determine your own DID and put it in PUBLISHER_DID env variable in .env:

    cargo run --bin who_am_i
    

Running

Populate and serve the feed

cargo run

Determine your own did for publishing

cargo run --bin who_am_i

Publish the feed

cargo run --bin publish_feed -- --help