I’m new to this stuff so go easy on me.
So I want to get into selfhosting, and I’ve decided to get a Raspberry Pi 5. I plan to attach drives to it, from about 500GB-1TB. I’m on a budget, preferably under $100.
I want to host these things:
- A personal lemmy instance
- A samba server, to store files and backups
- A mail server
- A few other light docker containers
I was wondering whether I should get an SSD or an HDD for these. Lemmy would probably like an SSD because it uses Postgres, but an HDD would be better for storage since I get more GB per dollar.
What should I go with?
While I run my own Lemmy instance, I can say with 100% certainty - do not host a Lemmy instance on your own hardware.
It’s tempting, and I did, but don’t. The reason? CSAM. Your hosting stuff for other people, and if someone uploads something horrible to another instance, that is federated with you. That means now you are hosting that content.
The feds then have full rights to kick down your door and seize your hardware. On the cloud however, they’ll seize your VM , but your home stuff is okay.
Hosting Lemmy is great - but it’s something you really have to think about. Hosting your content is awesome, fun, and rewarding. I’ve learned hosting other people’s content is… Not as fun.
Didn’t the Lemmy teams sort of fix that CSAM thing ages ago?
I remember a wave of lockdowns and hush hush related to that, soon followed by an update to Pictrs with a bunch of new docker compose settings.
My server got pooched in the update and it took me almost a month to fix partly because I had little free time.
There were some automod things built by 3rd larties, and they help, but it’s still a worry. There’s also image proxying now, so at least I’m not directly hosting it, but I’m not 100% that the feds will see it that way immediately
Ah, thanks for the info!
Is this really still true about images federating in Lemmy? In any case, I think the problem can be avoided by disabling pict-rs.
friends dont let friends run mail servers. id recommend no on that one
Every time I think about hosting my own mail server, I think back to the many, many, many times I’ve had to troubleshoot corporate email systems over the years. From small ones that ran on duct tape and prayers to big ones that were robust, high dollar systems.
98% of the time, the reason the messages aren’t coming or going is something either really obscure or really stupid. Email itself isn’t that complicated and it’s a legacy communications medium at this point. But it’s had so much stuff piled on top of it for spam and fraud prevention, out of necessity, and that’s where the major headaches come from. Honestly, it’s one service that to me it’s worth paying someone else to deal with.
And it was basically just Google and Microsoft that took away our ability to run our own mail servers.
I’ve been running mailcow for almost 2 years with no issues. I’m not doing anything major with it, mainly using it to send myself alerts on the environment, but it does work for external purposes if I want it to as well. Updating is easy and seamless. I did get greylisted almost immediately though, so I use SMTP2Go and it works great as a free relay for the amount of mail I generate.
It’s just for receiving, like aliases.
There are free services that let you send and receive on your own domain. I use zoho. I can send emails with SMTP, but unfortunately, you cannot read them other than by using their web interface in the free tier.
If you’re only looking for 1TB, go with an SSD. It’s about the same price. It’s only when you’re looking for >1TB that HDD starts to get substantially cheaper.
For any computer today, server or no, I’d probably default to SSD today unless I expected to be making use of a large store of files that I expected to access in serial, like a large movie collection or maybe a backup server that can play well with rotational drives.
The only thing there that looks like it could be doing that is the Samba server, depending upon what the remote clients are doing with it (could be a movie server).
In general, if you can fit your stuff on an SSD today, I’d get an SSD.
You also can also add a rotational drive down the line if you run low on space and need inexpensive space for something that you’re going to access in serial, and use both; just move the bulk stuff to the rotational drive then.
Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:
Fewer Letters More Letters CSAM Child Sexual Abuse Material RPi Raspberry Pi brand of SBC SATA Serial AT Attachment interface for mass storage SBC Single-Board Computer SMTP Simple Mail Transfer Protocol SSD Solid State Drive mass storage
[Thread #863 for this sub, first seen 11th Jul 2024, 02:05] [FAQ] [Full list] [Contact] [Source code]
You’re weighing speed & energy usage vs cost. With a small array, HDDs power draw difference probably won’t amount to much and you may hit the RPi’s I/O bottleneck before fully benefiting from SSDs speeds, though latency would be better.
But TL;DR: If your goal is to learn and build something cheap, go HDD. If you hate it, you can upgrade over time.
For running apps? SSD. For large amounts of data storage? HDD.
I don’t think an SSD is the right choice here. SSDs have a limited lifespan that’s majority driven by the number of writes that happen to a certain block. Reads are cheap and near infinite though.
When you’re talking about a Lemmy instance, mail server, etc. my mind thinks this is likely to be many writes with several read-once ops. This is a better use case for a HDD.
A media server that oriented towards most consumption (reading) would be better for SSD.
Highly recommend SSD if just for Lemmy. Man, the syncing can take a while. I have HDD with a m.2 cache and it can still take a while. Personally, I’d go for something a little more powerful, but it’s all fun and educational.
I use a combination of both. SSD’s to store read/write intensive data. In my case, I run multiple VM’s and store the primary VHD’s on SSD’s. HDD’s for stuff where space matters more than speed, like digital media and local backups.
couple of old 2.5 HDD + usb to SATA converter. But Pi5 is hardly suitable to host anything. May just get old PC (which gives you HDD too). There are plenty for < $100 or even free. But you are going to pay more for power.
I have Nextcloud running on a Pi4 and it runs like a charm. It has a lot of RAM and processing power to spare, actually. The good thing about arm mini computers is the exceptionally low power draw. You can’t achieve that with some old x86 PC.
I second this.
I have a nextcloud instance on pi4 for personal use and love it.
It’s not good for live transcoding of video, but works great for calendars, file sharing, photo sharing and music streaming.
I have a 500 gig SSD for most stuff and a 6TB HDD for backups and archiving.
I use docker compose to map a folder called archive in my instance to the HDD.
I would recommend both at some point in the future but for now, get an SSD and use that as the Pi boot drive. The default is an SD card and you will absolutely destroy it from the reads/writes fairly quickly which is a huge pain in the ass. Once you get some more disposable cash, get an HDD for mass storage. If you want a budget option, check out serverpartdeals.com or something like the WD Easystore/Elements external drives.
Take that $100, buy multiple drives, and make a RAID.
I’m running a Raspberry Pi 4 with an array of hard disks. Essentially the entire OS is on a small SSD but because I have so much data I’ve got two traditional HDD drives with XFS and LUKS disk encryption.
I’d say overall it works fantastically, over 802.11ax and Samba I’m pushing about 600-700 Mbps while transferring to the HDD drives.
Raspberry pi is power limited. HDD creates a power spike on boot as well so you may have power issues. When i used a rpi for a media server, i had to use a 25W supply. Even 20W wasnt enough and i had voltage throttling issues. 1TB HDD probably wont draw that much power but SSD is never an issue. If you dont need space and are on a budget SSD is the way to go. This is all assuming USB is used for power.
If you need large amounts of space and have a budget, use an HDD but it needs to be self powered or used with a larger device like a mini pc which has adequate internal power.
My RPi4 refused to start with a 2x2.5" hard drive, so I did some workarounds. I connected the USB 3.0 +5V pin to the GPIO and powered the RPi using a PD trigger with MINI 560 (5A DC-DC converter). In my case, a random 18W QC brick was enough.
Neat hack!