The initial goal of my homelab was to self-host terabytes of family pictures and videos collected over the last few decades, but has grown into a file-backup NAS, home automation system, media library, and more!
The primary server is the ZimaBlade 7700 (NAS Kit) running Debian with Docker containers for most applications.
Click the name in the "SERVICE" column to go to its user guide.
| STATUS | SERVICE | DESCRIPTION | LOCATION |
|---|---|---|---|
| x | SSH | SSH over local network | 172.16.58.224 |
| x | Docker | Used to install apps | docker ps |
| x | mdadm | Used for software RAID1 to mirror my two hard drives | sudo mdadm --detail /dev/md0 or cat /proc/mdstat |
| x | Tailscale | Mesh VPN to connect | 100.126.109.100 |
| x | Samba | Network share for /mnt/raid1 |
smb://driggs-zb/raid1/ |
| STATUS | SERVICE | DESCRIPTION | PORT | NTFY TOPIC |
|---|---|---|---|---|
| x | Portainer | Managing docker apps | 8097 | main |
| x | Glance | Homepage to monitor and link to apps | 8080 | main |
| x | Syncthing | Sync files between devices | 8057 | main |
| x | ntfy | Pub-sub notification service | 8047 | main |
| Immich | Photo library for me | 8013 | ||
| x | Immich | Photo library for my parents | 8019 | |
| x | Immich Kiosk | Digital picture frame | 8014 | Immich-Kiosk |
| x | Jellyfin | Video library for me and my parents | 8074 | Jellyfin |
| x | Jellyseer | Video library requests and status | 8075 | Jellyfin |
| Jellystat | Video library statistics | 8076 | Jellyfin |
Setup:
- Download the Tailscale app from the app store. Allow any VPN access that Tailscale needs in your phone's settings.
- Sign in via google account (either mine, mom's, or the guest gmail account).
- When asked to "select a tailnet", select MY EMAIL, no matter which one you just signed in wit
- For any more documentation notes, see ./driggs-zb/debian/.
Setup:
- Verify you are connected to Tailscale (follow the guide above if not).
- Download the ntfy app from the app store. Alternatively, you can type the URL below into a browser.
- Enter
http://driggs-zb:8047for the URL in the settings section (not HTTPS). - Subscribe to apps you are using by entering the app name as the topic (see the
NTFY TOPICcolumn in the table above). - For any more documentation notes, see ./driggs-zb/main/.
Setup:
- Verify you are connected to Tailscale (follow the guide above if not).
- Download the Immich app from the app store. Alternatively, you can type the URL below into a browser.
- Enter
http://driggs-zb:8019for the URL (not HTTPS). - Sign in using your regular email address and the password I've given you. The only emails you'll ever get are directly from me.
- Setup any user settings, but do not choose to backup any photos to Immich. You should continue to back up to Google Photos and a regular hard drive.
- For any more documentation notes, see ./driggs-zb/immich/.
Setup:
- Verify you are connected to Tailscale (follow the guide above if not).
- Download the Immich Kiosk app from the app store, Alternatively, you can type the URL below into a browser.
- Enter
http://driggs-zb:8014for the URL (not HTTPS). - For any more documentation notes or URL options, see driggs-kiosk/ or ./driggs-zb/immich-kiosk/.
Setup:
- Verify you are connected to Tailscale (follow the guide above if not).
- Download the Jellyfin app from the app store (not Swiftfin). Alternatively, you can type the URL below into a browser if you don't want to download the app.
- Enter
http://driggs-zb:8074for the URL (not HTTPS). - Sign in with your username and password that I've given you. You can configure any settings you want.
- For any more documentation notes, see ./driggs-zb/jellyfin/
Jellyseer:
- Verify you are connected to Tailscale (follow the guide above if not).
- Download the Jellyseer app from the app store. Alternatively, you can type the URL below into a browser if you don't want to download the app.
- Enter
http://driggs-zb:8074for the URL (not HTTPS) if you are prompted to do so. - Sign in with your same Jellyfin username and password that I've given you. You can configure any settings you want.
- For any more documentation notes, see ./driggs-zb/jellyfin/
Notifications:
- If you want to enable notifications for this app, you need to install and setup ntfy above and subscribe to the
Jellyfintopic. - Most notifications for the Jellyfin app are automatically sent by Jellyseer, although you don't need to download and setup Jellyseer to get notifications.
- When you make a request, when media gets approved (or denied if its unavailable), or when media is added, a notification be sent through ntfy.
- Other notifications will come from scripts that I've wrote. For any more documentation notes, see ./driggs-zb/jellyfin/
Downloading Movies for Offline Use:
- To download movies from the Jellyfin app or website, you need to be on a laptop or tablet, as far as I know this doesn't work on an iPhone.
- Navigate to the movie you want to download.
- Select the three dots and press download.
- From Hardware Haven:
- From TechHut:
- Docker Compose will BLOW your MIND!! (a tutorial) from NetworkChuck
- Some repositories:
- I've learned a lot about networking and this is one of the best intro videos that covers a bunch of different topics: Everything I Learned About Home Networking - A Newbie’s Perspective by Jimmy Tries World on YouTube.