···4455It makes use of an ATProto OAuth [library](https://github.com/haileyok/atproto-oauth-golang). Shout out to [Hailey](https://bsky.app/profile/hailey.at) for implementing a Go OAuth library!
6677-TLDR of what this app does if you haven't read the [ATProto application Statusphere](https://atproto.com/guides/applications) guide.
77+### What is the Statusphere app?
88+If you haven't read the [ATProto application Statusphere](https://atproto.com/guides/applications) guide about what this is, here is a quick summary.
899101: Allows you to log into Bluesky using OAuth.
1111+10122: Allows you to post a status (an emoji) which creates a record in your PDS.
1313+11143: Shows other users status' when they do the same, even if they are using a different app that this. As long as they are using the statusphere lexicon and NSID then this application will consume those records using Jetstream (firehose) and store them in the local database.
12151316### Running the app
14171518A few environment variables are required to run the app. Use the `example.env` file as a template and store your environment variables in a `.env` file.
16191717-* PRIVATEJWKS: This is a private JWKS. You can generate one using the same Go OAuth [library](https://github.com/haileyok/atproto-oauth-golang).
2020+* PRIVATEJWKS: This is a private JWKS. You can generate one using the same Go OAuth [library](https://github.com/haileyok/atproto-oauth-golang). Once created, base64 encode it so it's easier to store in your env.
1821* SESSION_KEY: This can be anything as it's what's used to encrypt session data sent to/from the client.
1922* HOST: This needs to be a http URL where the server is running. For local dev I suggest using something like [ngrok](https://ngrok.com) to run you app locally and make it accessable externally. This is important for OAuth as the callback URL configured needs to be a publically accessable.
2023* DATABASE_MOUNT_PATH: This is where you wish the mysql database to be located.
21242222-Run the command `go build -o statuspherego ./cmd/statuspherego/main.go` which will build the app and then `./statuspherego` to run it.
2525+Run the command `go build -o statuspherego ./cmd/main.go` which will build the app and then `./statuspherego` to run it.
23262427If running locally I would then run `ngrok http http://localhost:8080` to get your publically accessable URL.
2528