So you want to run a Labeler. You are "semi-technical"—you know what a terminal is, but you aren't writing Rust compilers for fun.
Here is the reality check and the roadmap.
1. The Path of Least Resistance: Ozone
Do not write your own labeler from scratch. Use Ozone.
Ozone is the official, open-source moderation interface used by Bluesky itself. It is a web app that lets you view reports, review content, and apply labels with a click. It is designed for humans, not scripts.
Repository: github.com/bluesky-social/ozone
Method: Docker. If you can run a Docker container (on a VPS like Railway, DigitalOcean, or Hetzner), you can run Ozone.
2. What You Need (The Prerequisites)
Before you write a single line of config, ensure you have these three things:
- A Dedicated Identity: Do not use your personal account. Create a new account (e.g.,
@mod.example.com) to act as the service. This account will sign every label. - A Domain Name: You need a custom domain (e.g.,
labeler.example.com) to verify your identity and serve the XRPC endpoints. - A Hosting Budget: You need a server. It doesn't need to be massive, but it needs to be always-on. Expect to pay $5-10/month.
3. The "Is It Worth It?" Criteria
Running a labeler is 10% technical and 90% political/operational. Before you start, ask:
Do I have a Policy? "I'll label bad stuff" is not a policy. You need clear, objective definitions for your labels. (e.g., "Spam," "Rude," "AI Art"). Ambiguity kills trust. Do I have an Audience? A labeler with no subscribers is just a private bookmark collection. Who is this for? Can I handle the Firehose? If you open reports to the public, you will get reports. Do you have the time to review them?
4. Where to Start
- Get a VPS: Spin up a small Linux server.
- Install Docker:
apt install docker.io - Clone Ozone: Follow the
HOSTING.mdguide in the Ozone repo. - Config: You will need to set up a
servicerecord in your repo to tell the network "I am a labeler."
Summary
If you want to curate* a community (e.g., "Only Tech Posts" or "No Spoilers"), a Labeler is a superpower. If you just want to block people you dislike, use a Mute List. It's cheaper and easier.