Self-hosted ntfy server, delivering notifications to KGPians
Website
·
Request Feature / Report Bug
Table of Contents
Narada (Sanskrit: नारद, IAST: Nārada), or Narada Muni, is a sage-divinity, famous in Hindu traditions as a travelling musician and storyteller, who carries news and enlightening wisdom (source). Our naarad serves news (notices) to the KGP community. It is a self-hosted ntfy.sh instance with custom configuration. It is protected by heimdall, allowing access only to KGPians.
Following are the features enabled in this ntfy instance (refer server.yml):
- Message Caching
- Attachments
- User based authentication
- Keep Alive
- Web Interface
- Webpush notifications
- Logging
- Login/Signup
- iOS Push Notifications
- Rate Limiting
To make the user registration process as seamless as possible we have implemented a custom logic (frontend & backend). The frontend is hosted via github pages with the url - https://naarad-signup.metakgp.org, mapped to https://naarad.metakgp.org/signup. The logic is as follows:
- User must be authenticated via heimdall
- Now the magic happens in the backend and registers the user with:
username
: Taken from their institute emailpassword
: Auto generated
- The credentials are sent to their institute email
Tip
To understand the full process of accessing the service, refer Subscription Instruction guide.
To set up a local instance of the application, follow the steps below.
The following dependencies are required to be installed for the project to function properly:
Now that the environment has been set up and configured to properly compile and run the project, the next step is to install and configure the project locally on your system.
- Clone the repository
git clone https://github.com/metakgp/naarad.git
- Copy
.env.example
as.env
and fill in the required values - Build the docker container
sudo docker compose build
- Start the container
sudo docker compose up -d
- The project will be locally deployed at
http://localhost:8000/
The currently active maintainer(s) of this project.
Honoring the original creator(s) and ideator(s) of this project.