🐳 A docker image for Pi.Alert
🥇 Pi.Alert credit goes to pucherot/Pi.Alert.
🐳 Docker Image: jokobsk/Pi.Alert.
📄 Dockerfile
📚 Dockerfile instructions.
Big thanks to @Macleykun for help and tips&tricks for Dockerfile(s):
ℹ Usage
pialert.conf
- Everytime you rebuilt the container with a new image check if new settings have been added in pialert.conf.
Network
- You will have to run the container on the host network, e.g:
sudo docker run --rm --net=host jokobsk/pi.alert
Default Port
- The app is accessible on the port
:20211.
Please note - the cronjob is executed every 3 and 5 minutes so wait that long for all of the scans to run.
💾 Setup and Backups
- (required) Download
pialert.confandversion.conffrom here. - (required) In
pialert.confspecify your network adapter (will probably beeth0oreth1) and the network filter (which significantly speeds up the scan process), e.g. if your DHCP server assigns IPs in the 192.168.1.0 to 192.168.1.255 range specify it the following way:SCAN_SUBNETS = '192.168.1.0/24 --interface=eth0'
- (required) Use your configuration by:
- Mapping the container folder
/home/pi/pialert/configto a persistent folder containingpialert.confandversion.conf, - ... or by mapping the files individually
pialert.conf:/home/pi/pialert/config/pialert.confandversion.conf:/home/pi/pialert/config/version.conf
- Mapping the container folder
- Set the
TZenvironment variable to your current time zone (e.g.Europe/Paris). Find your time zone here. - Database backup
- Download the original DB from GitHub.
- Map the
pialert.dbfile (⚠ not folder) from above to/home/pi/pialert/db/pialert.db(see Examples for details). - If facing issues (AJAX errors, can't write to DB, etc,) make sure permissions are set correctly, alternatively check the logs under
/home/pi/pialert/log. - To solve permission issues you can also try to create a DB backup and then run a DB Restore via the Maintenance > Backup/Restore section.
- The container supports mapping to local User nad Group IDs. Specify the enviroment variables
HOST_USER_IDandHOST_USER_GIDif needed. - You can override the port by specifying the
PORTenv variable.
Config examples can be found below.
📄 Examples
Example 1
docker-compose.yml
version: "3"
services:
pialert:
container_name: pialert
image: "jokobsk/pi.alert:latest"
network_mode: "host"
restart: always
volumes:
- ${APP_DATA_LOCATION}/pialert/config:/home/pi/pialert/config
- ${APP_DATA_LOCATION}/pialert/db/pialert.db:/home/pi/pialert/db/pialert.db
- ${LOGS_LOCATION}/tmp:/home/pi/pialert/log
environment:
- TZ=${TZ}
- PORT=${PORT}
- HOST_USER_ID=${HOST_USER_ID}
- HOST_USER_GID=${HOST_USER_GID}
.env file
#GLOBAL
APP_DATA_LOCATION=/path/to/docker_appdata
APP_CONFIG_LOCATION=/path/to/docker_config
LOGS_LOCATION=/path/to/docker_logs
TZ=Europe/Paris
HOST_USER_ID=1000
HOST_USER_GID=1000
PORT=20211
To run the container execute: sudo docker-compose --env-file /path/to/.env up
Example 2
Courtesy of pbek. The volume pialert_db is used by the db directory. The two config files are mounted directly from a local folder to their places in the config folder. You can backup the docker-compose.yaml folder and the docker volumes folder.
pialert:
image: jokobsk/pi.alert
ports:
- "80:20211/tcp"
environment:
- TZ=Europe/Vienna
networks:
local:
ipv4_address: 192.168.1.2
restart: unless-stopped
volumes:
- pialert_db:/home/pi/pialert/db
- ./pialert/pialert.conf:/home/pi/pialert/config/pialert.conf
- ./pialert/version.conf:/home/pi/pialert/config/version.conf
☕ Support
Disclaimer: This is my second container and I might have used unconventional hacks so if anyone is more experienced, feel free to fork/create pull requests. Also, please only donate if you don't have any debt yourself. Support yourself first, then others.
