Ditch Big Tech: Build Your Own Private Cloud with Docker & Raspberry Pi

Ditch Big Tech: Build Your Own Private Cloud with Docker & Raspberry Pi

3 min read

A few months ago, I built a NAS with a Raspberry Pi and a Samsung SSD. In the beginning, I was just planning to use it as a backup for my files and to stream my shows, but I found out there was more uses I could give to the Pi, and better ways to organize my media.

Eventually, I ended up creating my own Google Drive, Kindle, Netflix, and Google Photos —using only open-source software. The hardest part was configuring each tool, but thanks to Docker, that's not a problem anymore.

Replacing Netflix with Jellyfin

Watching series is one of my favorite hobbies, and I wanted to keep my favorite shows in my own server. Nowadays, you don't know if you'll be able to rewatch a series—even if you're paying for all streaming platforms out there.

Jellyfin Media Server on Raspberry Pi Jellyfin's interface: A self-hosted Netflix alternative.

I dump my shows and movies into my drive, and Jellyfin automatically fetches metadata, thumbnails, and provides an online player. Now I can watch from my phone, laptop, or desktop PC.

Setting it up was as easy as this Docker config:

yaml
jellyfin:
  image: lscr.io/linuxserver/jellyfin:latest
  container_name: jellyfin
  environment:
    - PUID=1000
    - PGID=1000
    - TZ=America/Caracas
  volumes:
    - /media/nas/jellyfin/library:/config
    - /media/nas/jellyfin/Movies:/data/Movies
    - /media/nas/jellyfin/Series:/data/Series
  ports:
    - 8096:8096
  restart: unless-stopped

Replacing Kindle/Kobo with Calibre-Web

I got a Kobo eReader recently, and I love it. But I didn't want to pay for classic books in the Kobo Store—many are copyright-free anyway. So I downloaded them from:

Calibre-Web eBook Library Calibre-Web: A self-hosted eBook library.

Transferring books via USB works, but I wanted automatic sync. Calibre-Web solved that—it even lets me create collections and read EPUBs directly in the browser.

Here's my Docker setup:

yaml
calibre-web:
  image: lscr.io/linuxserver/calibre-web:latest
  container_name: calibre-web
  environment:
    - PUID=1000
    - PGID=1000
    - TZ=Etc/UTC
    - DOCKER_MODS=linuxserver/mods:universal-calibre
  volumes:
    - /home/pi/calibre_config_docker:/config
    - /media/nas/books:/books
  ports:
    - 8083:8083
  restart: unless-stopped

Replacing Google Photos with Photoprism

The main reason for this project was backing up my media outside of cloud providers. But browsing photos in a file explorer—without albums or thumbnails—was a hassle compared to my phone's gallery.

Photoprism Self-Hosted Gallery Photoprism: A private Google Photos alternative.

Photoprism indexes photos, generates thumbnails, and uses TensorFlow to recognize faces, text, and objects. Now, I can search for anything—like a person's name or a keyword—and find it instantly.

The Docker config is long (see full version here), but the key part is:

yaml
volumes:
  - "/media/nas/Backups/Samsung SM-G965F:/photoprism/originals"

The Big Problem: Durability

My Raspberry Pi 5 is surprisingly capable, but my setup has one weakness: it depends on a single SSD. If that fails, I lose everything.

Right now, it's not a huge deal—my most important files (photos) are also on my phone. But long-term, I need a better solution.

Possible Fixes:

  1. RAID setup (multiple drives for redundancy).
  2. Follow the 3-2-1 backup rule:
    • 3 copies of data
    • 2 different devices
    • 1 off-site backup

Final Thoughts

This is my first time writing just for fun and I had a good time sharing my experience, there is a lot of information about private clouds, but it's mostly focused on movies and series and I wanted to talk about other usages you can give to your NAS, I hope you liked it. Thanks for reading!