So as a single-user instance I would rather not lose my history of toots.
However, I just have to keep upgrading my server storage because of the database size.
Eventually, even as a single-user, I will reach the limits of the providers available plans.
Is this being looked at in #mastodev ?
I am really grateful for #Mastodon and I have been supporting it rather than some of the other alternatives, but am I just going to have to move to one of them?
@sikkdays which toots are you trying to save? We use the tootctl cleanup scripts to remove a couple hundred thousand every week, stuff nobody interacted with or from users none of us follow (but it does have the effect of thinning out search)
@annika Oh. I am on @mastohost so I am not sure I have access to that. I guess I should look.
@sikkdays Well, if you are using Relays I can run `tootctl status remove` for you (please email me requesting that): https://github.com/mastodon/mastodon/blob/v4.2.10/lib/mastodon/cli/statuses.rb#L16-L27
But that will have little to no impact if you are not running relays and we run it with the default settings.
That command can also force deletion of old posts from followers, if you wish.
Alternatively you could set Content cache retention period but that has other consequences. Please read: https://masto.host/mastodon-content-retention-settings/
@mastohost Yes, I read your post on content retention per the email warning. I have not followed relays for a few reasons.
I just wondered if there was a solution that I did not know of or if it was something being looked at.
However, development of Masto has never really been focused on maintaining one's right to their data.
@sikkdays I believe the larger issue has to do with how decentralisation of social media network works.
The smaller the server in terms of the number of users, the more inefficient it gets. Both in terms of resource usage and in federation bottlenecks.
The resource usage/cost of server with 1000 users is many times lower than 1000 servers with one user. And I don't see a way around that problem because data needs to federate and to be stored on each server.
@sikkdays All solutions that I can think of end up being compromises and probably Mastodon or another ActivityPub can come up with a more resource/cost effective solution but I have my doubts that it will not end up being at the cost of something else.
Like @annika mentioned, when you delete old posts from followers you thin search but also thin out remote users profiles. If you delete posts from remote followers that are X days old, then you don't get them when you view those profiles.
@mastohost So you are talking cost per user? It feels like 1 user and 1000 user servers use the same amount of resources.
@annika
@sikkdays It could be even higher than that. It really depends on multiple factors. Number one being the followers/following numbers and how old the server is.
If a single user server follows 200 users for 2 years, that server will have 2 years of posts from those 200 stored in the database (plus replies to those posts). If the server is 4 years old, you have 4 years of posts in your database.
@sikkdays That is for Mastodon, like it is for other ActivityPub software or any other true decentralised social media.
The alternative to delete posts (and replies to those posts) from the database will always lead to a compromise.
I'm not saying Mastodon can't do more to address this, it can. Just saying that it's not an easy solution and that larger servers are not has impacted by this problem as smaller servers are.
@mastohost As always I appreciate your insight and advice. Thank you for the explanation.
Retention is likely a lesser concern with younger people who grew up with Stories and other disappearing media.
Will I do anything with the archive, likely not. I don't remember what I did yesterday. So it is nice to see old posts because they are all new to me.
@sikkdays eheheh sure no problem :) let me know if something comes up that I can be of help with.
@sikkdays you COULD back them all up and download the entire history, and then use tools to prune old entries? Would that not do it?
@necrophcodr I was thinking about that. I stepped away from self-hosting my daily-use things like Nextcloud and Masto. So I am not sure what tools I have available. Hmm.
@sikkdays unfortunately, there's not much you can do to alleviate the fact that data takes storage space.
Maybe other softwares are a bit better with optimization, though I am unsure. But at the end of the day, things will eventually fill up and you'll have to delete or expand the storage.
That's with any Fediverse software.
@BeAware @sikkdays Well for one thing if you’re on relays and a firehose you’re going to need the hardware to handle it. I’d recommend only joining relays that send specific hashtags. relay.fedi.buzz will do this. You can also relay specific instances using fedi.buzz.
Not sure if other relays do that.
Re: your question. I would check how mastodon deletes toots in the code when you enable deletion after x days and then code a script to manually delete those toots but exclude yours. I know you may not be a coder, but it’s the only way you’re going to achieve what you want.
@simplycorbett @sikkdays he could just run this script...
https://ricard.dev/improving-mastodons-disk-usage/
There's CLI commands to do these things.
# Remove remote statuses that local users never interacted with older than 4 days
RAILS_ENV=production /home/mastodon/live/bin/tootctl statuses remove --days 4;
@simplycorbett @sikkdays I use it every day, but I changed the option to 7 days instead of 4.
My storage sits around 200 gb after clearing.
@simplycorbett @sikkdays yeah, but posts are in the database no? The only thing that's not, in terms of posts, is the media?
I thought the text was stored in the database...
@simplycorbett @sikkdays ...media ≠ text....
My media is uploaded to s3. However, my post *text* is saved to the database... Media that's not attached to a post is called orphaned media.
I can delete media without deleting posts by using tootctl media remove. Posts are deleted with tootctl statuses remove.
Statuses that are deleted, also remove the orphaned media.