Raspberry Pi home server automation toolbox
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



This software package provides a collection of automation tools for running a home server. Originally implemented on the Raspbian Stretch Linux distribution running on a Raspberry Pi 3B+.

For an in-depth presentation of the project, please visit: www.microfarad.de/pi-server

Unless stated otherwise within the source file headers, please feel free to use and distribute the full contents of this package or parts of it according to the GNU General Public License v3.0. I hope that you find this software useful.

Nastia is the name of my three-year-old daughter.


Following is the full feature list:

  • Media stream:
    • Automatically fetches your media files from the Dropbox Camera Uploads directory, or any other pre-defined directory, renames them according to the EXIF date and stores them into monthly sub-directories.
    • Detects and eliminates duplicate media files.
    • Checks image files for corruption.
  • Automated system backup:
    • Incremental backup of the storage hard-drive, mimicks the Apple Time Machine behavior.
    • Creates a backup copy of important configuration files.
    • Creates a backup image of the Raspberry Pi SD card to an external hard drive.
  • Dynamic DNS: communicates the server's public IP address to the Dynamic DNS service.
  • System diagnostics: runs extensive system diagnostics every night and send an automated test report via email.
  • Fan control: controls the CPU cooling fan over the Raspberry Pi's GPIO pin.


The directory structure of this repository reflects the Linux file system structure relative to its root directory (/).

In order to install this package, please copy the contents of the opt directory to your Linux file system; please also copy the cron, logrotate and systemd service configuration files into the respective etc sub-directories. Finally, create a copy of the configuration file under /opt/nastia-server/etc/nastia-server.conf renaming it to nastia-server.local; then modify the parameters inside copied file to achieve your desired setup.


The following Linux packages need to be installed in order to run this software:

  • rsync
  • imagemagick
  • libimage-exiftool-perl
  • speedtest-cli
  • lynx