A Bluesky feed generator written in Rust.
The specific algorithm indexes and serves posts written in Russian language, by people living in Netherlands.
- Posts are stored in PostgreSQL via
sqlxandscooby - Language of posts is determined via
lingua-rs - Country of residence is inferred from profile information through ChatGPT via
chat-gpt-lib-rs - Feed is served via
axum - Intefacing with Bluesky is implemented using
atrium-api
Deployed in production at https://nederlandskie.plansfortheday.org/
Published on Bluesky at https://bsky.app/profile/did:plc:376mcc6k4s5p7qbtyjrgph5k/feed/nederlandskie.
-
Copy
.env.exampleinto.envand set up the environment variables within:PUBLISHER_BLUESKY_HANDLEto your Bluesky handlePUBLISHER_BLUESKY_PASSWORDto Bluesky app password that you created in settingsCHAT_GPT_API_KEYfor your ChatGPT keyDATABASE_URLfor PostgreSQL credentialsFEED_GENERATOR_HOSTNAMEto the hostname of where you intend to host the feed
-
Determine your own DID and put it in
PUBLISHER_DIDenv variable in.env:cargo run --bin who_am_i
-
Make sure you have docker-compose set up and functioning
-
Start the processes through the included
Makefile:make run-devThe feed will be available at http://localhost:3030/.
cargo run --bin who_am_i
cargo run --bin publish_feed -- --help
cargo run --bin force_profile_country -- --help
-
Install
crossby following their installation guide -
Build the binaries in release mode:
make cross-build-release
- Deploy the binaries in
target/x86_64-unknown-linux-gnu/release/as you see fit