mjaschen / urlwatch-docker

Run urlwatch in a Docker container or as a Docker compose service

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Setup

  1. add URLs to data/urls.yaml (see data/urls.example.yaml for two simple examples or see the Jobs section in the urlwatch documentation for all details)
  2. copy data/urlwatch.template.yaml to data/urlwatch.yaml and configure at least one reporter (e.g. SMTP account details)
  3. run urlwatch:
docker-compose up -d

# watch log output
docker-compose logs -f

# stop urlwatch
docker-compose down

Run Without Docker Compose

If you don't want to use Docker Compose, you can run the container with Docker:

# run once
docker run --rm --interactive --tty \
    --volume "$(pwd)/data":/data/urlwatch \
    --volume /etc/localtime:/etc/localtime:ro \
    ghcr.io/mjaschen/urlwatch

# run in background and restart automatically
docker run --tty --detach --restart unless-stopped \
    --name urlwatch \
    --volume "$(pwd)/data":/data/urlwatch \
    --volume /etc/localtime:/etc/localtime:ro \
    ghcr.io/mjaschen/urlwatch

# watch log output
docker logs --follow urlwatch

Change cron interval

urlwatch runs once every 15 minutes by default. It's possible to change this interval by editing the provided crontab file and mounting it into the container.

To run every hour instead of the default 15 minutes, change crontab as follows:

0 * * * * cd /data/urlwatch && urlwatch --verbose --urls urls.yaml --config urlwatch.yaml --hooks hooks.py --cache cache.db

Mount crontab into the container:

docker-compose run --rm --volume "$(pwd)/crontabfile:/crontabfile:ro" --volume "$(pwd):/data" --volume /etc/localtime:/etc/localtime:ro urlwatch

or add the mount to docker-compose.yml:

version: '3'

networks:
    urlwatch:

services:
  urlwatch:
    image: ghcr.io/mjaschen/urlwatch
    volumes:
      - ./crontabfile:/crontabfile:ro
      - ./data:/data/urlwatch
      - /etc/localtime:/etc/localtime:ro
    restart: "unless-stopped"
    networks:
      - urlwatch

Build Locally

  • clone the repository: git clone git@github.com:mjaschen/urlwatch-docker.git
  • adjust the interval in crontab if necessary (urlwatch is started every 15 minutes by default)
  • build the image and run urlwatch

About

Run urlwatch in a Docker container or as a Docker compose service

License:MIT License


Languages

Language:Dockerfile 95.6%Language:Shell 4.4%