updates to readme
This commit is contained in:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user