A collection of Custom Bluesky Feeds, including Fresh Feeds, all under one roof
1# Rinds 2A collection of feeds under one roof. 3including Fresh Feeds 4 5## Running 6Install go, setup postgres, and then generate the required feed definitions under your user account. You can use https://pdsls.dev to generate a `app.bsky.feed.generator` record. 7Set the `rkey` to the desired short url value. Itll look like: 8``` 9https://bsky.app/profile/{you}/feed/{rkey} 10``` 11for the contents you can use the example below 12``` 13{ 14 "did": "did:web:${your service endpoint}", 15 "$type": "app.bsky.feed.generator", 16 "createdAt": "2025-01-21T11:33:02.396Z", 17 "description": "wowww very descriptive", 18 "displayName": "Cool Feed Name", 19} 20``` 21 22If you are specifically trying to run any of the preexisting feeds, make sure to use the rkey as defined in the /pkg/feeds/*/feed.go and main.go files 23 24## Env 25You can check out `.env.example` for an example 26The port is for your feedgen serve, not your postgres port 27 28## Postgres 29Be sure to set up `.env` correctly 30 31All relevant tables should be created automatically when needed. 32 33## Index 34You should start Postgres first 35Then go run the firehose indexder inside 36``` 37cd ./indexer 38``` 39And then go compile it 40``` 41go build -o indexer ./indexer.go && export $(grep -v '^#' ./../.env | xargs) && ./indexer 42``` 43Once compiled, you can use `rerun.sh` to ensure it will automatically recover after failure 44 45## Serve 46Make sure the indexer (or at least Postgres) is running first: 47``` 48go build -o feedgen cmd/main.go && export $(grep -v '^#' ./.env | xargs) && ./feedgen 49``` 50Logs are pretty verbose, just FYI. 51 52## Todo 53- [ ] Faster Indexing 54- [x] Proper Up-to-Date Following Indexing 55- [x] Repost Indicators 56- [x] Cache Timeouts 57 - [x] Likes 58 - [x] Posts 59 - [x] Feed Caches 60- [ ] More Fresh Feed Variants 61 - [ ] unFresh 62 - [x] +9 hrs 63 - [ ] Glimpse 64 - [ ] Media 65 - [ ] Fresh: Gram 66 - [ ] Fresh: Tube 67 - [ ] Fresh: Media Only 68 - [ ] Fresh: Text Only 69 70## Architecture 71Based on [go-bsky-feed-generator](https://github.com/ericvolp12/go-bsky-feed-generator). Read the README in the linked repo for more info about how it all works. This repository differs from the template by not using the docker system at all. 72 73### /pkg/feeds/static 74Basic example feed from the template. Kept as a sanity check if all else seems to fail. 75 76### /pkg/feeds/fresh 77Fresh feeds, all built around a shared Following feed builder and logic to set posts as viewed. May contain some remnant old references to the old name "rinds". 78