Category: Homelab

Homelab is the category on orthogonal.info dedicated to building, operating, and securing home server infrastructure. From NAS configuration and network segmentation to Docker-based self-hosting and power management, this collection documents the real decisions and trade-offs involved in running production-grade services at home. If you believe your home network deserves the same engineering rigor as a cloud deployment, you are in the right place.

With 16 hands-on posts, Homelab captures lessons learned from building and maintaining a serious home infrastructure — complete with the mistakes, workarounds, and victories that vendor documentation never mentions.

Key Topics Covered

TrueNAS and network-attached storage — Setting up TrueNAS SCALE and TrueNAS CORE, ZFS pool design, snapshot and replication strategies, and SMB/NFS share configuration for mixed-OS environments.
Self-hosting services — Deploying and maintaining services like Nextcloud, Immich, Jellyfin, Home Assistant, Vaultwarden, and Pi-hole with Docker Compose on home servers.
Network segmentation and firewalls — Designing VLAN architectures with OPNsense or pfSense, isolating IoT devices, configuring WireGuard for secure remote access, and implementing DNS-based ad blocking.
Hardware selection and builds — Choosing server hardware, evaluating mini PCs vs. rack-mount servers, NIC and HBA selection, and balancing performance with power consumption and noise levels.
UPS and power management — Configuring NUT (Network UPS Tools) for graceful shutdowns, monitoring battery health, and designing power-resilient home infrastructure.
Backup and disaster recovery — Implementing 3-2-1 backup strategies with ZFS replication, restic, Borg, and off-site cloud targets, plus documented recovery procedures.
Monitoring and automation — Running Uptime Kuma, Grafana, and Prometheus at home, plus scripting automated maintenance tasks with cron, systemd timers, and Ansible.

Who This Content Is For
This category is for homelab enthusiasts, self-hosting advocates, system administrators who tinker at home, and privacy-conscious engineers who want to own their data and services. Whether you are starting with a single Raspberry Pi or running a multi-node server rack, the guides scale to your ambition. The content assumes basic Linux familiarity and a willingness to learn by doing — no enterprise budget required.

What You Will Learn
By exploring the Homelab category, you will learn how to plan, build, and maintain home infrastructure that is reliable, secure, and genuinely useful. You will understand how to design storage pools that protect your data, segment your network to contain IoT risks, deploy self-hosted services that rival their cloud counterparts, and monitor everything with open-source tools. Each guide shares real configurations, hardware recommendations based on actual use, and honest assessments of what works and what does not.

Check out the posts below to start building your ideal homelab.

  • Setup k3s on CentOS 7: Easy Tutorial for Beginners

    Setup k3s on CentOS 7: Easy Tutorial for Beginners

    Picture this: you’re tasked with deploying Kubernetes on CentOS 7 in record time. Maybe it’s for a pet project, a lab environment, or even production. You’ve heard of k3s, the lightweight Kubernetes distribution, but you’re unsure where to start. Don’t worry—I’ve been there, and I’m here to help. I’ll walk you through setting up k3s on CentOS 7 step by step. We’ll cover prerequisites, installation, troubleshooting, and even a few pro tips to make your life easier. By the end, you’ll have a solid Kubernetes setup ready to handle your workloads.

    Why Choose k3s for CentOS 7?

    📌 TL;DR: Picture this: you’re tasked with deploying Kubernetes on CentOS 7 in record time. Maybe it’s for a pet project, a lab environment, or even production. You’ve heard of k3s, the lightweight Kubernetes distribution, but you’re unsure where to start.
    🎯 Quick Answer: Install k3s on CentOS 7 with a single command: curl -sfL https://get.k3s.io | sh -. K3s runs a full Kubernetes cluster in under 512MB RAM. Verify with sudo k3s kubectl get nodes. It bundles containerd, CoreDNS, and Traefik by default.

    Kubernetes is a fantastic tool, but its complexity can be daunting, especially for smaller setups. k3s simplifies Kubernetes without sacrificing core functionality. Here’s why k3s is a great choice for CentOS 7:

    • Lightweight: k3s has a smaller footprint compared to full Kubernetes distributions. It removes unnecessary components, making it faster and more efficient.
    • Easy to Install: A single command gets you up and running, eliminating the headache of lengthy installation processes.
    • Built for Edge and IoT: It’s perfect for resource-constrained environments like edge devices, Raspberry Pi setups, or virtual machines with limited resources.
    • Fully CNCF Certified: Despite its simplicity, k3s adheres to Kubernetes standards, ensuring compatibility with Kubernetes-native tools and configurations.
    • Automatic Upgrades: k3s includes a built-in upgrade mechanism, making it easier to keep your cluster updated without manual intervention.

    Whether you’re setting up a development environment or a lightweight production cluster, k3s is the ideal solution for CentOS 7 due to its ease of use and reliability. Now, let’s dive into the setup process.

    Step 1: Preparing Your CentOS 7 System

    Before installing k3s, your CentOS 7 server needs to meet a few prerequisites. Skipping these steps can lead to frustrating errors down the line. Proper preparation ensures a smooth installation and optimizes your cluster’s performance.

    Update Your System

    First, ensure your system is up to date. This keeps packages current and eliminates potential issues caused by outdated dependencies. Run the following commands:

    sudo yum update -y
    sudo yum upgrade -y
    

    After completing the updates, reboot your server to apply any pending changes to the kernel or system libraries:

    sudo reboot
    

    Set a Static IP Address

    For a stable cluster, assign a static IP to your server. This ensures consistent communication between nodes. Edit the network configuration file:

    sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
    

    Add or modify the following lines:

    BOOTPROTO=none
    IPADDR=192.168.1.100
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.1
    DNS1=8.8.8.8
    

    Save the file and restart the network to apply the changes:

    sudo systemctl restart network
    

    Verify the static IP configuration using:

    ip addr
    

    Disable SELinux

    SELinux can interfere with Kubernetes operations by blocking certain actions. Disable it temporarily with:

    sudo setenforce 0
    

    To disable SELinux permanently, edit the configuration file:

    sudo vi /etc/selinux/config
    

    Change the line SELINUX=enforcing to SELINUX=disabled, then reboot your server for the changes to take effect.

    Optional: Disable the Firewall

    If you’re in a trusted environment, disabling the firewall can simplify setup. Run:

    sudo systemctl disable firewalld --now
    
    Warning: Disabling the firewall is not recommended for production environments. If you keep the firewall enabled, open ports 6443 (Kubernetes API), 10250, and 8472 (Flannel VXLAN) to ensure proper communication.

    Install Required Dependencies

    k3s doesn’t require many dependencies, but ensuring your system has tools like curl and wget installed can avoid potential errors during installation. Use:

    sudo yum install -y curl wget
    

    Step 2: Installing k3s

    With your system prepared, installing k3s is straightforward. Let’s start with the master node.

    Install k3s on the Master Node

    Run the following command to install k3s:

    curl -sfL https://get.k3s.io | K3S_KUBECONFIG_MODE="644" sh -
    
    Pro Tip: The K3S_KUBECONFIG_MODE="644" flag makes the kubeconfig file readable by all users. This is useful for testing but not secure for production.

    By default, k3s sets up a single-node cluster. This is ideal for lightweight setups or testing environments.

    Verify Installation

    Confirm that k3s is running:

    sudo systemctl status k3s
    

    You should see a message indicating that k3s is active and running. Also, check the nodes in your cluster:

    kubectl get nodes
    

    Retrieve the Cluster Token

    To add worker nodes to your cluster, you’ll need the cluster token. Retrieve it using:

    sudo cat /var/lib/rancher/k3s/server/node-token
    

    Note this token—it’ll be required to join worker nodes.

    Install k3s on Worker Nodes

    On each worker node, use the following command, replacing <MASTER_IP> with your master node’s IP and <TOKEN> with the cluster token:

    curl -sfL https://get.k3s.io | \
     K3S_URL="https://<MASTER_IP>:6443" \
     K3S_TOKEN="<TOKEN>" \
     sh -
    

    Verify that the worker node has successfully joined the cluster:

    kubectl get nodes
    

    You should see all nodes listed, including the master and any worker nodes.

    Step 3: Troubleshooting Common Issues

    Even with a simple setup, things can go wrong. Here are some common issues and how to resolve them.

    Firewall or SELinux Blocking Communication

    If worker nodes fail to join the cluster, check that required ports are open and SELinux is disabled. Use telnet to test connectivity to port 6443 on the master node:

    telnet <MASTER_IP> 6443
    

    Node Not Ready

    If a node shows up as NotReady, check the logs for errors:

    sudo journalctl -u k3s
    

    Configuration Issues

    Misconfigured IP addresses or missing prerequisites can cause failures. Double-check your static IP, SELinux settings, and firewall rules for accuracy.

    Step 4: Next Steps

    Congratulations! You now have a functional k3s cluster on CentOS 7. Here are some suggestions for what to do next:

    • Deploy a sample application using kubectl apply -f.
    • Explore Helm charts to deploy popular applications like Nginx, WordPress, or Prometheus.
    • Secure your cluster by enabling authentication and network policies.
    • Monitor the cluster using tools like Prometheus, Grafana, or Lens.
    • Experiment with scaling your cluster by adding more nodes.

    Remember, Kubernetes clusters are dynamic. Always test your setup thoroughly before deploying to production.

    Quick Summary

    • k3s is a lightweight, easy-to-install Kubernetes distribution, ideal for CentOS 7.
    • Prepare your system by updating packages, setting a static IP, and disabling SELinux.
    • Installation is simple, but pay attention to prerequisites and firewall rules.
    • Troubleshooting common issues like node connectivity can save hours of debugging.
    • Explore, test, and secure your cluster to get the most out of k3s.

    I’m Max L, and I believe a well-configured cluster is a thing of beauty. Good luck, and happy hacking!

    🛠 Recommended Resources:

    Tools and books mentioned in (or relevant to) this article:

    📋 Disclosure: Some links are affiliate links. If you purchase through these links, I earn a small commission at no extra cost to you. I only recommend products I have personally used or thoroughly evaluated.


    📚 Related Articles

    📊 Free AI Market Intelligence

    Join Alpha Signal — AI-powered market research delivered daily. Narrative detection, geopolitical risk scoring, sector rotation analysis.

    Join Free on Telegram →

    Pro with stock conviction scores: $5/mo

    Get Weekly Security & DevOps Insights

    Join 500+ engineers getting actionable tutorials on Kubernetes security, homelab builds, and trading automation. No spam, unsubscribe anytime.

    Subscribe Free →

    Delivered every Tuesday. Read by engineers at Google, AWS, and startups.

    Frequently Asked Questions

    What is k3s and how does it differ from standard Kubernetes?

    K3s is a lightweight, certified Kubernetes distribution by Rancher Labs. It packages the entire control plane into a single binary under 100MB, replaces etcd with SQLite by default, and removes legacy and alpha features. It is fully conformant with Kubernetes but optimized for edge, IoT, and resource-constrained environments.

    What are the minimum system requirements for k3s?

    K3s requires as little as 512MB RAM and 1 CPU core for a server node, making it suitable for Raspberry Pi and small VMs. Agent (worker) nodes need even less. Compare this to standard Kubernetes which recommends 2GB RAM and 2 CPU cores minimum.

    How do I install k3s on CentOS 7?

    Run the official install script: curl -sfL https://get.k3s.io | sh -. This installs k3s as a systemd service and starts the server automatically. Access your cluster with the kubeconfig written to /etc/rancher/k3s/k3s.yaml.

    Can k3s run production workloads?

    Yes, k3s is production-ready and used in production by many organizations. For high availability, run multiple server nodes with an external datastore like PostgreSQL or MySQL. It supports all standard Kubernetes features including Helm charts, ingress controllers, and persistent volumes.

    References

  • Configure a Used Aruba S2500 Switch for Home Use

    Configure a Used Aruba S2500 Switch for Home Use

    Enterprise-grade Aruba S2500 switches show up on eBay for under $50, but they ship with controller-dependent configs that make them useless on a home network out of the box. Converting one to a standalone managed switch takes a serial console session and a specific bootstrap sequence.

    Why Choose Enterprise Hardware for Home Networking?

    📌 TL;DR: Picture this scenario: You’ve just snagged a used Aruba S2500 switch for your home network—a piece of high-performance enterprise hardware at a bargain price. But as you stare at it, reality sets in: this isn’t your average consumer-grade plug-and-play device.
    🎯 Quick Answer: Repurpose an Aruba S2500 enterprise switch for home use by factory resetting with ‘write erase all’, removing stacking configuration, assigning a management IP, then configuring VLANs and ports. Disable unused enterprise features like RADIUS and 802.1X to simplify operation.

    Most people rely on unmanaged switches for their home networks. They’re simple, affordable, and adequate for basic needs like streaming, browsing, and gaming. But if you’re diving into more advanced use cases—like running a home lab, setting up a 10Gbps NAS, or editing 4K video files—you’ll quickly hit the limitations of consumer-grade switches.

    Enterprise hardware, like the Aruba S2500, offers a cost-effective way to achieve high-speed networking without paying a premium for new consumer devices. These switches, often retired from corporate environments, deliver exceptional performance and advanced features at a fraction of the cost. For example, I purchased an Aruba S2500 48P-4SFP+ with PoE for $120 on eBay. This model provides 48 ports for devices and four 10Gbps SFP+ ports, making it perfect for demanding setups.

    Why does enterprise hardware outperform consumer-grade devices? It comes down to several factors:

    • Build Quality: Enterprise devices are built for durability and reliability, often designed to operate 24/7 for years in demanding environments.
    • Advanced Features: These switches offer features like VLANs, link aggregation, and QoS (Quality of Service), which are rare or missing in consumer switches.
    • Scalability: Enterprise hardware can handle larger networks with higher bandwidth demands, making it ideal for future-proofing your setup.
    Pro Tip: When shopping for used enterprise gear, check the seller’s reviews and confirm the device is functional. Look for terms like “tested working” in the listing to avoid surprises.

    Step 1: Factory Reset—Starting with a Clean Slate

    The first step in configuring your Aruba S2500 is performing a factory reset. Used switches often come with leftover configurations from their previous environments, which could cause conflicts or undermine security.

    Here’s how to reset the Aruba S2500:

    1. Power on the switch and wait for it to boot up completely.
    2. Press the Menu button on the front panel to access the switch’s built-in menu.
    3. Navigate to the “Factory Reset” option using the arrow keys.
    4. Confirm the reset and wait for the switch to reboot.

    Once reset, the switch will revert to its default settings, including the default IP address and admin credentials.

    Warning: Factory reset wipes all previous configurations. Ensure you don’t need any data from the switch before proceeding.

    Step 2: Accessing the Management Interface

    After resetting the switch, you’ll need to connect to its web-based management interface. The default IP address for an Aruba S2500 is 172.16.0.254.

    Follow these steps to access the interface:

    1. Connect your computer to any of the Ethernet ports on the switch.
    2. Set your computer to obtain an IP address automatically via DHCP.
    3. Open your web browser and enter http://172.16.0.254 into the address bar.
    4. Log in using the default credentials: admin / admin123.

    If successful, you’ll see the Aruba S2500’s web interface, which allows you to configure the switch settings.

    Warning: If you can’t connect, ensure your computer’s IP settings match the switch’s subnet. You may need to set a static IP like 172.16.0.1 temporarily.

    Step 3: Securing the Switch

    Enterprise hardware often ships with default settings that are unsuitable for home environments. For example, the default admin password is a security risk if left unchanged. Also, your switch may be running outdated firmware, which could expose you to vulnerabilities.

    To secure your switch:

    1. Log into the management interface and immediately change the admin password.
    2. Assign a static IP address for easier future access.
    3. Download the latest firmware from Aruba’s support website and update the switch.

    Updating firmware via SSH:

    copy tftp://192.168.1.100/firmware.bin system:partition0
    reload

    Replace 192.168.1.100 with your TFTP server’s IP and firmware.bin with the firmware file’s name.

    Pro Tip: Update both firmware partitions to ensure you have a backup in case one fails. Use copy commands for each partition.

    Step 4: Repurposing Stacking Ports for Regular Use

    The Aruba S2500 features two stacking ports designed for linking multiple switches in a stack. In a home setup, these are often unnecessary and can be repurposed for standard network traffic.

    To repurpose the stacking ports:

    1. Connect to the switch via SSH using tools like PuTTY or the terminal.
    2. Enter enable mode by typing en and providing your enable password.
    3. Remove the stacking interfaces with the following commands:
    delete stacking interface stack 1/2
    delete stacking interface stack 1/3

    After executing these commands, the stacking ports will function as regular SFP+ ports capable of 10Gbps speeds. Save your configuration and reboot the switch for changes to take effect.

    Warning: Always save your configuration before rebooting. Unsaved changes will be lost.

    Step 5: Testing and Optimizing Your Setup

    With the switch configured, it’s time to test your setup to ensure everything is working as expected. Connect devices to the switch and verify network communication and performance.

    To test bandwidth between devices, use iperf. Here’s an example:

    iperf3 -c 192.168.1.50 -P 4

    Replace 192.168.1.50 with the IP address of the target device. This command tests bandwidth using four parallel streams.

    Pro Tip: Use VLANs to segment your network and prioritize traffic for specific devices like servers or NAS units.

    Troubleshooting Common Pitfalls

    Even with careful setup, you may encounter issues. Here are some common problems and solutions:

    • Can’t access the web interface: Verify your computer’s IP settings and check if the switch’s IP matches its default 172.16.0.254.
    • Firmware update fails: Ensure your TFTP server is running and the firmware file is correctly named.
    • Stacking ports remain inactive: Reboot the switch after repurposing the ports to finalize changes.

    Advanced Features to Explore

    Once your Aruba S2500 is up and running, you can dive deeper into its advanced features:

    • VLAN Configuration: Create virtual LANs to segment your network for better organization and security.
    • QoS (Quality of Service): Prioritize certain types of traffic, such as video calls or gaming, to ensure smooth performance.
    • Link Aggregation: Combine multiple physical links into a single logical link for increased bandwidth and redundancy.

    Quick Summary

    • Used enterprise switches like the Aruba S2500 offer high performance at a fraction of the cost.
    • Factory reset and firmware updates are essential for both functionality and security.
    • Repurposing stacking ports unlocks additional 10Gbps connectivity.
    • Testing and optimizing your setup ensures smooth operation and peak performance.
    • Advanced features like VLANs, QoS, and link aggregation allow you to customize your network to meet your needs.

    With the right approach, configuring the Aruba S2500 doesn’t have to be daunting. Follow these steps, and you’ll transform a second-hand switch into a powerful asset for your home network!

    🛠 Recommended Resources:

    Tools and books mentioned in (or relevant to) this article:

    📋 Disclosure: Some links are affiliate links. If you purchase through these links, I earn a small commission at no extra cost to you. I only recommend products I have personally used or thoroughly evaluated.


    📚 Related Articles

    📊 Free AI Market Intelligence

    Join Alpha Signal — AI-powered market research delivered daily. Narrative detection, geopolitical risk scoring, sector rotation analysis.

    Join Free on Telegram →

    Pro with stock conviction scores: $5/mo

    Get Weekly Security & DevOps Insights

    Join 500+ engineers getting actionable tutorials on Kubernetes security, homelab builds, and trading automation. No spam, unsubscribe anytime.

    Subscribe Free →

    Delivered every Tuesday. Read by engineers at Google, AWS, and startups.

    Frequently Asked Questions

    How do I factory reset an Aruba S2500 switch?

    Connect via serial console (9600 baud, 8N1), log in, and run ‘write erase all’ followed by ‘boot’ to reboot with factory defaults. This removes all controller-dependent configuration and stacking settings, giving you a clean slate for standalone home use.

    Can the Aruba S2500 work without an Aruba controller?

    Yes. After factory reset, the S2500 operates in standalone mode with full Layer 2/3 switching capabilities. You lose controller-managed features like centralized WLAN management, but all core switching functions — VLANs, link aggregation, QoS, and PoE — work independently.

    Is the Aruba S2500 worth buying for a home network?

    At $50–120 on eBay, the S2500 offers enterprise features (48 ports, PoE, 10Gbps SFP+ uplinks) at a fraction of new equipment cost. The tradeoff is fan noise (enterprise switches are loud), higher power consumption, and initial configuration complexity compared to consumer switches.

    How do I configure VLANs on the Aruba S2500?

    After factory reset, access the CLI via serial or SSH. Create VLANs with ‘vlan ‘, assign ports with ‘interface switchport access vlan ‘ for access ports or ‘switchport trunk allowed vlan ‘ for trunk ports. Set a management IP on your admin VLAN for remote access.

    References

Also by us: StartCaaS — AI Company OS · Hype2You — AI Tech Trends