02-26-2026, 12:51 AM
Since fixing the physical networking in my house (cables, routers, etc) a couple of years ago, I'd been planning to build a "project" server of some sort to consolidate the services running on raspberry pis and virtual machines on my desktop. It would also be a space where I could easily spin up a new VM to use as a dev environment or host a new service/website; a sort of catch-all utility box that would also provide network file sharing and other general server duties.
Last year, I made the plan to put this project together in 2026...then fucking AI happened. At the same time, [USER=28507]@Digital Prophet[/USER] had a need for something similar - a machine he could put on the network share to drive his NAS. Then we started having notions of pulling our internet services in-house because of... :gestures around:
So last month I panic-bought everything I could afford instead of getting what I wanted by parceling it out through the year like I planned. As a result, I am completely unprepared to get everything set up - and there is a LOT to set up.
In this thread, I'm going to lay out my to-do list so interested parties know where I am - and it will keep me working on it by you guys keeping me honest
I plan to do this more or less in order. Let me know if you have any questions about the progress, or if you have suggestions.
Network/Physical Infrastructure COMPLETE!
The following virtual machines will be part of internal network infrastructure
Audio (ben-audio) | CPU: 2 / RAM 4GB IN PROGRESS
Dedicated server for Navidrome and Audiobookshelf streaming services. Install services and migrate data from existing VM (will not be doing a lift-and-shift as planned, but will be preserving app data).
Nextcloud (ben-cloud) | CPU: 2 / RAM 8GB COMPLETE!
Web application platform, primarily used for file sharing. Will have a limited number of accounts available for others to use as storage (like Dropbox et al). Space will be determined by how much I actually have divided by the number of accounts.
Utility (ben-utils) | CPU: 2 / RAM: 4GB COMPLETE!
While setting things up, I realized it would be handy to have an "auxiliary" computer that I could hand off tasks to, like one-off services I only need temporarily, or running a nextcloud client that syncs up my music files (for use on the music server) - essentially things that I'd like to run from time to time but would rather not run on my daily driver and don't belong on the server. This is also likely where I will do torrent-ing and be a development environment
Future VMs
After some workload testing of various VM configurations, I have been able to adjust CPU and RAM allowances to better reflect the work requirements for each machine. RAM will probably fluctuate as it's not easy to predict what the need is without knowing what is actually going to run, but for CPU I've settled on 1 or 2 CPUs depending on workload. Unless there is a plan to have a heavy service with more than a handful of simultaneous users (like video streaming or a gaming server) devoting any more than 2 CPUs is overkill. If the VM will be a headless web server for a blog no one reads, 1 CPU is just fine.
The host will need at least 2 CPUs and 4GB RAM for it's own use. With the existing VMs, this will leave 8 CPUs and 28GB RAM. Here is the plan for that space:
BenBS (working title) | CPU: 2 / RAM 4GB
Server to host personal blog, games, etc through a secure shell interface. This doesn't actually exist yet and is a project for another time.
Pete's Playground | CPU: 2 / RAM 8GB
A general purpose place for [USER=4840]@BigPete[/USER] to do things if he doesn't want to spin up something on a hosting service. I'll leave it up to him to do whatever (let me know what distro you want - if you don't have a preference, I would recommend Debian 13).
Webserver | CPU: 2 / RAM 2G
A headless general purpose web server with Apache/Node/SQLite to host internet sites.
Last year, I made the plan to put this project together in 2026...then fucking AI happened. At the same time, [USER=28507]@Digital Prophet[/USER] had a need for something similar - a machine he could put on the network share to drive his NAS. Then we started having notions of pulling our internet services in-house because of... :gestures around:
So last month I panic-bought everything I could afford instead of getting what I wanted by parceling it out through the year like I planned. As a result, I am completely unprepared to get everything set up - and there is a LOT to set up.
In this thread, I'm going to lay out my to-do list so interested parties know where I am - and it will keep me working on it by you guys keeping me honest

I plan to do this more or less in order. Let me know if you have any questions about the progress, or if you have suggestions.
Network/Physical Infrastructure COMPLETE!
- Cut and assemble shelves
- Hang server shelf
- Hang shelf to mount UPS
- Remove switch
- Alert DP so he can adjust his access point IP
- Alert DP so he can adjust his access point IP
- Run new electric lead
- Install plug
- Remove old power strip
- Install plug
- Make temp (long) network cable to assist during server assembly
- Assemble server
- Test
- Cable clean up/management
- Diagnose
- Replace cable run from router to upstairs
- Install host OS (Debian 13) on nvme
- Assign IP address
- server IPv4 config
- router config
- server IPv4 config
- Create user for DP
- Install:
- sudo (assign privileges to users)
- packages for QEMU/KVM (virsh et al)
- nfs
- samba
- ssh (configure for users as needed)
- ufw - allow ssh
- sudo (assign privileges to users)
- Create and configure virtual network
- router config
- router config
- Test ssh access
- Install drives
- Format each with one ext4 volume
- Create mount points, change owner and permissions
- /mnt/jim/Media
- /mnt/jim/Files
- /mnt/jim/Media
- Update /etc/fstab to mount on boot
- Transfer files from backup media
- Configure nfs
- update /etc/exports with allowed client IPs
- allow nfs for client IPs in ufw
- on clients, update /etc/fstab with share mount points
- update /etc/exports with allowed client IPs
- Test nfs access on clients
- Develop backup plan
- Install drives
- Create mount point(s), change owner and permissions
- /mnt/dp/<whatever>
- /mnt/dp/<whatever>
- Update /etc/fstab to mount on boot
- Configure samba
- For DP: samba is the file sharing tech that allows network file sharing to Linux and Windows clients from a Linux server.
- I have not done this in a while. I need to look up the steps, but I don't think it is that hard
- configure Windows clients with samba - again, haven't done this in a while, but I think Windows network discovery works with samba so its probably not that painful
- For DP: samba is the file sharing tech that allows network file sharing to Linux and Windows clients from a Linux server.
- Test samba access on clients
- Create "template" VMs from which to clone future VMs
- headless web server (Debian 13) - decided against this, there is no reason considering setup without a desktop is incredibly fast
- basic GUI "sandbox" (Debian 13/KDE)
- headless web server (Debian 13) - decided against this, there is no reason considering setup without a desktop is incredibly fast
- Create two shell scripts
- vm_start.sh - accept one parameter for VM name
- vm_stop.sh - accept one parameter for VM name
- vm_start.sh - accept one parameter for VM name
- Create template systemd service (to launch/shutdown/monitor VMs); each VM will have a service, using the shell scripts to start/stop the VMs gracefully when the host is booted/shutdown
- Create systemd service for each VM
- Test virtual network, make sure a VM is reachable from other nodes
- Move server to closet
- Tidy new cable runs
- Sweep
- Garbage
The following virtual machines will be part of internal network infrastructure
Audio (ben-audio) | CPU: 2 / RAM 4GB IN PROGRESS
Dedicated server for Navidrome and Audiobookshelf streaming services. Install services and migrate data from existing VM (will not be doing a lift-and-shift as planned, but will be preserving app data).
Nextcloud (ben-cloud) | CPU: 2 / RAM 8GB COMPLETE!
Web application platform, primarily used for file sharing. Will have a limited number of accounts available for others to use as storage (like Dropbox et al). Space will be determined by how much I actually have divided by the number of accounts.
Utility (ben-utils) | CPU: 2 / RAM: 4GB COMPLETE!
While setting things up, I realized it would be handy to have an "auxiliary" computer that I could hand off tasks to, like one-off services I only need temporarily, or running a nextcloud client that syncs up my music files (for use on the music server) - essentially things that I'd like to run from time to time but would rather not run on my daily driver and don't belong on the server. This is also likely where I will do torrent-ing and be a development environment
Future VMs
After some workload testing of various VM configurations, I have been able to adjust CPU and RAM allowances to better reflect the work requirements for each machine. RAM will probably fluctuate as it's not easy to predict what the need is without knowing what is actually going to run, but for CPU I've settled on 1 or 2 CPUs depending on workload. Unless there is a plan to have a heavy service with more than a handful of simultaneous users (like video streaming or a gaming server) devoting any more than 2 CPUs is overkill. If the VM will be a headless web server for a blog no one reads, 1 CPU is just fine.
The host will need at least 2 CPUs and 4GB RAM for it's own use. With the existing VMs, this will leave 8 CPUs and 28GB RAM. Here is the plan for that space:
BenBS (working title) | CPU: 2 / RAM 4GB
Server to host personal blog, games, etc through a secure shell interface. This doesn't actually exist yet and is a project for another time.
Pete's Playground | CPU: 2 / RAM 8GB
A general purpose place for [USER=4840]@BigPete[/USER] to do things if he doesn't want to spin up something on a hosting service. I'll leave it up to him to do whatever (let me know what distro you want - if you don't have a preference, I would recommend Debian 13).
Webserver | CPU: 2 / RAM 2G
A headless general purpose web server with Apache/Node/SQLite to host internet sites.

