No description
  • C# 87.3%
  • Dockerfile 9.3%
  • Shell 3.4%
Find a file
Dirk Kok 89a0591caf
All checks were successful
Build and push Docker image / build-and-push-image (push) Successful in 33s
Build and push Docker image / trigger-update (push) Successful in 1s
update workflow for forgejo
2026-03-04 11:22:36 +01:00
.forgejo/workflows update workflow for forgejo 2026-03-04 11:22:36 +01:00
BirthdayBot add non-ping message format 2025-12-31 13:54:38 +01:00
BirthdayBot.Tests only store month and date, not a whole datetime 2022-07-25 18:11:10 +02:00
.gitignore unignore docker/bin directory 2023-09-26 15:40:27 +02:00
BirthdayBot.sln added copious unit testing and mocking before realizing the problem had to do with timezones in docker. oh well. might as well keep these around. 2022-07-20 15:08:21 +02:00
docker-compose.yml integrate cron; integrate dumb-init 2023-09-26 15:35:45 +02:00
LICENSE Create LICENSE 2022-07-19 18:25:40 +02:00
README.md integrate cron; integrate dumb-init 2023-09-26 15:35:45 +02:00

BirthdayBot

Reads a csv file with birthdays, and executes a Discord webhook for every entry matching today's date.

Not yet ready for public use. The webhook message is in Dutch.

Docker deployment

The docker image comes with cron pre-installed and you can optionally make the bot run on a cron schedule. To do this, use the command schedule when starting the container. The cron schedule should be set in the SCHEDULE environment variable.

Alternatively you can run the bot directly by starting the container with dotnet /app/BirthdayBot.dll and you could use an external scheduler to start the container.

Environment variables:

  • WEBHOOK_URI, required
  • CSV_PATH, optional (default is birthdays.csv in the current working directory, which is /app)
  • TZ, optional, but you should set it according to your target audience. Provide a tzdata file relative to /usr/share/zoneinfo (ex: Europe/Paris)
  • SCHEDULE, optional, only used if using cron (see above). If not specified, the default will be 0 6 * * *

Csv layout

Month,Day,Id,Name
07,01,969681332697448509,Display name