Server Upgrade

As previously mentioned in a blog post, my home server has been a Raspberry Pi 8 GB for some years now. I finally took the plunge and started the process of building a new home server.

After hearing about the Odroid H3 on some podcasts from Jupiter Broadcasting I listen too, I did some research, found some price listings and started ordering parts.

What I have ordered

  • Odroid H3
  • 16 GB Kingston DDR4 RAM
  • 128 GB Innovation IT NVMe drive
  • Odroid H3 Type 3 case
  • 2 x 2 TB Patriot Sata 6 SSD
  • SSD data and power cables

Assembling the case

The case fits 2 x 2.5 inch drives, and mainly consists of 7 metal plates to form a box.

Odroid H3 case during assembly

The case only fits together in one certain way, so if something doesn't fit, something has been assembled wrong. I made this mistake a couple of times during assembly, but all in all, the case is easy to put together and the Odroid H3(+) fits into it really well.

Odroid H3 in the assembled case
Odroid H3 in assembled case (back side)

Software

Next up is the operating system. As the Odroid H3 is Intel based with UEFI, I opted for the x86_64 version of an OS that I am really comfortable with.

System:
  Kernel: 6.2.8-arch1-1 arch: x86_64 bits: 64 compiler: gcc v: 12.2.1 Console: pty pts/0
    Distro: Arch Linux
Machine:
  Type: Desktop Mobo: HARDKERNEL model: ODROID-H3 v: 1.0 serial: <superuser required>
    UEFI: American Megatrends v: 5.19 date: 02/27/2023
CPU:
  Info: quad core model: Intel Celeron N5105 bits: 64 type: MCP arch: Alder Lake rev: 0 cache:
    L1: 256 KiB L2: 1.5 MiB L3: 4 MiB
  Speed (MHz): avg: 1684 high: 2000 min/max: 800/2900 cores: 1: 2000 2: 2000 3: 2000 4: 736
    bogomips: 15980
  Flags: ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Graphics:
  Device-1: Intel JasperLake [UHD Graphics] driver: i915 v: kernel arch: Gen-11 bus-ID: 00:02.0
  Display: server: No display server data found. Headless machine? tty: 361x75
  API: N/A Message: No display API data available in console. Headless machine?
Audio:
  Device-1: Intel Jasper Lake HD Audio driver: snd_hda_intel v: kernel bus-ID: 00:1f.3
  Sound API: ALSA v: k6.2.8-arch1-1 running: yes
Network:
  Device-1: Realtek RTL8125 2.5GbE driver: r8169 v: kernel port: 4000 bus-ID: 01:00.0
  IF: enp1s0 state: down mac: <filter>
  Device-2: Realtek RTL8125 2.5GbE driver: r8169 v: kernel port: 3000 bus-ID: 02:00.0
  IF: enp2s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
  IF-ID-1: br-1aa152fb4d2d state: up speed: 10000 Mbps duplex: unknown mac: <filter>
  IF-ID-2: br-332752c442b3 state: up speed: 10000 Mbps duplex: unknown mac: <filter>
  IF-ID-3: br-41b73d3eb8b3 state: up speed: 10000 Mbps duplex: unknown mac: <filter>
  IF-ID-4: br-5911bfe26065 state: up speed: 10000 Mbps duplex: unknown mac: <filter>
  IF-ID-5: br-6cc25f9f8db6 state: up speed: 10000 Mbps duplex: unknown mac: <filter>
  IF-ID-6: br-89281a3b9444 state: up speed: 10000 Mbps duplex: unknown mac: <filter>
  IF-ID-7: br-d2d4779152ef state: up speed: 10000 Mbps duplex: unknown mac: <filter>
  IF-ID-8: docker0 state: down mac: <filter>
  IF-ID-9: veth37b5012 state: up speed: 10000 Mbps duplex: full mac: <filter>
  IF-ID-10: veth7e475ff state: up speed: 10000 Mbps duplex: full mac: <filter>
  IF-ID-11: veth8dbf769 state: up speed: 10000 Mbps duplex: full mac: <filter>
  IF-ID-12: veth93f830f state: up speed: 10000 Mbps duplex: full mac: <filter>
  IF-ID-13: veth93fa4fe state: up speed: 10000 Mbps duplex: full mac: <filter>
  IF-ID-14: veth9b8471c state: up speed: 10000 Mbps duplex: full mac: <filter>
  IF-ID-15: vethca68819 state: up speed: 10000 Mbps duplex: full mac: <filter>
  IF-ID-16: vethd4b7e8e state: up speed: 10000 Mbps duplex: full mac: <filter>
  IF-ID-17: vethe12afba state: up speed: 10000 Mbps duplex: full mac: <filter>
Drives:
  Local Storage: total: 3.84 TiB used: 1.12 TiB (29.3%)
  ID-1: /dev/nvme0n1 vendor: Innovation IT model: N/A size: 119.24 GiB temp: 37.9 C
  ID-2: /dev/sda vendor: Patriot model: P210 2048GB size: 1.86 TiB
  ID-3: /dev/sdb vendor: Patriot model: P210 2048GB size: 1.86 TiB
Partition:
  ID-1: / size: 118.74 GiB used: 19.7 GiB (16.6%) fs: btrfs dev: /dev/nvme0n1p2
  ID-2: /boot/efi size: 510 MiB used: 312 KiB (0.1%) fs: vfat dev: /dev/nvme0n1p1
  ID-3: /home size: 118.74 GiB used: 19.7 GiB (16.6%) fs: btrfs dev: /dev/nvme0n1p2
  ID-4: /var/log size: 118.74 GiB used: 19.7 GiB (16.6%) fs: btrfs dev: /dev/nvme0n1p2
Swap:
  ID-1: swap-1 type: zram size: 4 GiB used: 0 KiB (0.0%) dev: /dev/zram0
Sensors:
  System Temperatures: cpu: 32.0 C mobo: N/A
  Fan Speeds (RPM): N/A
Info:
  Processes: 227 Uptime: 3h 47m Memory: 15.47 GiB used: 3.91 GiB (25.3%) Init: systemd Compilers:
  gcc: 12.2.1 Packages: 197 Shell: Bash v: 5.1.16 inxi: 3.3.25

Quick rundown of software that will be running on the server:

  • OS: Arch Linux
  • Docker (with compose)
  • Home Assistant (in docker)
  • Jellyfin (in docker)
  • Nextcloud (in docker)
  • Ghost (in docker)
  • 3 websites (in docker)
  • WG-easy (in docker)
  • Peertube Headless Seeder (in docker)

Conclusion:

This process took much longer than I thought it would. The main reason was that the power cables for the Sata disks took 2 weeks to arrive. Well actually, I ordered a set of cables. Turned out they where wrong. Then ordered a second set. They where also wrong. So ordered the set from the vendor, which is listed to match, and they took 2 weeks to arrive.

So most of the services have been offline for way to long. And for that, I am sorry. The services that was offline most where Jellyfin and Nextcloud, because those needed the most storage space.

But, as of the time where this post went online, all the services listed above is now back online on the new server.

Thanks for the patience.