{"id":1042,"date":"2022-12-28T22:00:12","date_gmt":"2022-12-29T03:00:12","guid":{"rendered":"https:\/\/ashleyit.com\/blogs\/brentashley\/?p=1042"},"modified":"2022-12-28T23:11:39","modified_gmt":"2022-12-29T04:11:39","slug":"augmenting-my-mastodon-instance-with-s3-compatible-object-storage","status":"publish","type":"post","link":"https:\/\/ashleyit.com\/blogs\/brentashley\/2022\/12\/28\/augmenting-my-mastodon-instance-with-s3-compatible-object-storage\/","title":{"rendered":"Augmenting my Mastodon instance with S3-compatible object storage"},"content":{"rendered":"<p>I run my <a href=\"https:\/\/nerd.megahuge.com\">nerd.megahuge.com<\/a> personal Mastodon instance on an inexpensive virtual private server such as the ones you can find via <a href=\"https:\/\/lowendbox.com\/blog\/2-usd-vps-cheap-vps-under-2-month\/\">LowendBox.com<\/a>. The CPU and memory specs are absolutely more than enough to manage a single-user instance, however Mastodon&#8217;s cached media files can grow into the tens of gigabytes, even with cron jobs removing any cache over 3 days old and culling accounts on a regular basis.<\/p>\n<p>I found <a href=\"https:\/\/github.com\/cybrespace\/cybrespace-meta\/blob\/master\/s3.md\">these instructions<\/a> very useful in helping me to move my Mastodon public\/system folder to S3-compatible object storage.  Since I have modest needs and the <a href=\"https:\/\/idrivee2.com\">object storage I chose<\/a> doesn&#8217;t charge egress fees, I didn&#8217;t go to the extra length of putting an nginx cache\/proxy in front of it.<\/p>\n<p>Finally, I installed <a href=\"https:\/\/restic.net\">Restic<\/a> to back up my entire VPS to a separate S3 bucket.  All in all, a couple of hours well spent!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I run my nerd.megahuge.com personal Mastodon instance on an inexpensive virtual private server such as the ones you can find via LowendBox.com. The CPU and memory specs are absolutely more than enough to manage a single-user instance, however Mastodon&#8217;s cached media files can grow into the tens of gigabytes, even with cron jobs removing any [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"activitypub_content_warning":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-1042","post","type-post","status-publish","format-standard","hentry","category-blather"],"_links":{"self":[{"href":"https:\/\/ashleyit.com\/blogs\/brentashley\/wp-json\/wp\/v2\/posts\/1042","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ashleyit.com\/blogs\/brentashley\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ashleyit.com\/blogs\/brentashley\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ashleyit.com\/blogs\/brentashley\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ashleyit.com\/blogs\/brentashley\/wp-json\/wp\/v2\/comments?post=1042"}],"version-history":[{"count":3,"href":"https:\/\/ashleyit.com\/blogs\/brentashley\/wp-json\/wp\/v2\/posts\/1042\/revisions"}],"predecessor-version":[{"id":1045,"href":"https:\/\/ashleyit.com\/blogs\/brentashley\/wp-json\/wp\/v2\/posts\/1042\/revisions\/1045"}],"wp:attachment":[{"href":"https:\/\/ashleyit.com\/blogs\/brentashley\/wp-json\/wp\/v2\/media?parent=1042"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ashleyit.com\/blogs\/brentashley\/wp-json\/wp\/v2\/categories?post=1042"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ashleyit.com\/blogs\/brentashley\/wp-json\/wp\/v2\/tags?post=1042"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}