Just starting out, please help me plan out my infrastructure reddit / selfhosted ---------------------------------------------------------------------- noob_homelab · 2023-10-26 03:49 I have some hardware that I hope can run some of the apps I want to try, but I need help selecting what hardware is best for what purpose. For example, what OS should I put on each one or what hardware I should use as standalone for an app or what hardware should run docker or virtualization platform. Here are the specs for the hardware I have: 4x NUC: Processor: Intel Celeron J4125, 2GHz with 2.7GHz Burst, 4 Core /4 Thread, 4MB Cache,10W Memory: 4GB DDR4 Storage: 64GB eMMC & 128GB 2.5in SSD 2x NUC7CJY: Processor: Intel Celeron J4005 (4M Cache, up to 2.70 GHz), 2 Core/2 Thread Memory: 4GB DDR4 Storage: 64GB eMMC & 128GB 2.5in SSD 1x DELL OptiPlex 3050 Processor: Intel i5 7500 (3.4GHz) Memory: 32GB DDR4 Storage: 1TB SSD 1x Synology DS213 Storage: 2x 3TB HDD Additionally, I have lots of hard drives of variable sizes (4TB-12TB)Here is the list of apps I would like to ideally run: Casa OS Gitea Home Assistant IMMICH Paperless Syncthing BookStack Grocy Uptime Kuma wazuh Kasm Stirling PDF Mattermost Tube Archivist PairDrop Netdata Leantime Traccar GNS3 Rustdesk NetBox Mealie YOURLS Change Detection Plausible Thanks in advance for brainstorming with me. ---------------------------------------------------------------------- dazchad · 2023-10-26 04:59 I don’t know all of apps, but you’d probably be able to host all of them on any of those machines. Maybe bump the memory to 8gb and make sure you have a good ssd. Immich is probably the most demanding if you are importing a large library, but should be ok for daily usage. I’d personally put everything into the dell. Install proxmox and create a vm for docker. If you observe some of the apps talking too much resources, create a new vm for them. I’d also create a vm for the database and share it as much as possible (create a db and a user for each service though). I personally love Postgres, but anything mainstream is fine. If you go through the VM route, don’t forget to take a snapshot once everything is configured, so it’s easy to rollback any mess up you do in the future. Also create a snapshot before updating anything, for the same reason. ---------------------------------------------------------------------- corsalove · 2023-10-26 05:45 Agree. Although I would do the dell for proxmox and one NUC for docker. Just because it’s nicer to have it on barebones. Maybe sell some hardware and invest in a better synology? +models can run dockers. All of these containers would run smooth on a synology! ---------------------------------------------------------------------- noob_homelab · 2023-10-26 16:33 Wow, thank you for the ideas. I am definitely on board with proxmox on the dell. I am a noob at this (see username), so sorry if this is a dumb question. For the docker VM and postgres DB, what host OS do you suggest? And, you are suggesting that any apps that want to use a db, set them up to use the postgres db? I will go about googling all this anyway, but I figured I can ask you in the meantime. ---------------------------------------------------------------------- dazchad · 2023-10-26 17:07 Use the OS you are most comfortable with. I usually go with Ubuntu because it usually just works and most software have a guide on how to install/debug on Ubuntu. At the same time, if you are using the OS only to install docker, it is irrelevant since the point of docker is having the apps install whatever they want (I'd still go with Ubuntu though). For Postgres, I usually install it on the OS itself, that is, not inside a docker container. I don't have a strong reason other than I prefer it that way though. > And, you are suggesting that any apps that want to use a db, set them up to use the postgres db? Yes. Some apps let you host your data on postgres. Those who do, I set up a user (`create user foo...`) and a database (`create database foo...`) for each one of them. This way, they are isolated from each other, and I can have a daily cron job such as `pg_dumpall | zstd -19 > pg_20231026.sql.zst` to backup all services in one go. However nothing prevents you from having a pg instance for each service, as they usually have a docker-compose pronto. It's just harder to backup each service individually. You can simplify by having a single user shared amongst the services, but just don't use the super admin `postgres`. I haven't used myself, but people seems to like portainer to manage the docker apps. Ask away any questions you have. I'd start simple by installing Proxmox on the machine, then create a VM with 8GB of ram and a few CPU, and start installing one service at a time and testing it. That way you can get familiar with the process and don't get stuck. If you want a super simple start, don't go with Proxmox. Just install your favorite OS on the machine and go from there. If you are super noob I'd probably go with this route since it has fewer moving parts. Don't forget the backups though! Shit _will_ happen and you will lose your data. ---------------------------------------------------------------------- dazchad · 2023-10-26 17:10 People usually underestimate how powerful computers are. Those services will idle most of the time, so it's ok to have a bunch of them on the same machine. I'd only concern myself if they server will do any heavy computing, such as transcoding. On that case having a GPU, integrated or discrete, will be fundamental.