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.3.0.tar.gz (9.6 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.3.0-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: django_gotify-0.3.0.tar.gz
  • Upload date:
  • Size: 9.6 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.3.0.tar.gz
Algorithm Hash digest
SHA256 f3705641b74ebf9b2566f59b717206dc69aace49c2fac486152e2a99e53f47aa
MD5 1878f1e93919d0af99b90f030150a669
BLAKE2b-256 ca6decb3550345d0a97b9b507948bc0558033fc927f5f549dcfdb1d210ce092e

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_gotify-0.3.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.3.0-py3-none-any.whl.

File metadata

  • Download URL: django_gotify-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 10.1 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.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ac20881b16a0d527387a11d1f9ac1b500719f0940047a5a27b2c3dedcd5665df
MD5 64d4e1c354432fcb094d5a690be5376c
BLAKE2b-256 595c3d2f05cf3622eb9984f3945abf9b7e8f9ab1c7a114b1c964a9a9cd608aa2

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_gotify-0.3.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