This software package provides a collection of automation scripts for running a home server. Originally implemented on the Raspbian Stretch Linux distribution running on a Raspberry Pi 3 B+.
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.
Nastia is the name of author's daughter.
Following is the list of available scripts:
- Media stream:
photostream: automatically fetches your media files from one or more pre-defined directories, renames them according to their EXIF date and stores them into monthly sub-directories. Detects and eliminates duplicate media files.
dropbox-photos: automatically downloads photos from a Dropbox folder.
check-images: checks image files for corruption.
- Automated system backup:
- Dynamic DNS
dyndns: communicates the server's public IP address to the Dynamic DNS service.
- System diagnostics
monitor: runs extensive system diagnostics every night and sends an automated test report via email.
- Fan control
fan: controls the CPU cooling fan over the Raspberry Pi's GPIO pin. This script runs as a service with
service fan start.
- UPS control
ups: reads the status of the UPS and ensures a safe shutdown upon power loss (see www.microfarad.de/pi-ups). This script runs as a service with
service ups start.
- System configuration parameters are stored in the centralized configuration file under
- If not stated otherwise, the above scripts are executed unsing cron jobs which are configured under
The following Linux packages need to be installed first:
apt-get install rsync
apt-get install imagemagick
apt-get install libimage-exiftool-perl
apt-get install lynx
apt-get install python
pip install speedtest-cli
pip install pyserial
pip install ilock
The directory structure of this repository reflects the Linux file system structure relative to its root directory
In order to install this package, copy the contents of the
opt directory to your Linux file system. Also copy the cron, logrotate and systemd service configuration files into the respective
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.