My previous server — a Banana Pi running Debian — had served its purpose for years, but performance limitations and lack of support for newer technologies prompted me to upgrade. The main goal was to move to a container-based architecture and eliminate SD cards in favor of the NVMe standard.

Hardware specification

The new setup was put together with maximum responsiveness and stability in mind:

  • Unit: Raspberry Pi 5 (8 GB RAM).
  • Case: Argon NEO 5 M.2 NVMe — provides effective cooling and direct SSD support through a dedicated interface.
  • Storage: Lexar 1 TB M.2 PCIe NVMe NM620. Moving from micro SD to NVMe significantly reduces latency and increases media durability.

Raspberry Pi 5 with Argon NEO 5 case and NVMe drive

Energy efficiency

One of the key arguments for choosing a Raspberry Pi as a 24/7 server is its low power draw. In the current configuration:

  • Idle: Power consumption at 3 W (confirmed by a power meter reading).
  • Stress (load): Power consumption rises to 9–12 W.

The performance-to-energy ratio makes this unit an extremely cost-effective solution.

System and OS-level services

Everything runs on Raspberry Pi OS. At the operating system level (outside Docker) I configured the key management and access services:

  • Remote access: A VPN based on the Wireguard protocol (PiVPN) provides a secure tunnel into the home network.
  • Management: I use VNC for graphical interface access.
  • File sharing: A standard Samba service for fast data access on the local network.

Docker environment

The key change compared to the previous server is full containerization of network services. Traefik handles routing and automatic SSL certificate issuance.

Within Docker I currently maintain:

  1. holas.pl — my website.
  2. Nextcloud — a private cloud for data synchronization.
  3. Immich — a solution for photo library backup and management.
  4. Traefik — a reverse proxy managing incoming traffic.

Growth potential

Despite running several demanding services, the 8 GB Raspberry Pi 5 shows plenty of headroom in both computing power and RAM. Current utilization allows for adding more containers without any risk of degrading the already running systems. Moving to the NVMe standard means that database operations (especially in Immich and Nextcloud) are now instantaneous.

System load — htop