6.9 KiB
Executable File
🐳 A docker image for Pi.Alert
🐳 Docker hub | 📄 Dockerfile | 📚 Docker instructions
ℹ Basic 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 initial scan can take up-to 40min (with 50 devices and MQTT). Subsequent ones 3 and 5 minutes so wait that long for all of the scans to run.
💾 Setup and Backups
❗ Required
-
Download
pialert.conffrom here. -
In
pialert.confdefine your network adapter(s) with theSCAN_SUBNETSvariable.- The adapter will probably be
eth0oreth1. - Specify the network filter (which significantly speeds up the scan process). For example, the filter
192.168.1.0/24covers IP ranges 192.168.1.0 to 192.168.1.255. - Examples for one and two subnets:
SCAN_SUBNETS = '192.168.1.0/24 --interface=eth0'SCAN_SUBNETS = ['192.168.1.0/24 --interface=eth0', '192.168.1.0/24 --interface=eth1']
- The adapter will probably be
-
Use your configuration by:
- Mapping the container folder to a persistent folder containing
pialert.conf:persistent/path/config:/home/pi/pialert/config
- ... or by mapping the file directly:
pialert.conf:/home/pi/pialert/config/pialert.conf
- Mapping the container folder to a persistent folder containing
👍 Recommended
- 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, and check the logs under
/home/pi/pialert/front/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.
- You can try also setting the owner and group of the
pialert.dbby executing the following on the host system:docker exec pialert chown -R www-data:www-data /home/pi/pialert/db/pialert.db.
- Map to local User nad Group IDs. Specify the enviroment variables
HOST_USER_IDandHOST_USER_GIDif needed. - Set the
TZenvironment variable to your current time zone (e.g.Europe/Paris). Find your time zone here. - Use a custom port by specifying the
PORTenv variable. - Map an empty file with the name
setting_darkmodeif you want to force the dark mode on container rebuilt- persistent/path/db/setting_darkmode:/home/pi/pialert/db/setting_darkmode
- Check and enable notification service(s) in the
pialert.conffile.
Docker-compose 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: unless-stopped
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/front/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
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
🏅 Recognitions
Big thanks to @Macleykun for help and tips&tricks for Dockerfile(s):
☕ Support me
Disclaimer: Please only donate if you don't have any debt yourself. Support yourself first, then others.
