I don‘t know if this is the right place to ask, but is this an OK build for a first start in selfhosting? Is there anything obvious I could improve? I‘d mainly run Nextcloud, Immich, some Docker containers and smaller web applications and cronjobs.

  • Tolstoy@lemmy.world
    link
    fedilink
    English
    arrow-up
    13
    ·
    22 days ago

    Depends on the docker containers but it’s way overkill than you might think.

    Since you’re starting it may be worth looking into used office PCs like the thinkcentre from Lenovo or other brands(no tiny or ssf since they don’t have to room for drives). They often offer good perfomance for the price and the power consumption is not too high.

  • irmadlad@lemmy.world
    link
    fedilink
    English
    arrow-up
    8
    ·
    21 days ago

    Your server looks fabulous, and I’m not discouraging you from pursuing it in the least. However, if I may draw from my own personal experience and what I am currently running, it may give you some ideas. Currently, I am running 53 containers on a Optiplex 7020 SFF with the i7-4790 and 32 GB RAM. Just checked and it’s load average at this moment is: 0.47, 0.60, 0.73. Meaning it’s pretty much in an idle state except for logging in just now. Grand total cost was less than $200. It consumes about $8 USD/month.

    Unless you’re going to get into selfhosting heavy AI models, most stock PC, office discards, etc built in the last 10 years will do just fine for a homelab, with a little love like some additional RAM or a dual nic card. Immich and Nextcloud will probably require a bit more than 16 GB RAM running together. I don’t run Immich, but I do run Nextcloud and it does just fine with the above set up. No lags, stutters, etc.

  • sepi@piefed.social
    link
    fedilink
    English
    arrow-up
    8
    ·
    21 days ago

    I have used a laptop without a screen as a server, raspberry pis, 10 year old laptop, proliant server, something with a via itx motherboard and a cheap cpu, like literal trash.
    So yeah your build is more than fine. Don’t stress your budget too much, but if you can afford this you will have better than my first “server”. Remember to have fun with it!

    • waterSticksToMyBalls@lemmy.world
      link
      fedilink
      English
      arrow-up
      3
      ·
      edit-2
      21 days ago

      Ran a server off a fantastic workstation laptop that a user dropped off their bed, driving a USB stick through the power button and breaking the screen. Had to power it on with a stick directly poking the motherboard but it worked flawlessly for many years

  • realbadat@programming.dev
    link
    fedilink
    English
    arrow-up
    5
    ·
    22 days ago

    Just about anything is OK for a server, I use whatever hardware I get from work thats being decommissioned.

    The biggest limit I see is the ram. Depending on what you spin up and how, it’ll be the tightest budget per service.

  • inanimate_carbon_rod@lemmy.zip
    link
    fedilink
    English
    arrow-up
    3
    ·
    21 days ago

    16GB RAM may be a bit low for the setup, as others have suggested, but I’m currently running Immich and Nextcloud and a handful of other small services (like FMD) dockerized in an 8GB Raspberry Pi 5. I’ve experienced very few issues. In my opinion, you could find a used Ryzen 3600 or even older, and 16GB will probably serve you just fine. You could save yourself a hundred bucks or more.

    That said, what you’ve got here is nice and future-proof for quite a while, even if you end up going down the rabbit hole. You might eventually need another 16GB of RAM, but maybe not until after the AI bubble pops 🙂

    • melroy@kbin.melroy.org
      link
      fedilink
      arrow-up
      2
      ·
      21 days ago

      I agree. The most limiting factor is still memory for me. And I’m max out currently of my motherboard (128gb).

      Recently thessecond limiting factor is actually cpu. But that is due to my gitlab runners.

        • melroy@kbin.melroy.org
          link
          fedilink
          arrow-up
          0
          ·
          19 days ago
          • I run 50+ websites
          • MariaDB instances
          • PostgreSQL instances
          • Docker containers
          • Mbin, Nextcloud, GitLab, GitLab runners, gitea, bitcoind, fulcrum, grafana, prometheus, influxdb, Synapse, Angie, telegraf and various other services like fail2ban etc. etc.

          All optimized for performance and fine tuned as well, eg. lets say you run mariadb vs how I run it:

          innodb_buffer_pool_size = 8G
          innodb_flush_log_at_trx_commit = 2
          innodb_log_file_size = 2G
          innodb_log_buffer_size = 32M
          innodb_max_dirty_pages_pct = 90
          innodb_io_capacity=5000
          innodb_io_capacity_max=20000
          innodb_read_io_threads=8
          innodb_write_io_threads=8
          query_cache_type = 1
          query_cache_limit = 2M
          query_cache_min_res_unit = 2k
          query_cache_size = 128M
          tmp_table_size= 128M
          max_heap_table_size= 128M
          
          [mysqld]
          max_connections = 200
          character_set_server = utf8mb4
          collation_server = utf8mb4_general_ci
          transaction_isolation = READ-COMMITTED
          binlog_format = ROW
          innodb_file_per_table=1
          # Increase open files based limits.conf value
          open_files_limit=65535
          

          Same idea for Postgresql… You can run “postgres” or… actually run postgresql in production correctly like:

          shared_buffers = 6GB
          work_mem = 20MB
          maintenance_work_mem = 2GB
          maintenance_io_concurrency = 200
          max_worker_processes = 14 
          max_parallel_workers_per_gather = 4
          max_parallel_maintenance_workers = 4
          max_parallel_workers = 12
          
          synchronous_commit = off
          commit_delay = 300
          
          checkpoint_timeout = 30min
          max_wal_size = 60GB
          min_wal_size = 4GB
          
          • hirihit640@sh.itjust.works
            link
            fedilink
            English
            arrow-up
            0
            ·
            18 days ago

            Actually now that I check your username I think I have seen your instances before, though it seems like your website is down at the moment. But thank you for service to open source !

  • utjebe@reddthat.com
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    21 days ago

    You can get Ryzen 5650G Pro from ebay that will support ECC. Just make sure it’s not vendor locked.

    Obviously you’d need to adjust mobo, not sure if Gigabyte supports ecc. Asrock was pretty cool with ECC.

    • dieTasse@feddit.org
      link
      fedilink
      English
      arrow-up
      2
      ·
      18 days ago

      I’d recommend using eficient procesors as well, so with ryzen with grafics and efficience it’s GE at the end. I recently switched ryzen 5 5500 for ryzen 5 4600GE (because 5500 doesn’t have efficient variant) and the consumption halved. And both were/are basically idle with very low loads.

  • Riskable@programming.dev
    link
    fedilink
    English
    arrow-up
    2
    ·
    21 days ago

    Massive overkill!

    That’s a great Home Theater PC. Hook it up to your TV and install KDE Plasma (distro of your choice 👍) then just crank up the global desktop zoom to like 225% and get:

    • A real wireless mouse that has a long range (e.g. $10 TEKNET cheapo deal with 10% off coupon today, LOL! https://a.co/d/02qG1oHO )
    • A wireless keyboard/trackpad combo that’s made for that kind of thing (they’re all terrible keyboards—it’s only purpose is to get you through the boot menu/rescue process if something horrible goes wrong). Use SSH for doing any real work on the thing.

    Now install Docker and all the containers/servers you want!

    I have a ~14yo HTPC with a mostly modern GPU (8GB) that only has 8GB of RAM and four cores on some old AMD CPU. It’s running four separate servers for my self-host purposes and it doesn’t break a sweat.

    • melroy@kbin.melroy.org
      link
      fedilink
      arrow-up
      1
      ·
      21 days ago

      I don’t think it’s a massive overkill. He most likely will try to host even some more services besides nextcloud etc.

      I recommend actually to get more ram. Despite the stupid high prices I know.

  • Taasz/Woof@piefed.social
    link
    fedilink
    English
    arrow-up
    2
    ·
    21 days ago

    I would probably go Intel with iGPU for the transcoding and acceleration for Immich. i3-14100 is fast and cheap.

    Otherwise you definitely have far more CPU power than you’ll need for those apps so no worries there.

  • yaroto98@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    21 days ago

    One thing you may want to explore is your OS. If you want to do what you suggested with a NAS OS like TrueNAS or Unraid. They can take advantage of a ssd cache. One small regular ssd for your OS, storage on your hdd array, and a NAS quality ssd that essentially runs your docker containers that gets backed up to your array.

    It’s not nessesary. But if it’s something you think you might want to do in the future, you’ll want a plan for it now. Make sure you have enough mobo connections, and space in your case or an idea on how you would want to expand.

  • waigl@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    21 days ago

    If you’re already going for spinning rust hard disks, why limit yourself to the 3 TB ones? IMHO, these days, spinning rust only makes sense at 8 TB+ per disk.

  • lewiks@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    21 days ago

    I have that same case in black, overall very similar setup. I like how it looks, but if I would change one thing in my server it would be the case. It’s quite a hassle to work inside of, and for its size, only being able to hotswap 4 HDDs is very little compared to other cases you can find.

    It’s not bad by any means, but you can get better

  • IsoKiero@sopuli.xyz
    link
    fedilink
    English
    arrow-up
    1
    ·
    22 days ago

    16GB of ram is a bit low for the load you’re planning. That can work, but Nextcloud and Immich are pretty hungry for memory. My immich instance right now is using 7GB of RAM and nextcloud uses a bit over 4. I have the hardware to give them pretty much all the memory they want, so those are not absolute minimum amounts, but I wouldn’t try to run either with less than 6GB allocated memory on my load (few users, about a terabyte of data on both).

    With 16GB you can pretty much forget using ZFS, but that’s not a big loss. LVM works just fine and with thin provisioning you can use snapshots too just fine. Bigger SSD/NVME for drive cache would be good. And of course all-SSD setup would be nice, but that gets expensive pretty fast. Second ethernet port might be nice to have, depends on how you’re planning to build your setup. Otherwise that hardware looks pretty good, altough I’d search for something second hand. CPU is most likely a bit overkill for what you need, I have Xeon E5-2620 v3 @ 2.40GHz and it’s running on around 10% load most of the time.

      • IsoKiero@sopuli.xyz
        link
        fedilink
        English
        arrow-up
        2
        ·
        21 days ago

        It’s a full VM, so OS and docker creates some overhead, but before I upgraded the server it ran on far less resources and specially big imports were painfully slow. Also that’s just the number from proxmox console, so there’s likely some cache included, but stats show that the VM pulls over 10G every now and then with shorter spikes over 20GB of consumed RAM.

        As I mentioned, it can run on way less, but it feels a lot more responsive when it has enough resources.

        • calamityjanitor@lemmy.world
          link
          fedilink
          English
          arrow-up
          1
          ·
          21 days ago

          I just ran an import of only a dozen photos and it did go up to 2.3GB usage. I knew containers were more lightweight but I didn’t think a VM could get that bad. Hopefully it’s reporting a sum of virtual or assigned memory space and isn’t actually hogging that much in physical ram.

          • IsoKiero@sopuli.xyz
            link
            fedilink
            English
            arrow-up
            2
            ·
            21 days ago

            Immich itself is running on docker, so it’s the same than every other setup. For me it just makes more sense to run that on a separate VM than keeping all the docker containers in a same operating system due to backups, manageability, access control and so on, even if it costs a bit of memory to run a full operating system. Biggest consumers on the host process list are immich-api, postgres-processes and immich. Actual used memory is around 2,5GB for the whole system with ~5GB on buffers/cache.

            But I often import hundreds of raw photos at a time from DSLR and/or 4K video footage from my drone and processing those takes quite a lot of memory. With less memory and slower drives the whole thing crashed when importing bigger batches to out of memory erros, but I suppose it could run just fine with even less than 4GB of memory, if the usage pattern is just to upload photos from your cellphone in a relatively slow pace.

      • Taasz/Woof@piefed.social
        link
        fedilink
        English
        arrow-up
        2
        ·
        21 days ago

        Have you checked while it’s running all the ML tasks on import? Mine uses a good chunk of RAM while that’s running.

  • sarkxy@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    22 days ago

    Yes it will be fine. Much will depend on what OS you will run and in turn how you want to do storage. NAS drives might not be necessary if you going to use software defined storage. If in your budget consider a CPU with more cores for virtualization and docker.

    Overall nothing wrong with that configuration. But if you really get into all the awesome stuff you can self host your two constraints are RAM and CPU cores.

    • libewa@feddit.orgOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      22 days ago

      The NAS drives are here because they are from an old NAS which only uses a cheap dual-core Intel, has 2G of RAM, and boots from eMMC. So anything would be an upgrade…

  • libewa@feddit.orgOP
    link
    fedilink
    English
    arrow-up
    1
    ·
    21 days ago

    Follow up question: Do I need a separate CPU cooler, or is the boxed Wraith enough? And how loud is it? I can’t really find info on that.