dockerfiles/urlwatch
Pratik raj b113da5d19 chore: Use --no-cache-dir flag to pip in Dockerfiles, to save space
Using "--no-cache-dir" flag in pip install ,make sure dowloaded packages
by pip don't cached on system . This is a best practise which make sure
to fetch ftom repo instead of using local cached one . Further , in case
of Docker Containers , by restricing caching , we can reduce image size.
In term of stats , it depends upon the number of python packages
multiplied by their respective size . e.g for heavy packages with a lot
of dependencies it reduce a lot by don't caching pip packages.

Further , more detail information can be found at

https://medium.com/sciforce/strategies-of-docker-images-optimization-2ca9cc5719b6

Signed-off-by: Pratik Raj <rajpratik71@gmail.com>
2021-07-02 01:02:49 +05:30
..
data Document how to override cron schedule 2021-01-19 19:51:16 -05:00
Dockerfile chore: Use --no-cache-dir flag to pip in Dockerfiles, to save space 2021-07-02 01:02:49 +05:30
README.md update urlwatch 2021-01-22 18:05:46 +08:00
docker-compose.yml Document how to override cron schedule 2021-01-19 19:51:16 -05:00

urlwatch

urlwatch is a tool for monitoring webpages for updates.

docker-compose.yml

urlwatch:
  image: vimagick/urlwatch
  volumes:
    - ./data:/root/.urlwatch
  restart: unless-stopped

urls.yaml

---

url: "https://github.com/thp/urlwatch/releases/latest"
filter:
- xpath: '(//div[contains(@class,"release-timeline-tags")]//h4)[1]/a'
- html2text: re

---

url: "https://github.com/shadowsocks/shadowsocks-libev/releases/latest"
filter:
- css: 'div.f1>a'
- html2text: re

...

up and running

$ docker-compose up -d
$ docker-compose exec urlwatch sh
>>> urlwatch --test-slack
Successfully sent message to Slack
>>> urlwatch --list
1: https://github.com/thp/urlwatch/releases/latest
2: https://github.com/shadowsocks/shadowsocks-libev/releases/latest
>>> urlwatch --test-filter 2
v3.2.5
>>> exit

customizing cron schedule

Create a crontab file

*/30 * * * * cd /root/.urlwatch && urlwatch --urls urls.yaml --config urlwatch.yaml --hooks hooks.py --cache cache.db
*/15 * * * * cd /root/.urlwatch && urlwatch --urls urls-every-15m.yaml --config urlwatch.yaml --hooks hooks.py --cache cache.db

See the crontab manpage for details on format.

Mount the crontab file as a docker volume

urlwatch:
  image: vimagick/urlwatch
  volumes:
    - ./data:/root/.urlwatch
    - ./data/crontab:/etc/crontabs/root
  restart: unless-stopped