My updated Home Server setup

I just have to tell you my current state with my migration to OpenCloud…

For a few months now, I have used a second-hand HP T640 Thin Client as my home server for Home Assistant and Uptime Kuma. The T640 is a nice little and fanless device. Especially being fanless was my argument to replace the HP EliteDesk 800 G1 USDT and ASRock Deskmini A300 I used before. Even though they are unused now (the Deskmini was already unused for quite some time anyway), I reused some of their components.

From the Deskmini, I reused the memory to upgrade the T640 to 16 GB and the 500 GB NVMe for storage. And just today, I repurposed the big 2 TB SATA SSD from the EliteDesk for additional storage.

That last point also brings me to a big step I did today: As the T640 has no space inside for the 2.5-inch SSD, I repurposed a USB adapter and enclosure I had lying around. Unfortunately, Proxmox (which I used to host a single Alpine Linux LXC container for the two services) had problems with that. That’s why I just decided to drop Proxmox (I don’t need any VMs anyway) and just use NixOS to build a slim container host. After many years and my failed router attempt last year, NixOS again!

But why do I require the additional storage?

Some days ago, I set up OpenCloud on my Hetzner VPS. It uses as a storage backend Hetzner’s Object Storage. I also added an automated restic backup to Scaleway. But three backups are even better, so I also wanted to set up a mirror for all the OpenCloud contents (also for the case that I somehow lose access to all the hosting accounts), which is again backed up using restic to have versions.

I hope with this setup I can finally replace OneDrive.

To ease the OneDrive replacement, I have also added just another new service: PhotoPrism. Mounted via a rclone Docker volume is my photos folder from OpenCloud. That way I also have a nice picture gallery.

Update:

Because Vít Skalický asked, here’s how I mount the OpenCloud photos folder to PhotoPrism without duplicating all files:

services:
photoprism:
container_name: photoprism
image: photoprism/photoprism:251130
environment:
# ...
- PHOTOPRISM_ORIGINALS_PATH=/photoprism/originals
- PHOTOPRISM_READONLY=true
volumes:
- photoprism:/photoprism/storage
- photoprism-originals:/photoprism/originals:ro
volumes:
photoprism:
photoprism-originals:
driver: rclone
driver_opts:
type: "webdav"
webdav-url: "https://cloud.example.org/remote.php/dav/spaces/.../Pictures"
webdav-vendor: "infinitescale"
webdav-user: "user"
webdav-pass: "obscuredpass"
allow_other: "true"
vfs_cache_mode: "minimal"

driver: rclone comes from the rclone Docker Volume Plugin and uses FUSE. Originals are mounted using WebDAV while thumbnails etc. are stored in a local volume. To prevent edits from Photoprism, the WebDAV volume is mounted as read-only and Photoprism is also set to read-only.

Interactions & Comments