Schedule and generate custom reminders and send via custom alerters.
remind-us, can generate custom reminders and alerters using a dynamically configured file. What you can do with this application is that how you can use it for. Deploy as a Cron Job, run automatically at start-up as a background process, etc.
Warning: A PoC project, currently in Alpha.
- NEW! Reminder: RSS, GitLab (PRs)
- NEW! Alerter: Slack (Webhook)
- Dynamic configuration support
- Easy to use integration and alerter interfaces
- Easy cron job integration
- ... and much more! - Explore and contribute!
- Via Go
$ go get -u github.com/Dentrax/remind-us
- Via Docker
$ docker build -t remind-us \
--build-arg VERSION=`git describe --abbrev=0 --tag` \
--build-arg COMMIT=`git rev-parse --short HEAD` \
--build-arg DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
-f Dockerfile .
- Run the binary
$ remind-us --config-file "./config.yaml"
- Run on Docker
$ docker run -v `pwd`/config.yaml:/app/config.yaml -it remind-us
integrations:
rss:
sources:
- url: "https://www.reddit.com/r/kubernetes/new/.rss"
since: 1h # searches for post in the last 1 hour, sync to the same interval as the CronJob.
matchTitle:
contains: # if 'CVE' contains in the post title
- "CVE"
- "book" # or
regexes: # you can search by writing ReGeX.
- "^(foo|bar)$"
gitlab:
baseURL: <https://gitlab.com>
token: <token>
listen:
areas:
- type: "PR"
groups:
- <list-of-group-id>
alerts:
slack:
webhook: "<your-slack-webhook-endpoint>"
channel: "<#channel>"
username: "<username>"
icon: "<:icon:>"
- Create a Kubernetes ConfigMap resource
$ mkdir configmap
$ cp /path/to/your/config.yaml ./configmap
$ kubectl create configmap my-awesome-reminder-config --from-file=./configmap/ --dry-run=client -o yaml | kubectl apply -f -
- Create a
cron.yaml
file
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: my-awesome-reminder
spec:
schedule: "0 9 * * 1-5" # set your schedule time: https://crontab.guru
jobTemplate:
spec:
template:
spec:
containers:
- name: remind-us
image: ghcr.io/dentrax/remind-us:latest
imagePullPolicy: IfNotPresent
args: [ "--config-file", "/configmap/config.yaml" ]
volumeMounts:
- name: configmap
mountPath: /configmap
restartPolicy: Never
volumes:
- name: configmap
configMap:
name: my-awesome-reminder-config
- Deploy your CronJob!
$ kubectl apply --record=true -f ./cron.yaml
- Add integration: RSS
- Add integration: Jira
- Add integration: Todoist
- Add integration: GitHub
- Add integration: Quates
- Add alerter:
stdout
- Concurrency requests?
- Implement golangci-lint in Actions
remind-us was created by Furkan 'Dentrax' Türkal
The base project code is licensed under Apache License 2.0 unless otherwise specified. Please see the LICENSE file for more information.
Best Regards