🥇 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):
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.
- (required) Download
pialert.conf
andversion.conf
from here. - (required) In
pialert.conf
specify your network adapter (will probably beeth0
oreth1
) 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/config
to a persistent folder containingpialert.conf
andversion.conf
, - ... or by mapping the files individually
pialert.conf:/home/pi/pialert/config/pialert.conf
andversion.conf:/home/pi/pialert/config/version.conf
- Mapping the container folder
- Set the
TZ
environment 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.db
file (⚠ 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.
- If the database is in read-only mode you can solve this by setting the owner and group by executing the following command on the host system:
docker exec pialert chown -R www-data:www-data /home/pi/pialert/db/pialert.db
.
- The container supports mapping to local User nad Group IDs. Specify the enviroment variables
HOST_USER_ID
andHOST_USER_GID
if needed. - You can override the port by specifying the
PORT
env variable.
Config examples can be found below.
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
# (optional) map an empty file with the name 'setting_darkmode' if you want to force the dark mode on container rebuilt
- ${APP_DATA_LOCATION}/pialert/db/setting_darkmode:/home/pi/pialert/db/setting_darkmode
# (optional) useful for debugging if you have issues setting up the container
- ${LOGS_LOCATION}:/home/pi/pialert/log
environment:
- TZ=${TZ}
- PORT=${PORT}
- HOST_USER_ID=${HOST_USER_ID}
- HOST_USER_GID=${HOST_USER_GID}
.env
file
#GLOBAL PATH VARIABLES
APP_DATA_LOCATION=/path/to/docker_appdata
APP_CONFIG_LOCATION=/path/to/docker_config
LOGS_LOCATION=/path/to/docker_logs
#ENVIRONMENT VARIABLES
TZ=Europe/Paris
HOST_USER_ID=1000
HOST_USER_GID=1000
PORT=20211
#DEVELOPMENT VARIABLES
DEV_LOCATION=/path/to/local/source/code
To run the container execute: sudo docker-compose --env-file /path/to/.env up
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
Disclaimer: Please only donate if you don't have any debt yourself. Support yourself first, then others.