Skip to content

dudakovict/gotify

Repository files navigation

Gotify

go.mod Go version

Gotify is an application that provides authorization/authentication, user creation, and a notification system. Users can subscribe to topics and receive email notifications when there are updates.

Implementation Notes

Distribution and processing of tasks is done via a asynchronous Redis worker and is run side-by-side with our API in a separate goroutine. Both goroutines are managed by an errgroup and support graceful shutdown and load shedding. For the data layer I decided to use sqlx in combination with the pgx driver.

Running locally

Before running the app create a app.env file and copy all of the configuration from app.env.example. I recommend leaving the defaults but you can optionally add your own email and password. Then simply run:

$ docker-compose up --build

Docs

API documentation is served here when the server is running.

Database documentation can be accessed here.

Features

  • Authorization/Authentication: Secure register & login system to protect users accounts.
  • Notification System: Users can subscribe to topics and receive email notifications.
  • Retry Mechanism: Sending notifications is being retried upon failure.
  • Email Verification: Users are sent a verification email when registered.

About

Pub/Sub notification system

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published