# From Closed to Open Source: A Journey of Discovery

# Embracing Freedom Part 1: The Transition from Microsoft and QNAP to Fully Open Source

## Introduction

In the ever-evolving landscape of technology, we often find ourselves seeking more than what proprietary solutions can offer. It was no different for me when I embarked on a journey from the comfortable world of [QNAP NAS](https://www.qnap.com/en/) (Network Attached Storage) to the expansive realm of open source. What ignited this transition was a growing desire for freedom—freedom to mold my digital environment according to my vision, to explore, tinker, and innovate without limitations.

While my QNAP NAS had served me well with its seamless data storage and remote access features, I couldn't help but feel the walls closing in around me. The proprietary nature of the software, with its predefined boundaries and restrictions, left me yearning for something more. It was the yearning for the ability to peel back the layers, tweak configurations, and truly understand and control my digital infrastructure that pushed me toward the [open-source horizon](https://opensource.com/resources/what-open-source).

As an experienced Windows user, it's evident that while it remains a widely-used operating system, it has its fair share of drawbacks. For me, these issues include frustratingly frequent security vulnerabilities that demand constant attention, the seemingly never-ending forced updates that disrupt workflow, and the nagging concern over what data is being collected and how it's being used. Moreover, Windows can be a resource hog, causing slow performance, and its proprietary nature limits my ability to customize and tinker with the system as I'd like. These are not universal criticisms, and many find Windows suits their needs well. However, they left me contemplating the pros and cons of my operating system choice, as it's essential to make an informed decision that aligns with personal preferences and requirements.

This blog post chronicles my journey, from the moment I realized the limitations of proprietary software to the steps I took to embrace open-source solutions. It's a story of research, customization, and community collaboration—a story of how I discovered the true potential of technology by seeking the freedom that open source offers. Join me as we explore the transformation from confinement to liberation in the world of digital possibilities.

### Discovering QNAP NAS

My journey into the world of network-attached storage began with the discovery of QNAP. At the time, I was in search of a reliable and user-friendly solution to centralize my data storage needs. QNAP NAS stood out as an accessible and feature-rich option that promised seamless data management.

The allure of QNAP lies not only in its sleek hardware but also in its robust software ecosystem. It offered a range of applications and services, from media servers to backup solutions, that appeared to meet all my requirements. The prospect of having my data accessible from anywhere with an internet connection was enticing, and QNAP seemed like the answer.

### Benefits and Limitations

My experience with QNAP NAS brought forth several benefits that made life easier. Data organization was a breeze, and the system's reliability provided a sense of security. Remote access to my files and media was convenient, allowing me to enjoy my content regardless of my physical location. The hardware's straightforward setup was a significant plus for someone relatively new to network storage solutions.

However, as I delved deeper into my digital journey, I began to encounter the limitations of proprietary solutions like QNAP. These limitations manifested as a lack of customization and flexibility. I found myself confined to the software's predefined boundaries, unable to explore beyond them. Customizing configurations or experimenting with new features was often restricted or behind paywalls, leaving me feeling constrained within the QNAP ecosystem.

Intriguingly, these limitations served as a catalyst for my transition toward open-source solutions. The desire for more control, more freedom to explore, and the opportunity to mold my digital environment in unique ways became the driving force that eventually led me to open-source alternatives.

In the subsequent sections, we will explore how this desire for freedom prompted my journey into the world of open-source software, and how it transformed my approach to technology and digital empowerment.

## The Call For Open Source

### Curiosity and Exploration

As the limitations of proprietary solutions like QNAP became increasingly evident, I found myself drawn to the world of open-source software. It was the curiosity to understand how the software worked under the hood, the desire to be in control of my technology, and the need for a more flexible and adaptable solution that propelled me forward.

Open-source software represented a paradigm shift from the closed, restricted systems I had grown accustomed to. It was built on the principles of transparency, collaboration, and community-driven development. The idea of being part of a global community of developers and users who shared their knowledge and worked together to create and improve software was incredibly appealing.

### Getting Started With Open Source

My journey into open source began with baby steps. I started exploring various open-source projects and tools, each offering unique capabilities and opportunities for customization. This process involved familiarizing myself with the basics of open-source licensing, understanding the collaborative nature of open-source development, and learning to navigate the vast landscape of open-source software.

One of the most remarkable aspects of this journey was the abundance of resources available. From comprehensive documentation to online forums and communities, there was no shortage of support and guidance. I could ask questions, seek advice, and contribute my own insights, all within the spirit of open-source collaboration.

Intriguingly, it was during this exploration phase that I discovered open-source alternatives to many of the functions provided by my QNAP NAS. These alternatives often offered similar or even enhanced functionality but with the added benefit of complete customization and control. It was a revelation that open source could not only match but often surpass proprietary solutions.

In the next part, we will delve deeper into my journey through open source, exploring the tools, projects, and communities that played a pivotal role in my transition. We will also discuss the challenges and rewards that come with embracing this newfound freedom and flexibility in the digital realm.

### Learning and Adoption

#### Exploring Distro Hopping and Command Line Basics

My Linux journey included a fair amount of [distro hopping](https://en.wikipedia.org/wiki/Distro_hopping), where I explored various distributions and desktop environments to understand their unique features and nuances. Distro hopping provided an excellent foundation for understanding the basics of [command line usage](https://www.lifewire.com/command-line-basics-2206429). Each distribution brought its own set of commands, package management systems, and configurations. While I wasn't an expert, this process allowed me to become proficient in navigating the Linux command line, installing software, and configuring system settings.

As is often the case for those making the transition from Windows to Linux, my journey started with [Ubuntu](https://ubuntu.com/), a distribution renowned for its user-friendliness and its supportive community. Ubuntu served as the gateway that introduced me to the intriguing world of Linux.

With Ubuntu as my starting point, I felt welcomed and comfortable. The distribution's emphasis on accessibility and ease of use made the transition from a Windows environment smoother. The abundance of documentation and forums within the Ubuntu community provided an invaluable resource as I familiarized myself with the Linux operating system. It was here that I took my first steps into the command line, learning essential Linux commands, and began to grasp the underlying principles of open-source software.

In my Linux journey, I sought the perfect balance between stability, design, and customization. Each distribution's unique traits urged me to explore further within the open-source world:

- ***Manjaro***: Intrigued by its [rolling release model](https://wiki.manjaro.org/index.php?title=Manjaro_Rolling_Release), I ventured into Manjaro. The ability to access the Arch User Repository (AUR) was especially appealing, as it granted me access to a vast repository of software. This experience introduced me to a more hands-on and customizable aspect of Linux. The Arch-based system provided a deeper understanding of system configuration, and it encouraged me to embrace a more do-it-yourself approach to system management.
- ***Linux Mint***: My exploration continued with Linux Mint, celebrated for its [polished user interface](https://www.linuxmint.com/), and user-friendly software management tools. The distribution, based on Ubuntu, retained the welcoming familiarity of the Ubuntu ecosystem while adding its distinctive flavor. This journey further acquainted me with the idea that Linux distributions could cater to different preferences while still providing a solid and reliable computing experience.
- ***Solus***: For a brief period, I turned my attention to Solus, drawn to its unique focus on [desktop usability](https://getsol.us/) and the enticing Budgie desktop environment. Solus prided itself on delivering a hassle-free and efficient user experience, making it an ideal candidate for those seeking a streamlined desktop environment. This brief encounter demonstrated that Linux was not only about variety but also about the optimization of user experiences.
- ***Elementary OS***: The next stop was Elementary OS, which stood out for its [minimalist and elegant design](https://elementary.io/). It embraced a "less is more" philosophy, aiming to provide a clean and user-friendly interface. My experience with Elementary OS reinforced the idea that Linux distributions can be aesthetically pleasing while still maintaining a high level of functionality and customization.
- ***Pop!\_OS***: I then explored [Pop!\_OS](https://system76.com/pop), a distribution developed by System76. Pop!\_OS is known for its focus on performance, hardware compatibility, and a tailored GNOME desktop environment. My experience with Pop!\_OS allowed me to appreciate how a distribution could be optimized for specific hardware and user needs, providing a smooth and efficient computing experience.
- ***openSUSE***: Expanding my horizons further, I ventured into [openSUSE](https://www.opensuse.org/), a distribution celebrated for its stability and flexibility. openSUSE impressed me with its YaST configuration tool, which simplifies system administration tasks. This experience highlighted the diversity of approaches to Linux system management and showcased the adaptability of open-source software.
- ***Debian***: My exploration extended to [Debian](https://www.debian.org/), a distribution revered for its legendary stability. Debian's role as the foundational basis for many other Linux distributions showcased its enduring impact on the open-source world. By venturing into Debian, I gained a greater appreciation for the foundational work that underpins the vast Linux ecosystem. It also offered insight into the rigorous quality assurance and testing processes that contribute to its robust stability.

After these explorations, I discovered my home in [Fedora](https://getfedora.org/)-a distribution that balances cutting-edge software with rock-solid stability. Fedora, known for its commitment to innovation and its rigorous testing, provided me with the perfect foundation for my Linux environment. It not only embraces the latest advancements but also maintains the reliability essential for seamless daily use.

I opted to complement Fedora with the KDE Plasma desktop environment. The KDE Plasma desktop, celebrated for its elegant design and adaptability, granted me a canvas to mold my digital workspace as I see fit. Its extensive customization options allow me to create a computing environment that is uniquely mine, enhancing both aesthetics and functionality. This harmonious combination of Fedora and KDE Plasma encapsulates the essence of my Linux journey—a dynamic blend of innovation and user-driven personalization.

My journey through diverse Linux distributions provided a comprehensive understanding of open source's variety and flexibility. It illuminated the rich tapestry within the Linux community, offering opportunities for exploration and personalization. Although not an expert, this journey broadened my perspective.

Mastering the command line was crucial. Each distribution introduced unique package management systems and configurations, enabling effective engagement with open-source tools. While expertise is an ongoing journey, my background in distro hopping and basic command line usage eased my transition into the open-source landscape.

In the next part of this series, I'll share my ongoing journey of replacing closed-source hardware and software with open-source solutions. Leveraging my open-source knowledge and Linux expertise, I'll explore various open-source alternatives to boost data storage, privacy, security, and management. From custom storage servers to media streaming and robust backup solutions, I'll showcase how these open-source options surpass their proprietary counterparts.

# Embracing Freedom Part 2: Deploying Open Source Alternatives

# Introduction

In the second part of this series, I will give a detailed explanation of my journey to replace a [QNAP server](https://www.qnap.com/) with open-source solutions. I will chronicle the specific pitfalls that I encountered during this transition. From compatibility issues and migration dilemmas to the intricacies of system setup and configuration. This account aims to serve as a practical guide and a source of inspiration for individuals seeking to harness the power of open source in their server infrastructure. By delving into the nitty-gritty of my experiences and sharing the lessons I learned along the way, I hope to provide a more extensive and comprehensive view of this journey.

Network-attached storage (NAS) devices are convenient for file storage and sharing, but they often have limitations in terms of customization and control. If you're seeking greater flexibility, security, and the ability to run various services on your storage server, migrating from a QNAP NAS to an open-source server is the logical choice.

### Getting Started With Open-Source Servers

My initial step was to deploy a [Debian server](https://www.debian.org/), but a dilemma arose due to my concerns about the already stored media on my disks. The prospect of disrupting or corrupting this data left me feeling anxious as to the use of [MergerFS](https://github.com/trapexit/mergerfs) and combining my several physical disks into one virtual location. Despite its utility, my limited knowledge of MergerFS remained a source of unease.

[OpenMediaVault (OMV)](https://openmediavault.org/) emerged as the next viable option. Known for its user-friendly interface and a wide range of features tailored for managing network-attached storage, OMV offers several advantages:

1. Intuitive Web Interface: OMV's web-based management interface simplified the setup and configuration of various storage and network services, eliminating the need for extensive command-line expertise.
2. Plug-ins and Add-ons: OMV provided a selection of plug-ins and add-ons that streamlined the installation of additional services, such as Plex Media Server, BitTorrent clients, and more, enhancing the versatility of my server.
3. Data Security: OMV included tools for data redundancy, like RAID management, ensuring the security and integrity of stored data.
4. Active Community: I found an active and responsive OMV community that offered a wealth of resources, tutorials, and forums, helping me address issues and improve my knowledge.
5. Regular Updates: OMV's active maintenance, frequent updates, and security patches ensured the stability and security of the server.

One of the pivotal benefits of using OMV was its guidance in setting up network shares. I learned to configure NFS and SMB shares, enabling seamless access to my data across different devices and operating systems. This was a crucial step in my journey, as it allowed me to take full advantage of my server's capabilities and share resources efficiently.

Furthermore, OMV served as my gateway to understanding networking fundamentals. It demystified concepts like IP addresses, network protocols, and port configurations. This newfound knowledge not only enhanced my server management skills but also provided a foundation for broader networking understanding. OMV became more than just a storage solution; it became a tool for learning and growth in the realm of server administration and networking.

Despite the numerous advantages of using OMV for my server setup, I encountered some significant challenges along the way. One recurring issue that plagued my experience was the frequent instability of the MergerFS module when trying to experiment with Docker apps. While this instability didn't result in data loss, it would render the entire system unusable, forcing me to undergo the tedious process of reinstalling the operating system.

Moreover, I discovered that the backup solutions provided within OMV fell short of my expectations. These solutions, designed to safeguard my data and system configurations, often proved unreliable and failed to function as intended. This presented a concerning hurdle, particularly when the reliability and security of my data were paramount.

These issues emphasized the importance of robust system backups and stability in any server setup. While OMV had many merits, it became clear that addressing these challenges was critical for a seamless and dependable server experience. It prompted me to explore additional backup and data protection options and to find workarounds to maintain the stability of my server. This journey taught me valuable lessons in mitigating common pitfalls and ensuring the resilience of my server setup.

The backup issues I encountered while using OMV were particularly frustrating and underscored the importance of having reliable data protection mechanisms in place for any server environment.

- In some instances where backups did work, the process of restoring data was complex and not as user-friendly as it should be. This complexity added to the frustration and time required to recover from potential data loss.
- The unreliability of the backup solutions in OMV raised concerns about the safety and integrity of my data. It left me with doubts about the system's ability to recover in the event of a catastrophic failure.

The backup challenges I faced while using OMV taught me a valuable lesson about the importance of thoroughly testing and monitoring backup systems. It emphasized the need to have a robust and reliable backup strategy in place to safeguard data and system configurations, especially in a server environment where data is mission-critical. These challenges prompted me to broaden my knowledge and skills in data backup and recovery, making me better equipped to handle future server-related contingencies.

In addition to the valuable lessons I gained in setting up NFS and SMB shares and expanding my networking knowledge, my journey with OMV marked a pivotal moment when I first delved into the world of Docker and containerization.

### Discovering Docker: A New Beginning in Containerization

OMV introduced me to the concept of containerization, which was a game-changer in terms of managing and deploying applications. [Docker](https://www.docker.com/), in particular, opened up a world of possibilities by allowing me to encapsulate applications and their dependencies within self-contained containers. This approach offered several advantages:

1. Isolation: Containers provide a level of isolation that keeps applications and their dependencies separate from the underlying system. This isolation minimizes conflicts and makes it easier to manage and update applications.
2. Portability: With Docker, I could create an application container on my server and easily transfer it to another server or environment without worrying about compatibility issues. This newfound portability simplified both development and deployment.
3. Resource Efficiency: Containers are lightweight and efficient, making the most of system resources. This means I could run multiple containers on my server without straining its performance.
4. Easy Management: Docker's command-line interface and user-friendly tools like [Portainer](https://www.portainer.io/) made managing containers a breeze. I could quickly start, stop, and configure applications within containers with minimal effort.

The journey of learning about Docker and containers within the OMV environment transformed the way I approached application deployment and server management. It opened up exciting possibilities for self-hosting a variety of applications, from web servers and databases to media servers and more. This newfound skill set not only enhanced the functionality of my server but also expanded my knowledge and capabilities in the realm of modern software development and deployment. It was a significant turning point in my journey toward a more versatile and efficient server setup.

### Empowering My Home Lab with pfSense: Diving into Network Security and Control

My home lab is a hub of experimentation, learning, and innovation, and at its heart lies the need for robust network control and security. In this section, we'll delve into how [pfSense](https://www.pfsense.org/), a powerful open-source firewall and routing platform, takes center stage, offering a multitude of services to elevate network infrastructure.

- ***Firewall Mastery***: In the realm of network security, pfSense is the cornerstone of your home lab. This robust firewall platform enables you to design, deploy, and manage firewall rules with precision. Whether you're crafting rules based on source and destination IP addresses, specifying port numbers, or controlling protocol types, pfSense empowers you to safeguard your home lab's network security and dictate access control.
- ***NAT: A Bridge to Connectivity***: Network Address Translation (NAT) becomes your reliable bridge to the world outside your home lab. With pfSense, you can expertly map public IP addresses to private ones. This is indispensable for managing inbound and outbound traffic, especially when you're hosting services within your home lab. NAT ensures your network can connect to the internet using a single public IP address while preserving your network's privacy.
- ***VPN Superpowers***: The home lab is a hub of innovation, and security is paramount. PfSense equips the home lab with a diverse range of VPN (Virtual Private Network) protocols, including [OpenVPN](https://openvpn.net/), [IPsec](https://www.ipsec.org/), and L2TP. This opens doors to secure remote access, ensuring your network remains impenetrable and encrypted.
- ***Proxy for Control***: The home lab network deserves the highest level of content filtering and caching, and pfSense delivers. By configuring pfSense as a proxy server, often paired with [Squid](http://www.squid-cache.org/), you can elevate your web browsing security and have fine-grained control over web content access. This is ideal for enforcing strict content policies and maintaining a secure environment for your experiments.
- ***Content Filtering***: Safeguarding Your Lab: Knowledge and control are paramount. With packages like [SquidGuard](http://www.squidguard.org/) and [pfBlockerNG](https://www.netgate.com/solutions/pfsense/sg-1100.html), pfSense offers robust content filtering capabilities. These packages empower you to efficiently block access to specific websites or categories of websites, bolstering network security and ensuring compliance with your lab's acceptable use policies.
- ***Intrusion Detection and Prevention (IDS/IPS)***: Vigilance in Your Lab: In your journey of experimentation, you need vigilant protection. With packages like [Snort](https://www.snort.org/) and [Suricata](https://suricata-ids.org/), pfSense becomes your home lab's guardian. These tools meticulously monitor network traffic, detecting suspicious or malicious activities and taking swift action to block potential threats. Your home lab's security is fortified.
- ***Traffic Shaping and QoS***: Network management within your home lab becomes a breeze with pfSense. The platform allows for the fine-tuning of network traffic, ensuring that essential applications and services receive the bandwidth they need. This is an indispensable tool for optimizing real-time services, ensuring that your experiments and communication run seamlessly.
- ***DNS and DHCP Services***: Your home lab's IP address management and DNS resolution are essential for seamless experimentation. PfSense serves as both a DNS resolver and a DHCP server, simplifying resource allocation and ensuring uninterrupted connectivity within your lab.
- ***Captive Portal***: Controlled Access for Your Lab: Whether you're inviting guests to your home lab or want user authentication for internet access, pfSense's captive portal feature is your ally. It's an ideal solution for controlled internet access, offering authentication and voucher systems to maintain security and privacy.
- ***Load Balancing***: Maximizing Bandwidth Utilization: In your home lab, you seek efficiency. PfSense can distribute network traffic across multiple WAN connections, enhancing network redundancy and optimizing bandwidth utilization. It ensures data flows smoothly, even in multi-connection scenarios, guaranteeing that your experiments are not hindered by network bottlenecks
- ***Dynamic DNS***: Your home lab's dynamic nature calls for a dynamic solution. Dynamic DNS services in pfSense ensure consistent access to your lab through a domain name, even when your ISP assigns dynamic IP addresses.
- ***High Availability (HA)***: Reliability for Your Experiments: In the realm of experimentation, downtime is not an option. PfSense offers high-availability configurations that ensure uninterrupted network services. In an HA setup, two pfSense systems work together to guarantee continuous functionality, even in the face of unexpected issues.
- ***Customization with Packages***: Your home lab's uniqueness is celebrated with pfSense's adaptability. Users can expand and customize services with packages tailored to their specific lab needs, including NTP servers, SNMP monitoring, and more.

The diverse array of services and features offered by pfSense transformed my home lab into a powerful and secure environment. It's an adaptable and flexible solution that caters to all needs, whether it's a small experimental setup or a complex enterprise-grade environment. Regardless of your level of expertise, pfSense empowers you to master network management, bolster security, and optimize network performance.

### Proxmox: The Game-Changer for Virtualization and Server Management

The persistent challenges I encountered with OMV led me to find a more reliable and comprehensive solution for my server needs. It was during this search that [Proxmox](https://www.proxmox.com/) entered the picture as a compelling alternative.

Proxmox VE is a powerful, open-source platform that combines two virtualization technologies: [KVM (Kernel-based Virtual Machine)](https://www.linux-kvm.org/) for virtual machines and [LXC (Linux Containers)](https://linuxcontainers.org/) for lightweight containerization. It offers a range of features and capabilities that stood out as potential solutions to the issues I had been facing:

1. Stability: Proxmox is known for its stability and robust performance. This was a critical factor in my decision, as it promised to address the instability issues that had plagued my OMV setup.
2. Virtualization and Containerization: Proxmox's ability to manage both virtual machines and containers in a single platform provided flexibility and versatility. This versatility was appealing because it offered the capacity to run a wide range of applications and services.
3. Backup and Restore: Proxmox includes built-in backup and restore functionality that appears to be more reliable and user-friendly. This addressed my concerns about data protection.
4. Web-Based Interface: The web-based management interface in Proxmox simplified administration tasks and made it more accessible for users with varying levels of technical expertise.
5. Community Support: Much like OMV, Proxmox boasts an active and responsive community that provides valuable resources, tutorials, and forums to assist users in overcoming challenges.

The introduction of Proxmox into my server journey signaled a significant shift in my approach to server management. It offered the potential to resolve the issues I had faced with OMV, and it opened up exciting new possibilities for virtualization and containerization, further enhancing the capabilities of my server. This decision represented a turning point in my quest for a stable, reliable, and versatile server solution.

In this journey of optimizing my home lab for innovation and security, I've explored a suite of powerful open-source technologies that have become integral to my network infrastructure. With these technologies at my disposal, my lab is a bastion of innovation, security, and control. These solutions provide the tools you need to master network management, fortify security, and optimize network performance in any home lab environment.