Creating decoy Lemmy accounts for plausible deniability
So, I've started my own Lemmy instance. The main issue is that right now, I am the only user, which makes it pretty easy for anyone to see what kinds of communities I visited, or am subscribed to. Is there any way to automate creation of some amount of accounts, and subscribing to random communities?
You could disable web interface access to block easy scraping. Unauthenticated users only need a few ActivityPub routes with very specific Content-Types to make federation work.
You can put the web UI and Lemmy API behind some kind of auth screen (you can use Caddy or Apache+OpenID to block access to URLs in your proxy unless the user is authenticated, of example) but that would break most apps. You could also whitelist your personal IP range or require a VPN for the frontend.
Your comment history will be visible to other servers so you'll probably spread information that way. I can think of workarounds but they require patching the Lemmy source code. You could probably patch the Lemmy code to pick a random username for each comment to block other servers from tracking your comment history as easily (though server admins can still get all the comments for your domain, of course). Alternatively, you could make implement a 4chan-style "everyone is anonymous" system where all accounts turn into @anonymous@yourserver.tld after posting by faking the data that gets rendered to the frontend. If you allow multiple people on your server, you'd all appear (and get banned/moderated) as one single user, but probably without breaking functionality (because the local database can still keep track of who actually owns what posts).
I think hiding the web UI and Lemmy API would probably block most scrapers. You can also mess with scrapers (feed the web UI fake data when an unauthenticated user queries it) if you really want. Your post history cached on other servers will be your biggest privacy challenge.
Running one of the various subscriber bots would make your own subscriptions simply be part of the noise otherwise on the server. The downside of course being that now you have a pile of noise to sift through. Left one sit for about a week onine and emded up with around 2000 communities subscribed.
Maybe by monitoring federation data, or seeing which communities have been fetched?
I know that if you're the first person in an instance to look at a community, it won't load right away. However I'm not sure how someone would monitor that (or why they would want to)
Why do you need to automate it and do multiple decoy accounts? Can't you just make a single account and use it to subscribe to a bunch of the biggest communities?
If your concern is about your instance's publicly visible /instances list, can't you just make it private? Or even make the entire web interface private? You're the boss, after all.
I'm afraid making your instance private disables federation.
As for making the web interface private, while it would prevent the average Joe from seeing federated communities, you could still do it through the API, which you have to keep public if you want to use alternative and mobile clients without a VPN.
You can probably make the list private by blocking the specific API endpoint or rewriting the JSON output in your reverse proxy. You could patch the Lemmy source code as well, of course.
External servers will still be able to see what remote sites you visit, but there's no reason you couldn't at least block the scrapers by messing with the JSON API. ActivityPub doesn't mandate anything about these lists so federation should still work even if you disable 90% of the Lemmy API.
People were talking about a script that would go out and subscribe to a bunch of communities. As long as that's better enough should be able to operate under that umbrella?
I did this on my instance. You create a new user and give the script those credentials, it goes out and subs to all the trending communities across the various instances so now my instance has a big mish-mash of communities federated, not just the ones I originally subscribed to on my personal user.