server

module
v0.10.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 21, 2023 License: ISC

README

This software is currently in alpha phase.

PushBits

Receive your important notifications immediately, over Matrix.

PushBits enables you to send push notifications via a simple web API, and delivers them to your users.

Build status  Documentation  API Documentation  Matrix  License

💡 About

PushBits is a relay server for push notifications. It enables you to send notifications via a simple web API, and delivers them to you through Matrix. This is similar to what Pushover and Gotify offer, but it does not require an additional app.

The vision is to have compatibility with Gotify on the sending side, while on the receiving side an established service is used. This has the advantages that we need to maintain neither plugins (like those for Watchtower and Jellyfin) nor clients.

🤘 Features

  • Multiple users and multiple channels (applications) per user
  • Compatibility with Gotify's API for sending messages
  • API and CLI for managing users and applications
  • Optional check for weak passwords using HIBP
  • Argon2 as KDF for password storage
  • Two-factor authentication, issue
  • Bi-directional key verification, issue

👮 License and Acknowledgments

Please refer to the LICENSE file to learn more about the license of this code. It applies only where not specified differently.

The idea for this software was inspired by Gotify.

💻 Development and Contributions

The source code is located on GitHub. You can retrieve it by checking out the repository as follows:

git clone https://github.com/pushbits/server.git

🔧 Want to contribute? Before moving forward, please refer to our contribution guidelines.

📫 Found a security vulnerability? Check this document for information on how you can bring it to our attention.

Like fancy graphs? See our stargazers over time.

❓ Frequently Asked Questions (FAQ)

Why Matrix instead of X?

This project totally would've used Signal if it would offer a proper API. Sadly, neither Signal nor WhatsApp come with an API (at the time of writing) through which PushBits could interact.

In Telegram there is an API to run bots, but these are limited in that they cannot create chats by themselves. If you insist on going with Telegram, have a look at telepush.

The idea of a federated, synchronized but yet end-to-end encrypted protocol is awesome, but its clients simply aren't really there yet. Still, if you haven't tried it yet, we'd encourage you to check it out.

Directories

Path Synopsis
cmd
pushbits
Package main provides the main function as a starting point of this tool.
Package main provides the main function as a starting point of this tool.
internal
api
Package api provides definitions and functionality related to the API.
Package api provides definitions and functionality related to the API.
api/alertmanager
Package alertmanager provides definitions and functionality related to Alertmanager notifications.
Package alertmanager provides definitions and functionality related to Alertmanager notifications.
assert
Package assert provides convenience function to make assertions at runtime.
Package assert provides convenience function to make assertions at runtime.
authentication
Package authentication provides definitions and functionality related to user authentication.
Package authentication provides definitions and functionality related to user authentication.
authentication/credentials
Package credentials provides definitions and functionality related to credential management.
Package credentials provides definitions and functionality related to credential management.
configuration
Package configuration provides definitions and functionality related to the configuration.
Package configuration provides definitions and functionality related to the configuration.
database
Package database provides definitions and functionality related to the database.
Package database provides definitions and functionality related to the database.
dispatcher
Package dispatcher provides definitions and functionality related to executing Matrix requests.
Package dispatcher provides definitions and functionality related to executing Matrix requests.
log
Package log provides a connector between gin and logrus.
Package log provides a connector between gin and logrus.
model
Package model contains structs used in the PushBits API and across the application.
Package model contains structs used in the PushBits API and across the application.
pberrors
Package pberrors defines errors specific to PushBits
Package pberrors defines errors specific to PushBits
router
Package router provides functions to configure the web server.
Package router provides functions to configure the web server.
runner
Package runner provides functions to run the web server.
Package runner provides functions to run the web server.
Package tests provides definitions and functionality related to unit and integration tests.
Package tests provides definitions and functionality related to unit and integration tests.
mockups
Package mockups contains mockup objects and functions for tests.
Package mockups contains mockup objects and functions for tests.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL