Files
andros d5377e94eb Initial implementation of push notification backend
Django backend that listens to the relay SSE global stream and dispatches
APNs push notifications to subscribed iOS devices (TestFlight/sandbox).
2026-05-19 09:34:46 +02:00

64 lines
1.7 KiB
Python

import os
from pathlib import Path
BASE_DIR = Path(__file__).resolve().parent.parent
SECRET_KEY = os.environ.get(
"SECRET_KEY",
"django-insecure-changeme-set-a-real-secret-in-production",
)
DEBUG = os.environ.get("DEBUG", "False").lower() == "true"
ALLOWED_HOSTS = os.environ.get("ALLOWED_HOSTS", "localhost,127.0.0.1,django,nginx").split(",")
INSTALLED_APPS = [
"django.contrib.contenttypes",
"rest_framework",
"app.subscriptions.apps.SubscriptionsConfig",
"app.push.apps.PushConfig",
]
MIDDLEWARE = [
"django.middleware.security.SecurityMiddleware",
"django.middleware.common.CommonMiddleware",
]
ROOT_URLCONF = "core.urls"
TEMPLATES = []
WSGI_APPLICATION = "core.wsgi.application"
DATABASES = {
"default": {
"ENGINE": "django.db.backends.sqlite3",
"NAME": BASE_DIR / "db.sqlite3",
"OPTIONS": {
"timeout": 20,
},
}
}
LANGUAGE_CODE = "en-us"
TIME_ZONE = "UTC"
USE_I18N = False
USE_TZ = True
DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
REST_FRAMEWORK = {
"DEFAULT_RENDERER_CLASSES": ["rest_framework.renderers.JSONRenderer"],
"DEFAULT_PERMISSION_CLASSES": ["rest_framework.permissions.AllowAny"],
"DEFAULT_AUTHENTICATION_CLASSES": [],
"UNAUTHENTICATED_USER": None,
"UNAUTHENTICATED_TOKEN": None,
}
# APNs configuration
APNS_KEY_ID = os.environ.get("APNS_KEY_ID", "")
APNS_TEAM_ID = os.environ.get("APNS_TEAM_ID", "")
APNS_BUNDLE_ID = os.environ.get("APNS_BUNDLE_ID", "")
APNS_PRIVATE_KEY_PATH = os.environ.get("APNS_PRIVATE_KEY_PATH", "/app/certs/apns.p8")
APNS_SANDBOX = os.environ.get("APNS_SANDBOX", "False").lower() == "true"
# Relay
RELAY_BASE_URL = os.environ.get("RELAY_BASE_URL", "https://relay.org-social.org")