Project Details

This is my personal micro home server, running on a Raspberry Pi 4. The server exposes various services, from music streaming to photo galleries, books or recipes galleries and even a torrent client to remotely download stuff. It also hosts my websites and my telegram bots.

The server has also an HDD attached to be used as a NAS or for remote backups of my computers. The system runs 24/7 and consumes less than 5 Watts.

Information

Date:

June 15, 2021

Function:

Developer

System Admin

Technologies:
  • bash
  • docker
#

Architecture and Technologies

The systems works on Raspberry Pi 4 with 4GB of memory, running Raspberry OS 64 bit version without GUI, while all the services run on Docker containers compiled for arm64v8. Here are all the services running at the moment:

  • PrivateBin: private pastebin.com to share notes privately.

  • NextCloud: Cloud drive. Files and backups on the NAS can be accessed remotely from here.

  • PiGallery: Photo gallery, contains my photos that once where shared in my social networks.

  • Wiki: Private wiki with some guides and tutorial to be remembered.

  • Websites: This website and G.B. Photography are hosted here.

  • Telegram Bots: Finance Tips Bot and another private bot used between my friends run here.

  • Airsonic: Music streaming.

  • Calibre: Books library.

  • Plex: Movies, TV Series and Music streaming. Contains also another picture gallery.

  • Transmission: Torrent client. Downloads the files straight on the NAS, ready to go when I come home.

  • HedgeDoc: Used to write and share MD documents.

  • Tandoor: Kitchen recipes.

  • Paperless: Documents management system.

  • Router Control Panel: Enables to connect to my home router from remote.

  • Glances: htop style resource and processes monitor to check the system remotely.

The system clean itself and restart every week, and it runs a complete backup of its SD card every two weeks, that is archived in the external hard drive. It also includes and automated first install script that makes the system ready to run in case of a new installation or recovery without a backup.