bluesky-social / ozone

web interface for labeling content in atproto / Bluesky
https://atproto.com
Other
358 stars 33 forks source link
atproto bluesky moderation nextjs

Ozone: labeling service for Bluesky and other atproto apps

ozone web interface screenshot

Ozone UI is a Next.js web application which talks directly to an Ozone "labeling service". It generally requires moderator or administrator privileges to function.

Features:

See User Guide for a quick introduction for users of the interface.

Docker Quickstart

# build image
docker build -t ozone .

# run the image
docker run -p 3000:3000 ozone

Development Quickstart

We recommend nvm for managing Node.js installs. This project requires Node.js version 20. yarn is used to manage dependencies. You can install it with npm install --global yarn.

First, run the development server:

npm run dev
# or
yarn dev

Open http://localhost:3000 with your browser to see the result.

See HACKING for other development tricks, like development with a local PDS instance, or working with un-released changes to the @atproto/api package.

Running your own Ozone labeler service

[!TIP] There is a comprehensive guide for setting up your own Ozone labeler service within HOSTING.md.

We offer a Dockerized setup for hosting both the Ozone UI and backend together. This allows you to run an Ozone labeler service on the network, which users of the Bluesky application can discover and opt into. There are a few requirements to get this setup:

  1. Create a "service account" for your labeler. This is the account that users will discover in the application, allowing them to subscribe to your labeler. You should not use your personal account as an Ozone labeler service account. It can be created on bsky.app just like a typical account.
  2. Start running the Ozone UI and backend on the public internet. The service only relies on Postgres, and is generally quite cheap and easy to run. It should be served over https at a domain that you own.
  3. Associate your Ozone labeler service with your service account, and announce it to the network. Your Ozone UI will help you with this if you login to Ozone using your service account.

This process is outlined in detail within HOSTING.md.

Contributions

While we do accept contributions, we prioritize high quality issues and pull requests. Adhering to the below guidelines will ensure a more timely review.

Rules:

Guidelines:

Remember, we serve a wide community of users. Our day-to-day involves us constantly asking "which top priority is our top priority." If you submit well-written PRs that solve problems concisely, that's an awesome contribution. Otherwise, as much as we'd love to accept your ideas and contributions, we really don't have the bandwidth.

Security disclosures

If you discover any security issues, please send an email to security@bsky.app. The email is automatically CCed to the entire team, and we'll respond promptly. See SECURITY.md for more info.

License

This project is dual-licensed under MIT and Apache 2.0 terms:

Downstream projects and end users may chose either license individually, or both together, at their discretion. The motivation for this dual-licensing is the additional software patent assurance provided by Apache 2.0.

Acknowledgements

Logo/Icon from Flaticon: https://www.flaticon.com/free-icons/lifeguard-tower