This repo includes everything you need to run the Bluesky appview. It also serves a self-hosted PLC mirror and an instance of the web app.
You'll need:
- A domain
- With the default settings, you'll want A records for
your.domain
,bsky.your.domain
,plc.your.domain
, andsearch.your.domain
, as well as, optionally,api.your.domain
andpublic.api.your.domain
.
- With the default settings, you'll want A records for
- Docker,
yq
- Copy
env.example
to.env
and fill in the values.- You can run
scripts/gen-secrets.sh
to generate the various passwords you'll need.
- You can run
- Run
scripts/build.sh
to build the Docker images. - Deploy with
docker compose up -d
.
After you've got the appview running, check out backfill-bsky if you'd like to fill in historical data.
You'll be running the following services:
Service | Description |
---|---|
bsky | The appview |
bsky-indexer | Indexes events from a relay into the appview database |
labelmuncher | Indexes labels from labelers into the appview |
zplc-server | A PLC directory mirror (not strictly necessary, but decent odds you'll get rate limited trying to use plc.directory) |
zplc-ingest | Exports logs from plc.directory for the mirror to serve |
database | The Postgres database used by the appview (this is a custom build that includes pg_repack; can be useful to run after backfilling) |
redis | Redis, used by the appview and bsky-indexer |
pgbouncer | A connection pool for the database |
caddy | Reverse proxy |
social-app | An instance of the Bluesky web app |
opensearch | An OpenSearch instance for search functionality |
palomar | Bluesky's backend for OpenSearch, handling indexing and querying |
Credit to itaru2622 for the original repo that this is based on.