I embrace and adopt the principles of self-hosting, and I mainly do it on Nebuchadnezzar, a Virtual Private Server hosted by Contabo, in Duesseldorf, Germany. I am very proud of this, and this is already a very big step towards digital independence. Still, all of what lives in Neb actually is in someone else’s computer, even though I fully control it.
The coolest, most secure, and most sustainable solution is to self-host on a device at home. Therefore, I am experimenting with a Raspberry Pi 5 to configure it as my main photo Storage solution, powered by PhotoPrism. It is currently hosted at my grandma’s, because I am not permanently residing anywhere and my parents’ home network is probably more bloated than hers.
Dedicated to Aby Warburg
The home server (and therefore this page) takes its name from Aby Warburg, not only because he is one of my greatest idols, but because his Mnemosyne Atlas is in a way what a photo management software like PhotoPrism does.
Local network configuration
My grandma has a rather performing TIM Hub router in her living room, so the configuration is adapted to that device and that provider.
- The public IP address of the local network might change for any reason, so the router should be connected with a Dynamic DNS service to link it with a domain name and update the IP automatically if it changes. I used Dynu, because it has good reviews and it’s free—even if it looks terribly old.
- Port forwarding configuration
Raspberry Pi configuration
- 💾 Mount the NVMe Base on the Raspberry Pi 5
- So far, Raspberry Pi Debian Images are not available for Raspberry Pi 5, because
Currently there is no support to Raspberry Pi 5 as it doesn’t have enough support in upstream Linux.
Therefore, I Installed Raspberry Pi OS. I set it to boot from the SSD and not from the Micro SD. - OS configurations
- Enable experimental PCIe 3 support, for faster transfer speeds
- In order to connect to the device via SSH as soon as the device boots, automatic login has to be enabled
- It is a good common practice to change the SSH connection port
PhotoPrism installation and configuration
I am friends with the lovely and sweet Theresa and Michael, the current PhotoPrism core team. We met in Berlin a couple of times and they brought me to the wonderful Berlin Botanical Garden.
Therefore, I am quite biased, but the PhotoPrism’s documentation is very complete and exhaustive, so I don’t know what would be useful to write here. I only had a hard time configuring Traefik, but Michael promptly helped me, and I made it.
Backup
I am using restic with rclone to save daily backups on Cubbit.
- Create a restic repository on Cubbit
- Perform the backup of the PhotoPrism originals folder:
restic -r rclone:Cubbit:aby --verbose backup /home/tommi/photoprism/originals --insecure-no-password(I am using the insecure password option because Cubbit is already encrypted) - Set a cron job that runs the command above every night