emoy webhook (Emoji notify webhook) notify when new emoji is add
- Slack app
- Incoming webhook
- redis (optional)
This application is provided as a Docker image, so you can run it wherever you like.
- GitHub Container Registry (Recommended)
ghcr.io/sue445/emoy_webhook:latest
: Use latest versionghcr.io/sue445/emoy_webhook:X.Y.Z
: Use specified version
- Google Artifact Registry: If you want to run this app on Cloud Run, use this image
asia-docker.pkg.dev/emoy-webhook/emoy-webhook/app:latest
: Use latest versionasia-docker.pkg.dev/emoy-webhook/emoy-webhook/app:X.Y.Z
: Use specified versionasia-docker.pkg.dev/emoy-webhook/emoy-webhook/app:edge
: The contents of the main branch are pushed to this tag
SLACK_WEBHOOK_URL
(Required) : Incoming Webhook URLPUMA_THREADS_MIN
: Puma minimum threads count. default is0
PUMA_THREADS_MAX
: Puma minimum threads count. default is1
(to prevent duplicate posts to Slack)PUMA_WORKERS
: Puma workers count. default is0
(to prevent duplicate posts to Slack)PUMA_PORT
: Puma port. default is8080
DEBUG_LOGGING
: Iftrue
is set, debug logs are outputSENTRY_DSN
: Sentry DSN. This variable is optional. If you want to use Sentry, please set DSNREDIS_URL
: Redis URLfor notification caching (e.g.redis://path-to-redis:6379
). See following section for detailsFIRESTORE_COLLECTION
: Firestore collection name for notification caching (e.g.emoy_webhook_cache
). See following section for details
emoy_webhook has the following notification caching mechanism. These are optional, but it is recommended to set one of them
Set cache to Redis. If you use this, set REDIS_URL
environment variable.
Set cache to Firestore. If you use this, set FIRESTORE_COLLECTION
environment variable.
To automatically delete the saved cache, please do the following.
gcloud firestore fields ttls update expires_at --collection-group=${FIRESTORE_COLLECTION} --enable-ttl --async
c.f. https://cloud.google.com/firestore/docs/ttl#gcloud
See. examples/gcp_cloud_run_terraform/firestore.tf
This application was offered as a Heroku application, but since Heroku is ending its free plan, I have made it possible to run it outside of Heroku.
So this app can run outside of Heroku.
If you want to run this app on Heroku, browse heroku branch and click "Deploy to Heroku" button.