Skip to main content

A Django package to use Gotify as an email backend and logging handler.

Project description

Django Gotify

Django CI PyPI version Python Versions License

Self-hosted push notifications and alerting for your Django projects.

django-gotify is a lightweight package that integrates your Django application with a Gotify server. It provides a custom Email Backend to send standard Django emails as push notifications, and a built-in Logging Handler to instantly alert your devices about server errors and warnings.

🚀 Features

  • Email Backend Integration: Acts as a drop-in replacement for Django's default email backend. Send notifications using standard send_mail() calls.
  • Smart Logging Handler: Automatically routes Django logs to Gotify. It intelligently maps Python log levels (DEBUG, ERROR, CRITICAL) to Gotify message priorities.
  • Thread-Safe: Safely processes and sends multiple messages concurrently.
  • Fail Silently Support: Respects Django's fail_silently flag to prevent notification errors from crashing your application.

📦 Installation

Install via pip:

pip install django-gotify

(Note: You do not need to add this to INSTALLED_APPS since it only provides backend classes and handlers).

🛠 Configuration & Usage

Add your Gotify server credentials to your settings.py:

GOTIFY_URL = 'http://127.0.0.1:6543'
GOTIFY_TOKEN = 'your_app_token'       # For logging
GOTIFY_CLIENT = 'your_client_token'   # Optional

1. Using as an Email Backend

To route all outgoing Django emails to Gotify, update your email backend in settings.py:

EMAIL_BACKEND = 'django_gotify.email.GotifyEmailBackend'

Now, anytime you use Django's send_mail(), it will appear as a push notification:

from django.core.mail import send_mail

send_mail(
    subject="New User Registration",
    message="A new user just signed up on the platform.",
    from_email=None,
    recipient_list=[], # Not required for Gotify
)

2. Using as a Logging Handler

To get real-time alerts for server errors, add the Gotify handler to your LOGGING configuration in settings.py:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'gotify': {
            'level': 'ERROR',
            'class': 'django_gotify.log.GotifyLogHandler',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['gotify', 'console'],
            'level': 'ERROR',
            'propagate': True,
        },
    },
}

💡 How it helps

Instead of paying for third-party SMS services or cluttering your inbox with automated server emails, you can:

  • Monitor Errors Instantly: Get a push notification on your phone the second an HTTP 500 error occurs in production.
  • Simplify Alerts: Trigger internal admin alerts (like "New Order Received") using Django's familiar send_mail functions without actually setting up an SMTP server.

🤝 Contributing

Pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change.

📄 License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_gotify-0.2.0.tar.gz (7.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_gotify-0.2.0-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

File details

Details for the file django_gotify-0.2.0.tar.gz.

File metadata

  • Download URL: django_gotify-0.2.0.tar.gz
  • Upload date:
  • Size: 7.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for django_gotify-0.2.0.tar.gz
Algorithm Hash digest
SHA256 c1e45a33afa5212f8d6fe0628523f32f60dea6188231c5df961bfd4890fb17bf
MD5 e235dad114367ca27d4d6bf1cc1d3b98
BLAKE2b-256 37996233ede5f9640af5a8dca4a3995daa84bd40ca17c8ef76f7596796464ef6

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_gotify-0.2.0.tar.gz:

Publisher: publish.yml on swayll/django-gotify

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file django_gotify-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: django_gotify-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 9.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for django_gotify-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 93264c986062182609350f55f1ec64fcfa5403a0522fc07a810d36882087c26a
MD5 cfd6317ccc1c16f2e6bd58af6b7aac7c
BLAKE2b-256 b842ddbe2fc045eb8cdf20d8adee2419c29710c0bae21bd2e0d85c6c27199dc3

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_gotify-0.2.0-py3-none-any.whl:

Publisher: publish.yml on swayll/django-gotify

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page