Skip to content

About

Self-hosted Raspberry Pi home server with Docker, Immich, Jellyfin, Tailscale, Samba, and a custom Python LCD dashboard for weather and real-time system monitoring.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Raspberry Pi Home Server & Smart Monitoring Dashboard

A self-hosted home server built on a Raspberry Pi 4 for photo management, media streaming, file sharing, secure remote access, and real-time system monitoring.

Along with the server, I built a custom 3.5-inch LCD dashboard using Python and Tkinter. It displays live weather, Raspberry Pi temperature, rain probability, and the health of Docker, Immich, Jellyfin, and Tailscale.

What I Built

  • Personal photo cloud: Immich for storing and managing photos and videos.
  • Media server: Jellyfin for streaming movies and other media.
  • Persistent storage: External SSD mounted on Linux for application and media data.
  • Network file sharing: Samba/SMB for accessing files from other devices.
  • Secure remote access: Tailscale for private access to the server and SSH away from home.
  • Smart LCD dashboard: Python/Tkinter dashboard for weather and server monitoring.
  • Service monitoring: Live health indicators for Docker, Immich, Jellyfin, and Tailscale.
  • Automatic startup: systemd user service starts the dashboard automatically after boot/login.

Architecture

                     +----------------------+
                     |    Raspberry Pi 4    |
                     |     Debian Linux     |
                     +----------+-----------+
                                |
              +-----------------+------------------+
              |                 |                  |
           Docker            Networking          Python
              |                 |                  |
        +-----+-----+      +----+-----+       +----+------+
        |           |      |          |       |           |
      Immich     Jellyfin Samba    Tailscale Tkinter  Open-Meteo
        |           |                         |          API
        +-----+-----+                         |
              |                          3.5-inch LCD
         External SSD                         |
                                        System Monitor

Tech Stack

Area Technology
Hardware Raspberry Pi 4, external SSD, 3.5-inch SPI LCD
Programming Python, Tkinter
OS Debian Linux
Containers Docker, Docker Compose
Photos Immich
Media Jellyfin
Database / Services PostgreSQL, Redis/Valkey
Networking Tailscale, Samba/SMB, SSH
API Open-Meteo
Service management systemd
Version control Git, GitHub

LCD Dashboard

The dashboard shows:

  • Current time and date
  • Current temperature and weather condition
  • Animated day/night weather visuals
  • Humidity
  • Rain probability
  • Wind speed
  • Raspberry Pi CPU temperature
  • Docker health
  • Immich health
  • Jellyfin health
  • Tailscale status

The UI uses a daytime theme from 7 AM to 6 PM, a night theme after 6 PM, and clears the display between midnight and 7 AM.

Storage Layout

The project uses an external SSD mounted at /mnt/storage. A typical layout is:

/mnt/storage/
├── immich/
│   ├── library/
│   └── postgres/
└── media/
    ├── movies/
    └── tv/

Actual credentials and private configuration are intentionally not included in this repository.

Repository Structure

raspberry-pi-home-server/
├── README.md
├── LICENSE
├── .gitignore
├── dashboard/
│   └── lcd_dashboard.py
├── config/
│   ├── jellyfin-compose.example.yml
│   ├── immich.env.example
│   ├── samba-share.example.conf
│   ├── lcd-dashboard.service
│   └── labwc-autostart.example
└── docs/
    ├── SETUP.md
    ├── ARCHITECTURE.md
    └── TROUBLESHOOTING.md

What I Learned

This project gave me hands-on experience beyond application development. I worked with Linux storage and permissions, Docker volumes and health checks, networking, private remote access, API integration, systemd services, SPI displays, Wayland display configuration, and debugging across hardware and software.

The most useful part was bringing all of those pieces together into a system I can actually use rather than building them as isolated demos.

Security Notes

  • Do not commit passwords, API secrets, personal media, Tailscale authentication keys, or private IP information.
  • The example configuration files use placeholders.
  • Keep administrative interfaces protected and update containers and the host OS regularly.

License

MIT License. See LICENSE.

About

Self-hosted Raspberry Pi home server with Docker, Immich, Jellyfin, Tailscale, Samba, and a custom Python LCD dashboard for weather and real-time system monitoring.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages