A collection of feeds under one roof. including Fresh Feeds
Install 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.
Set the rkey to the desired short url value. Itll look like:
https://bsky.app/profile/{you}/feed/{rkey}
for the contents you can use the example below
{
"did": "did:web:${your service endpoint}",
"$type": "app.bsky.feed.generator",
"createdAt": "2025-01-21T11:33:02.396Z",
"description": "wowww very descriptive",
"displayName": "Cool Feed Name",
}
If 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
You can check out .env.example for an example
The port is for your feedgen serve, not your postgres port
Be sure to set up .env correctly
All relevant tables should be created automatically when needed.
You should start Postgres first Then go run the firehose indexder inside
cd ./indexer
And then go compile it
go build -o indexer ./indexer.go && export $(grep -v '^#' ./../.env | xargs) && ./indexer
Once compiled, you can use rerun.sh to ensure it will automatically recover after failure
Make sure the indexer (or at least Postgres) is running first:
go build -o feedgen cmd/main.go && export $(grep -v '^#' ./.env | xargs) && ./feedgen
Logs are pretty verbose, just FYI.
- Faster Indexing
- Proper Up-to-Date Following Indexing
- Repost Indicators
- Cache Timeouts
- Likes
- Posts
- Feed Caches
- More Fresh Feed Variants
- unFresh
- +9 hrs
- Glimpse
- Media
- Fresh: Gram
- Fresh: Tube
- Fresh: Media Only
- Fresh: Text Only
Based on 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.
Basic example feed from the template. Kept as a sanity check if all else seems to fail.
Fresh 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".