updates to readme

This commit is contained in:
2026-05-14 21:54:55 -05:00
parent 3a39a39be8
commit 55a14dbc4b
+44 -27
View File
@@ -2,6 +2,13 @@
A small PowerShell notifier for [Donetick](https://github.com/donetick/donetick) chores.
> [!IMPORTANT]
> **AI Assistance Disclosure**
>
> OpenAI Codex was used to help create this README and the Gitea pipeline files in this repository.
>
> All released application code is written by the repository owner.
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
@@ -10,9 +17,9 @@ The notifier checks the Donetick external API for chores, groups tasks that are
- 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 once and exits.
- Runs continuously and sleeps until the next configured notification hour.
Because the container runs once and exits, schedule it with cron, systemd timers, Kubernetes CronJobs, Gitea Actions, or another scheduler if you want recurring notifications.
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
@@ -25,6 +32,8 @@ All configuration is provided through environment variables.
| `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
@@ -34,17 +43,19 @@ The published image is:
docker.io/blinkfink182/donetick-notifier
```
### Run Once
### Run
```sh
docker run --rm \
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 \
docker.io/blinkfink182/donetick-notifier:latest
-e NOTIFICATIONTIMES=8,12,17 \
-e TZ=America/Chicago \
docker.io/blinkfink182/donetick-notifier
```
### Docker Compose
@@ -53,19 +64,21 @@ docker run --rm \
services:
donetick-notifier:
container_name: donetick-notifier
image: docker.io/blinkfink182/donetick-notifier:latest
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
- 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:
```sh
docker compose run --rm donetick-notifier
docker compose up -d
```
If Donetick and Apprise are running on the same Docker network, use the service names instead of `host.docker.internal`.
@@ -73,13 +86,15 @@ If Donetick and Apprise are running on the same Docker network, use the service
```yaml
services:
donetick-notifier:
image: docker.io/blinkfink182/donetick-notifier:latest
image: docker.io/blinkfink182/donetick-notifier
environment:
DONETICKHOST: donetick
DONETICKPORT: "8787"
DONETICKAPIKEY: your-donetick-api-key
APPRISEWEBHOOKURL: http://apprise:8000/notify/config
APPRISEWEBHOOKTAG: all
- 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
@@ -89,12 +104,15 @@ docker build -t donetick-notifier .
```
```sh
docker run --rm \
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
```
@@ -108,29 +126,28 @@ $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.
- 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 Docker build workflow tags images as:
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` |
## AI Assistance Disclosure
OpenAI Codex was used to help create this README and the Gitea pipeline files in this repository.
All released application code is written by the repository owner.