Skip to content

aliceisjustplaying/zodiacsigns

Repository files navigation

Prerequisites

Setup

Clone the repo and run bun i to install the dependencies. This project uses Bun for package management.

Run bunx @skyware/labeler setup to convert an existing account into a labeler. You can exit after converting the account; there's no need to add the labels with the wizard. We'll do that from code.

Copy the .env.example file to .env and fill in the values:

DID=did:plc:xxx
SIGNING_KEY=xxx
BSKY_IDENTIFIER=xxx
BSKY_PASSWORD=xxx
PORT=4002
METRICS_PORT=4102
FIREHOSE_URL=wss://jetstream.atproto.tools/subscribe
CURSOR_UPDATE_INTERVAL=10000

A cursor.txt file containing the time in microseconds also needs to be present. If it doesn't exist, it will be created with the current time.

Fill out src/constants.ts with the related post rkeys (record keys), label IDs and so on, then run bunx tsx src/set-labels.ts to create/update all labels at once.

Alternatively, use bunx @skyware/labeler label add and edit src/constants.ts after.

The server connects to Jetstream, which provides a WebSocket endpoint that emits ATProto events in JSON. There is a public instance available at wss://jetstream.atproto.tools/subscribe.

The server needs to be reachable outside your local network using the URL you provided during the account setup (typically using a reverse proxy such as Caddy):

labeler.example.com {
	reverse_proxy 127.0.0.1:4002
}

Metrics are exposed on the defined METRICS_PORT for Prometheus. This dashboard can be used to visualize the metrics in Grafana.

Start the project with bun run start.

About

Zodiac Sign Labeler for Bluesky

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published