this post was submitted on 20 Apr 2025
40 points (93.5% liked)

Linux

53363 readers
517 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

Hi, so I want to building a pc for a home server (?) or NAS. I dont really know whats the most appropriate term but what I intend to build is a one pc for my household. currently my requirement is one work 'pc' capable of heavy 3d modeling one light work pc. two 4k gaming tvs. (they most likely wont be used at the same time)

my knowledge of technical stuff is bretty basic so please be patient with me.

before, i used my steam deck to stream my work pc using parsec but i thought i just want to jump all in on linux and using vm to use more niche 3d softwares.

my budget is flexible as long as i dont need to use enterprise hardware. also i heard nvidia is not good for linux so i'd like to confirm if that is still the case as im thinking of using 5090 if not, i hope amd releases an equivalent capable card or if any according my quick research suggest.

as for linux, the only distro (?) i ever used is the steam deck one and i love it. im not a programmer or even remotely capable one so i'd like to avoid anything that has to be manually typing commands at terminal but im open to surface level tinkering.

thank you for your time

top 31 comments
sorted by: hot top controversial new old
[–] Ulrich@feddit.org 11 points 1 day ago* (last edited 1 day ago) (2 children)

I think I'd recommend having at least 2 PCs. Your gaming PC is going to be terribly inefficient and draw 10x as much power at idle as a server with a mobile processor. Leaving it running 24/7 will get expensive to the extent that buying a dedicated server makes more sense. Plus if your gaming/work PC ever crashes while you're working, your server will crash as well.

Also if you ever work outside the home you probably want to have something that doesn't require a network connection.

You can get Yunohost set up with a single command.

[–] brandon@lemmy.ml 3 points 1 day ago (3 children)

Your gaming PC is going to be terribly inefficient and draw 10x as much power at idle as a workstation PC.

Is this really true? Modern components have fairly robust power saving capabilities. Just because it's got a 750W power supply doesn't mean it's drawing 750W all the time.

[–] Zeoic@lemmy.world 2 points 1 day ago (1 children)

My gaming PC takes 250w while gaming, my diy mini pc daily driver desktop takes 40w while working, my mini pc server running proxmox takes about 15w on average. The difference is over 10x in my case.

[–] Ulrich@feddit.org 3 points 1 day ago

I said at idle.

[–] Ulrich@feddit.org 4 points 1 day ago

Yes, it's really true.

[–] cmnybo@discuss.tchncs.de 3 points 1 day ago (2 children)

It's not really 10x unless you're comparing to something like an N100 mini PC. It's not unusual for a gaming PC to idle around 100 watts though. That does get expensive if it's on 24/7.

[–] lemonuri@lemmy.ml 5 points 1 day ago

Yeah, a sff mini pc draws below 10 W on idle, so the math is about right, even if a gaming PC can also draw as low as 40 Watt on idle if you buy a reasonably powered gpu.

[–] Ulrich@feddit.org 0 points 1 day ago

It's not really 10x unless you're comparing to something like an N100 mini PC

I assume most people running a dedicated personal server are using that or something similar. In the case of RPi or similar SBC it will be even more.

[–] Cikos@lemmy.world 2 points 1 day ago

i see, that def a good consideration. other people suggest a lot of great options, ill try those first and if in the end it doesnt work, this will be my final solution.

[–] monovergent@lemmy.ml 2 points 1 day ago (2 children)

It's certainly doable and something like that was my setup for a few years. There isn't much in the way of distros or software packages that provide such a 'personal multiseat' configuration out of the box.

I wanted bare metal GUI access, so instead of using Proxmox, I went about configuring Debian to the task. This might not directly answer any questions, but here's an idea of what it looked like.

Hardware

  • i7, 48 GB RAM, 500 W PSU
  • GTX 1650 (passed through to VM), Radeon R5 340X (basic bare metal output)
  • 60 GB SSD boot disk
  • 1 TB SSD for VM images
  • 2 x 4 TB HDD for NAS
  • 1 TB HDD for testing, "overflow", etc.

Boot disk

  • Debian stable with XFCE
  • Virtual machines set up through virt-manager and each port forwarded to LAN
  • unattended-upgrades, ufw / iptables firewall
  • GUI more for ease of management, software on bare metal kept to a minimum

Virtual machines / (RAM allotment)

  • Desktop (10 GB): I would use this VM while seated at the machine for productivity and web browsing.
  • NAS / media server (4 GB): both 4 TB HDDs passed through to this VM, which hosted a Samba file server and Jellyfin. Also served as file storage for a couple other VMs via internal connections. 4 TB of usable capacity since I set it to rsync to the second drive at 02:30 every morning.
  • Misc. services (4 GB): second Samba file server for devices I wanted to sync but didn't trust with access to my full 4 TB library. Also an Apache server to host a couple of HTML pages on LAN. Various other services tested here as well.
  • Windows (8 GB)
  • GPU access (16 GB): GTX 1650 forwarded here. Intended for gaming, but ended up using it for Stable Diffusion and LLMs for reasons below.

I'd suggest starting with anything graphically intensive running on bare metal and setting up a VM with virt-manager / Virtualbox / etc. for the NAS part. Get a couple of disks specifically to pass through to the NAS VM, forward its ports to LAN, and connect to them on the host as you would any other machine. For a desk further away, you may be able to get away with a KVM extender, but I can't say I've any experience with them.

If you try to virtualize everything like I did, there's a couple of hurdles:

  • Much time and manual configuration in the command line is needed
  • Atrocious graphical and input latency on remote connections
  • Very high RAM usage
  • Input glitches and general slowness on the VM with GPU passthrough, remained unresolved despite scouring tutorials from people who somehow managed to get buttery-smooth gaming in a VM
  • Lots of bandwidth used while updating all of the VMs. Probably optimizable, but not out of the box.

Go for AMD if you can, but NVIDIA hasn't given me much trouble either. Make sure to install the driver from your distro's repo, not NVIDIA's website. IMO, this is less of an issue if you decide to pass through the GPU to a VM since any NVIDIA driver shenanigans will be contained to the VM.

[–] Cikos@lemmy.world 1 points 1 day ago

thank you for the instruction!

[–] blinx615@lemmy.ml 1 points 1 day ago* (last edited 1 day ago)

I got used EPYC stuff and a 3090, but basically the same template; just a few more resources.

  • CPU: AMD EPYC 7542 (16 cores / 32 threads)
  • Motherboard: Supermicro H12SSL-i
  • Memory: Samsung DDR4 8×32GB
  • GPU: EVGA RTX 3090 FTW3 24GB

However, I haven't run into some of the issues you had. With the proxmox host on wired ethernet and my laptop on 5GHz wifi from about 10ft away from the access point I can easily play Rocket League with no noticeable latency, 1440p 120Hz. I'm using sunshine on a windows VM and moonlight on Fedora. It did, indeed, take a crapload of fiddling and I consider myself pretty adept at these things, but it can be done. :D

I also swap the GPU between two VMs. I have a Ubuntu VM I use for AI workloads for fiddling around. On that one, I just ssh in and the GPU is 100% utilized for AI. Planning to add another GPU in the future (or a few).

Can't speak to remote connections, but my previous experience with cloud providers tells me it might be good enough for slow paced games, but it will fail horribly on anything really latency dependent. Best case scenario is the latency is off by just enough to make you lose your mind, or worse, you get use to the weird remote latency and then get all screwed up when you play at home.

[–] grue@lemmy.world 5 points 1 day ago (3 children)

my knowledge of technical stuff is bretty basic so please be patient with me.

First of all, just from the fact that you're posting here and asking that kind of question, your knowledge of technical stuff is at least a little bit beyond "pretty basic."

Second, I get the impression that confusion over exactly what you're asking for is maybe more due to English not being your first language...? (No judgement if that's the case; your English is certainly way better than I could do in a second language.)

Anyway, on to actually giving my answer to your question:

  • Trying to set up a multiseat system can be tricky in general. If I recall, Other Linus (the one from Linus Tech Tips) has released several videos about that sort of thing over the years, but I don't think any of the tries were successful enough for him to daily-drive long-term. I know LTT is controversial, but it might be worth taking a look at his experience.

  • Trying to do it with GPU passthrough for gaming and 3D modeling adds an additional layer of complexity. I'm a software engineer and have been using Linux exclusively at home for almost a decade (and off and on for many years before that), and even I don't have GPU passthrough working on my home server. That's not necessarily to say that it's super difficult -- I haven't tried very hard to figure it out -- just that it isn't trivial even for somebody with experience.

  • If the above has scared you off from the whole "multiseat home server" thing but you still want a home Linux PC for gaming, my distro recommendation would be either bazzite, which I haven't used, but have heard good things about its appropriateness for that use-case, or boring ol' Ubuntu (or variant like Kubuntu, depending on your UI preference), which is popular enough to have official support from corporations like Valve and AMD and thus is most likely to "just work."

  • If the above didn't scare you off from building a home server, I recommend running Proxmox on it.

  • As for Nvidia, I fucking hate Nvidia for its CUDA monopoly and would never recommend it out of principle, but I have to grudgingly admit that some stuff just flat-out won't run on AMD or Intel GPUs. I believe proprietary "niche 3D software" is one of the most likely things to fall into that category, so you may have literally no choice. Check the system requirements of the particular software you plan to use.

  • The other features that you might lose out on by not using Nvidia are raytracing and hardware-accelerated PhysX. The AMD 9070 XT allegedly has decent raytracing, but although I own one I haven't verified that yet because I don't own any raytraced games. I tried the Half-Life 2 RTX demo, but it failed to start at all. As for PhysX, there are two important things to know: first, that should be improving because Nvidia is working on open-sourcing it. Second, for older games using the older PhysX API, the new 50-series Nvidia cards don't support them either. Apparently, if you want a decade+ old game like Mirror's Edge to work properly on your 5090, you've got to also have some cheap older Nvidia card alongside it to offload the PhysX calculations to, LOL.

  • Speaking of multiple cards, if you want to build a server that supports multiple GPU-accelerated users at the same time, you might consider getting multiple cheaper GPUs instead of one 5090. Although I believe virtually slicing a single GPU for passthrough access by multiple VMs at once may be possible in theory, the phrase "may be possible in theory" should be setting off alarm bells in your mind that it ain't gonna be easy.

[–] BCsven@lemmy.ca 2 points 1 day ago

3D CAD/Modeling on AMD graphics is fine. AMD is on the certification list for enterprise level CAD. I was running Proprietary CAD on Linux for a while.

[–] Cikos@lemmy.world 1 points 1 day ago

thank you for your time explaining what my hurdles will be, Yes I'm not native speaker so i apologize if my question is confusing.

seems like this is the way i have to do, ill research this further and try to go as far as i can and see if i can compromise something if its getting too hard for my skill.

[–] fiddlesticks@lemmy.dbzer0.com 1 points 1 day ago (1 children)

Speaking of multiple cards...

This is possible with sr-iov (Single Root I/O Virtualization) but it basically only exists on enterprise hardware and you can "hack" it for 20xx series and earlier so it could be a valid option if the performance of only using a 2080 is okay

[–] grue@lemmy.world 1 points 1 day ago

Thanks, that's what I was thinking of but I couldn't remember details or what it was called.

[–] narc0tic_bird@lemm.ee 7 points 1 day ago (1 children)

Not sure if I understand you correctly.

Your goal is to have a single (1) computer that replaces all computers you currently have by essentially virtualizing different systems?

[–] Cikos@lemmy.world 4 points 1 day ago

not exactly replace everything but i can use it to game in my living room and work in my work room. after a discussion at buildapc, the term thats best to describe it is 'multiseat'

[–] ahal@lemmy.ca 3 points 1 day ago (1 children)

I'm setting up something similar using Unraid and VMs. This route would probably be more of a challenge for you technically.. But if you're willing to learn, and pay, Unraid sounds like it would be a good fit for what you're trying to accomplish.

[–] Cikos@lemmy.world 2 points 1 day ago

thank you for your suggestion, i'll research it further and i wish you luck in your project. i dont mind a bit of a challenge but i'll need to assess if its worthwhile

[–] MattMckenzy@lemmy.ml 2 points 1 day ago (2 children)

For the multi-seating aspect, I've just set up something similar using something called a KVM Extender (I got this one). I have my PC set up in my office and another seat set up in my bedroom.

The KVM essentially just transports HDMI and USB a long distance through an ethernet cable, so the bedroom monitor just appears as a second monitor. I've set up a keyboard combination to switch between enabled monitors so only one is turned on at once.

Not sure how many seats you could push with this, since you would need a set of KVM extender boxes per seat with its own HDMI/Display and USB ports in the PC. Might be something to look into in case it fits!

[–] Cikos@lemmy.world 2 points 1 day ago

this sound like a viable option for me. thank you for your suggestion

[–] octobob@lemmy.ml 1 points 1 day ago (1 children)

Adding onto this a bit as I also use a KVM to stream games from my bedroom PC to the living room 4k TV.

Hyprland has been great for this. I used to use KDE, then i3. KDE was a PITA for this setup, no fault of their own it is just fundamentally a different one, and i3 worked to some extent but I was still constantly fiddling with stuff to get audio and video exactly how I wanted to (and to do it easily).

Hyprland just works for me and I love it. I press a keybind and run a script I wrote to turn off my desk monitors, set audio, and launch the emulator front end (emulationstation-DE). Which can also launch all my steam and lutris games, as well as emulators all the way up to PS3 and switch games.

I even mounted a remote start button on the wall and turn my PC on from the other room

[–] Cikos@lemmy.world 1 points 1 day ago (1 children)

thank you for the extra info. I'm interested in how you make the script for turning off monitor remotely, it def sound super useful.

[–] octobob@lemmy.ml 1 points 1 day ago* (last edited 1 day ago) (1 children)

It's actually very simple:

monitors-on:

#! /bin/bash

hyprctl keyword monitor DP-1, 2560x1440@144, 0x0, 1

hyprctl keyword monitor DP-3, 2560x1440@144, 2560x0, 1

hyprctl keyword monitor HDMI-A-1, disable

monitors-off is basically same thing but reversed:

#! /bin/bash

hyprctl keyword monitor DP-1, disable

hyprctl keyword monitor DP-3, disable

hyprctl keyword monitor HDMI-A-1, 0x0@60, 1

es-de

I'm still working out some kinks with audio so I don't wanna go down the rabbit hole hell that is pactl and pavucontrol in this post. But that's more of a universal Linux gripe I have than distro specific.

Obviously you'll need to tweak the script to what your specific setup is. The first numbers are x & y axis and the second is refresh rate. This is just an example. It's also Wayland only but you can do this in x11 no problem

As far as "remotely" switching, I just assigned the scripts to keybinds in the hyprland config file. Super easy.

[–] Cikos@lemmy.world 1 points 1 day ago

thank you for the instructions!

[–] Ludrol@szmer.info 1 points 1 day ago (1 children)

3d heavy modeling

Depending on the program of choice to go with AMD over NVIDIA will heavily impact your performance as cuda is better optimized than rocm. For me rocking rtx3060 it was hit or miss. It mostly depends on the distro if they choose to package the NVIDIA drivers out of the box. Some distros value freedom over usability. Right now I am daily driving bazzite and I am happy with it. For drivers its self I didn't notice any major issues.

From your convoluted explanation I assume you have one PC already and you want to upgrade. I would just get a new one for work stuff and old one set up as "light work" as you put it or hook up to the TVs

[–] Cikos@lemmy.world 1 points 1 day ago

before, i stream my pc at home from my office with steam deck. after a year the inconvenience outweighs the simplicity so i moved my home pc to my office so now im looking for a new build so might as well try to make something i've been wondering to do

[–] Mensh123@lemmy.world 1 points 1 day ago (1 children)

What exactly are you looking for? "Home Server" and "NAS" are both terms used to describe computers running server software and basically nothing else. Their purpose is to run webservers (the infrastructure behind lemmy.world), game servers (the thing you can connect to in Minecraft, for instance), E-Mail servers (like GMail - not the App on your phone, but what it connects to to get your E-Mails from) and so on. Essentially, they exist just so that other computers can talk to them.

Nearly every server is headless (no mouse and keyboard, no screen). To interface with it, you connect over the internet. You rarely see them run a graphical interface (to save resources) - people use the terminal to administrate them.


Do you want a PC (as in: personal computer) instead? PCs (including laptops and smartphones) run (mostly) graphical applications and end-user applications, such as web browsers, E-Mail clients, office programs, games, etc. In this case, try usual PC hardware. Most will work on Linux (it might be adequate to point out that there are PCs available built specifically to run Linux). General hardware compatibility is pretty good for standard peripherals such as keyboards, mouses, speakers, monitors and cameras (exception for all of them: MacBooks and newer NVIDIA graphics cards). In the Laptop world, many seem to enjoy ThinkPads. Pick a distro (https://distrowiz.pages.dev/, I use Fedora btw), pick a Desktop Environment if you're allowed to choose (technically you can always install another DE, it might just become messy) (the big ones are all great, the Deck's desktop mode uses KDE Plasma) and off you go. Tip: Test your distro in a VM.

As for the Terminal: You won't need it unless you go with Arch. Most of the time. The terminal is just very fast and way more standardized than GUIs. Therefore, Tutorials will use it all of the time. In rare occasions, GUI tools are not available. Good news: Learning the terminal is not as hard as learning to code. Once you feel ready, do try to learn how to use it. It's a good QOL improvement.

[–] Cikos@lemmy.world 1 points 1 day ago

thank you for your explanation, It seems i made a lot of people confused. After a bit of explanation it seems like 'multiseat' is the term for what i had in mind.

i'll check those distros and hopefully i will be able to use linux full time