Feature: offline mode

I <3 microblog.pub, thank you all for your great work. I hope to contribute in the future when I have more time to study the codebase.

A wishlist feature I have is to be able to set my instance into an offline mode. In my mind that looks like showing a static page in the web interface saying that the instance is offline, and somehow indicating to the rest of the fediverse that messages aren't being received, and none are desired until the instance comes back online.

I've experimented with pleroma a little bit by turning the server on for just a few hours a day. When it wakes up, it slowly attempts to sync messages that were previously received and catch up with everything.

I haven't yet experimented with microblog.pub in this way, maybe my dreams have already come true? It's very easy to set up a static fallback page when I take the service offline.

Will microblog.pub attempt to catch up with messages sent when it was offline if I turn it off for a day or two? Is that retry behavior just part of activitypub, or is there a way to opt out of it?

I'd be happy to work on this feature with some guidance, though I probably won't have much time for it in the near future, I wanted to start a conversation in case this is of interest to anyone else.

Thanks again for microblog.pub!

Assigned to
1 year, 10 days ago
1 year, 7 days ago
No labels applied.

~tsileo 1 year, 9 days ago

Hey, thank you!

I think what you experienced is that most servers have retries in case a server is offline/inaccessible, and it's not really a feature.

No servers will try to catch up, what is happening is that other servers are retrying failed requests send to your instances, and your instance processes them. Some instances might not do "heavy retries" and you're definitely at risk of losing messages.

I am not sure I understand what would be the "end goal" of this feature? (especially if the server is always online/showing a static page). Why not keep processing messages?


~hecanjog 1 year, 9 days ago

Oh interesting, thanks for the explanation!

I don't think I really explained it well in the original message, the end goal is to be able to take a break from the fediverse for hours or days, and let the messages go unheard. I'd prefer not to get a flood of old messages when I reconnect, just new ones, but maybe activitypub isn't really set up for that.

~hecanjog 1 year, 9 days ago

Maybe a better explanation of the use-case I have in mind is to run all my self-hosted services on a laptop at home which I can freely disconnect from the internet without major disruptions. In this daydream scenario I also have a raspberry pi connected at a coop space where it will always be online and act as a proxy that will show a static fallback page when the laptop running my web services is taken offline.

Alexey Shpakovsky 1 year, 8 days ago · edit

Hmm, assuming you're running microblog behind an NGINX reverse proxy: in order "to take a break from the fediverse" - could you configure NGINX to forbid access to /admin interface?

And if you have an always-connected raspberry pi - maybe you could run microblog.pub on it, too?

Otherwise, as ~tsileo said: fediverse works by pushing, not pulling messages, so it all depends on servers of those you're subscribed to.

Also, regarding:

somehow indicating to the rest of the fediverse that messages aren't being received

I believe that any error page (like 404 Not Found or 500 Internal Server Error) will make it clear to other servers that message is not received. And they probably will try again later - but again, it really depends on those other servers.

~hecanjog 1 year, 8 days ago

I think I understand my conception of this is probably wrong. :-) Thanks for your help!

~tsileo REPORTED CLOSED 1 year, 7 days ago

Register here or Log in to comment, or comment via email.