kelly a3c65ecdef
Security / security (push) Successful in 1m10s
added detailed handling of event types
2026-06-02 20:20:15 -05:00
2026-05-06 22:24:34 -05:00
2026-05-30 19:54:46 -05:00
2026-05-30 19:54:46 -05:00

donetick-notifier

A small PowerShell notifier for Donetick chores.

The notifier checks the Donetick external API for chores, groups tasks that are overdue or due today, and sends summary notifications through an Apprise-compatible webhook.

What it does

  • Fetches chores from https://<DONETICKHOST>:<DONETICKPORT>/eapi/v1/chore.
  • Authenticates to Donetick with the secretkey header.
  • Sends one Apprise notification for overdue tasks, when any exist.
  • Sends one Apprise notification for tasks due today, when any exist.
  • Runs continuously and sleeps until the next configured notification hour.

The container is intended to stay running. Configure the notification hours with NOTIFICATIONTIMES; the script wakes up at those hours, checks chores, sends any needed notifications, then sleeps until the next configured hour.

Configuration

All configuration is provided through environment variables.

Variable Required Description
DONETICKHOST Yes Donetick host name or IP address. Do not include https://.
DONETICKPORT Yes Donetick HTTPS port.
DONETICKAPIKEY Yes Donetick external API key. Sent as the secretkey header.
APPRISEWEBHOOKURL Yes Apprise webhook URL that accepts notification posts.
APPRISEWEBHOOKTAG Yes Apprise tag value to include with each notification.
NOTIFICATIONTIMES No Comma-separated list of 24-hour clock hours when notifications should be sent, such as 8,12,17. Defaults to 8 when unset.
TZ No Container timezone, such as America/Chicago. Recommended so notification hours match your local time.

Docker

The published image is:

docker.io/blinkfink182/donetick-notifier

Run

docker run -d \
  --name donetick-notifier \
  -e DONETICKHOST=host.docker.internal \
  -e DONETICKPORT=8787 \
  -e DONETICKAPIKEY=your-donetick-api-key \
  -e APPRISEWEBHOOKURL=https://apprise.example.com/notify/config \
  -e APPRISEWEBHOOKTAG=all \
  -e NOTIFICATIONTIMES=8,12,17 \
  -e TZ=America/Chicago \
  docker.io/blinkfink182/donetick-notifier

Docker Compose

services:
  donetick-notifier:
    container_name: donetick-notifier
    image: docker.io/blinkfink182/donetick-notifier
    environment:
      - DONETICKHOST=host.docker.internal
      - DONETICKPORT=8787
      - DONETICKAPIKEY=your-donetick-api-key
      - APPRISEWEBHOOKURL=https://apprise.example.com/notify/config
      - APPRISEWEBHOOKTAG=all
      - NOTIFICATIONTIMES=8,12,17
      - TZ=America/Chicago

Run it with:

docker compose up -d

If Donetick and Apprise are running on the same Docker network, use the service names instead of host.docker.internal.

services:
  donetick-notifier:
    image: docker.io/blinkfink182/donetick-notifier
    environment:
      - DONETICKHOST=donetick
      - DONETICKPORT=8787
      - DONETICKAPIKEY=your-donetick-api-key
      - APPRISEWEBHOOKURL=http://apprise:8000/notify/config
      - APPRISEWEBHOOKTAG=all
      - NOTIFICATIONTIMES=8,12,17
      - TZ=America/Chicago

Build Locally

docker build -t donetick-notifier .
docker run -d \
  --name donetick-notifier \
  -e DONETICKHOST=host.docker.internal \
  -e DONETICKPORT=8787 \
  -e DONETICKAPIKEY=your-donetick-api-key \
  -e APPRISEWEBHOOKURL=https://apprise.example.com/notify/config \
  -e APPRISEWEBHOOKTAG=all \
  -e NOTIFICATIONTIMES=8,12,17 \
  -e TZ=America/Chicago \
  donetick-notifier

Run Without Docker

PowerShell 7 or newer is recommended.

$env:DONETICKHOST = "donetick.example.com"
$env:DONETICKPORT = "8787"
$env:DONETICKAPIKEY = "your-donetick-api-key"
$env:APPRISEWEBHOOKURL = "https://apprise.example.com/notify/config"
$env:APPRISEWEBHOOKTAG = "all"
$env:NOTIFICATIONTIMES = "8,12,17"

pwsh ./Start-DoneTickNotifier.ps1

The script runs continuously. Stop it with Ctrl+C when running interactively.

CI/CD

This repository includes Gitea workflows for:

  • Building and pushing the Docker image on demand.
  • Running security checks with Gitleaks, Semgrep, and Trivy.
  • Creating Gitea issues for security findings when configured with a GITEA_TOKEN.
  • Sending Apprise notifications for Docker build success or failure.

The security workflow runs on pushes, pull requests, and manual dispatch. On pushes, it also pushes the scanned Docker image when all checks pass.

Docker images are tagged as:

Branch or ref Image tag
main latest
refs beginning with v matching ref name, such as v1.0.0
all other refs test
S
Description
No description provided
Readme 124 KiB
v0.1 Latest
2026-06-02 20:51:14 -05:00
Languages
PowerShell 86.6%
Dockerfile 8.5%
Shell 4.9%