• 0 Posts
  • 8 Comments
Joined 1Y ago
cake
Cake day: Jun 11, 2023

help-circle
rss

You’ve gotten a lot of good answers, so I’m going to do some out of the box thinking - maybe it will spark a few ideas.

Goal:

  • self hosted server on boat

Issues:

  • size
  • power
  • corrosion

So if I were going to do this myself, I’d start with a pelican or other similar watertight container. We don’t want the equipment getting wet, and we don’t want it exposed to the salty air.

I’d probably pick a usff computer, like a dell 9020 or maybe a framework motherboard. To get the storage, I’d get one of these to add multiple sata ports to the computer. Then its a matter of getting a bunch of ssds and powering them. I think the 12v goal is going to be too restrictive, most laptops need 19v to charge, so I’d just bite the bullet and get an inverter. If you’re really tight on power you could go with a pi, but the framework motherboard/usff both use mobile processors, and shouldn’t draw too much while idle.

Any wires that pass though to the case should be made through waterproof bulkheads.

Personally I’d nix the HDMI out requirement. One more port to keep track of and it complicates the self hosting. If you want it for media streaming to a TV then I’d recommend a roku and just run a jellyfin server on the computer. If you want it for server debugging I wouldn’t bother running it out of the case.

The last thing I’d do is figure out cooling. For this I’d probably create some sort of closed loop heat exchanger from the case to either the outside air or the lake/ocean itself. This could be as simple as a pump running water through two radiators, one in the case and the other outside or just dumped overboard. If you know your power usage ahead of time you might be able to get away with a peltier element, dumping the heat outside the case.

I’d probably put this all on its own power system, get a solar panel, battery, inverter, etc. It could even get topped off by the boat’s system if it needs extra juice.

Also whatever you do, I’d figure out a way to ensure you’re giving your system a clean and steady 12v.


Migadu micro tier is $19/year. Great service and has a great privacy policy. Basically unlimited domains. Ive been very happy with them.

https://www.migadu.com/



Proxmox has a virtual monitor in its web interface, so you can access the desktop of a virtual machine that way. It’s a little clunky but works ok for quick configuration. Alternately you could remote desktop into the virtual machine.

Quicksync is a little more tricky. GPU pass through is a pain, and I’m not sure off the top of my head about that. You can Google “proxmox quicksync passthrough” and see if any solutions will work for you. There’s a chance that all you would need to do is set the processor type correctly in the virtual machine settings, but I’m not sure.


Have you considered replacing the OS with proxmox and running everything in virtual machines?


What no one else has touched on is the protocol used for network drives interferes with databases. Protocols like SMB lock files during read/write so other clients on the network can’t corrupt the file by interacting with it at the same time.

It is bad practice to put the docker files on a NAS because it’s slower, and the protocol used can and will lead to docker issues.

That’s not to say that no files can be remote, jellyfin’s media library obviously supports connecting to network drives, but the docker volume and other config files need to be on the local machine.

Data centers get around this by:

  • running actual separate databases with load balancing
  • using cluster storage like ceph and VMs that can be moved across hypervisors
  • a lot more stuff that’s very complicated

My advice is to buy a new SSD and clone the existing one over. They’re dirt cheap and you’re going to save yourself a lot of headache.


I definitely recommend you do your own research into this. Brute forcing ssh keys should be practically impossible. Is it necessary to install fail2ban with password login disabled? Not sure, I’m of the opinion that it won’t hurt, just one more line of defense. It’s pretty easy to setup.


Security through obfuscation is never a good idea. Best practices for exposing ssh (iirc):

  • disable root login (or at least over ssh)
  • disable password login over ssh, use key pairs instead
  • use fail2ban to prevent brute forcing
  • install security updates frequently

All of those are pretty easy to do, and after that you’re in a really good place.

I don’t see a problem with ssh tunneling to access services, as long as the ssh server is secured correctly