superseriousbusiness / gotosocial

Fast, fun, small ActivityPub server.
https://docs.gotosocial.org
GNU Affero General Public License v3.0
3.68k stars 311 forks source link

[feature] Self-destruct command #1697

Open vivithecanine opened 1 year ago

vivithecanine commented 1 year ago

Is your feature request related to a problem ?

Mastodon offers a feature that is helpful when switching between different activitypub technologies called tootctl self-destruct. This command sends out account delete broadcasts for all accounts known to the server, making all other servers defederate from this host. It would be helpful for gts users to have this to prevent "burning" a domain by using gts who may need to use something like Mastodon for now. GTS does not currently for example support mastodon -> GTS account migration.

Describe the solution you'd like.

Provide a gotosocial destroy command that sends an ActivityPub Account Delete for every existing account known to the local server to all known instances.

Describe alternatives you've considered.

If you aren't using a base domain for your instance, you may be able to switch between subdomains to clean up after gts, but you will still have burned a subdomain in the process.

Additional context.

No response

tsmethurst commented 1 year ago

Good idea! We gotta investigate whether this will actually allow someone to deploy another fedi instance on the same domain afterwards. My spidey sense tells me that it wouldn't work because most of the time when you send a Delete to a remote, it just stubs the account but doesn't actually remove it from the db (this is true of mastodon, iirc, and is also what GtS does). So it may not allow to avoid 'burning' domains, but it's still a good idea to provide a 'correct' neighborly way of shutting down an instance that doesn't leave as much clutter in remote instance's DBs.

hl0dwig commented 3 weeks ago

I'm wondering what happens, for a domain, if we don't send any such signal, and we just delete the federation service?

I know Mastodon has a internal feature to stop sending messages to a domain when it's not reachable for a certain amount of time. But I'm thinking it's something only true for Mastodon as it's not listed in the ActivityPub protocol (I didn't find anything related to see in the official doc)

For example I'm running right now a GtS server on domain A.COM I stop the service, then all other servers will still try to reach the A.COM

I'm thinking about this, because I'm gonna create a new instance of GtS behind a new domain name, and will abandon the actual one... but I'm kind of concerned about the futur of this abandoned domain name, and servers that will still try to federate with it desperately! (yeah I care about virtual stuff 💔)

eallion commented 1 week ago

I have migrated my instance to a new domain, but I can still find information about the old domain instance in the federated universe, although it is outdated.

hl0dwig commented 6 days ago

that was also my fear @eallion

I guess I will first delete each of my post manually from my actual domain before moving to the new one and abandoning the actual one...