Creating a Self-Hosted Environment with Docker and Ansible
As a software developer, having a reliable and efficient development environment is crucial to ensure a smooth and seamless workflow. However, relying on cloud-based solutions can be costly and may not be as flexible as having a self-hosted setup. That's why I decided to create my own self-hosted development environment using Docker and Ansible, and it has been a game-changer for me.
Choosing the Right Hardware and Operating System
The first step in establishing a self-hosted environment is selecting the appropriate hardware and operating system. I chose the Dell OptiPlex 3090 MFF Mini PC with an Intel® CoreTM i7-10700T, 32GB DDR4 RAM, 1TB HDD, and 512GB SSD. I installed Ubuntu 22.04 as the server operating system because I previously used Ubuntu as a server operating system, and these server resources are sufficient for my needs.
Moving the Development Environment to the Server
My initial plan was to move my development environment to the server, but I soon realized that I was only utilizing a small fraction of the server's resources for that purpose. It felt like a waste to let such a capable machine sit idle most of the time, so I decided to explore other ways to leverage it. That's when I thought of hosting some helpful services for my home network. The first service that I decided to set up was Jellyfin, which serves as a media library. By doing so, I not only made the most of the server's resources, but I also added a lot of other helpful services to my daily life, such as Jellyfin for media library, Transmission for downloading torrents, a file browser for easy access to files, and automated backups for my MacBook.