TrueNAS Home Server & Private Cloud

Home Server & Private Cloud

Overview

To provide my family with a secure, self-hosted alternative to public cloud services like OneDrive and Google Photos, I built and configured a custom home server. This project allowed me to step out of pure software development and dive deep into system administration, networking, and containerization.

System Architecture & Services

The server runs on TrueNAS SCALE, a robust, Linux-based network-attached storage (NAS) operating system. Instead of relying solely on built-in plugins, I wanted full control over my applications. I utilized Docker and managed my containers using Dockge, which gave me a clean, compose-file-driven way to deploy services.

I successfully deployed and currently maintain several key applications:

  • Nextcloud: Acts as our primary cloud storage, completely replacing our need for services like Microsoft OneDrive.
  • Immich: A high-performance, self-hosted photo and video backup solution that we use as our personal image server.
  • Tailscale: A zero-config VPN that creates a secure mesh network, allowing us to seamlessly connect to the NAS and our files from anywhere in the world.

Key Learnings: Linux & Docker

Because TrueNAS SCALE is built on a Linux foundation, configuring this environment required getting comfortable with the command line.

This project served as an intensive, practical bootcamp in:

  • Linux/Bash: Navigating the file system, managing permissions, troubleshooting network issues, and utilizing essential shell commands.
  • Containerization: Understanding Docker images, volumes, network bridging, and writing Docker Compose files to spin up complex, multi-container environments.

Ultimately, this project gave me a strong foundational understanding of DevOps practices and the infrastructure required to actually host and maintain the software I write.