diff --git a/apps/ntfy/config.json b/apps/ntfy/config.json new file mode 100644 index 00000000..63c85cfa --- /dev/null +++ b/apps/ntfy/config.json @@ -0,0 +1,18 @@ +{ + "$schema": "../schema.json", + "name": "Ntfy", + "available": true, + "exposable": true, + "port": 8166, + "id": "ntfy", + "tipi_version": 5, + "version": "latest", + "categories": [ + "utilities" + ], + "description": "Send push notifications to any devices using a simple HTTP PUT or POST request.", + "short_desc": "Ntfy, a simple server for sending and receiving notification messages.", + "author": "npty", + "source": "https://github.com/binwiederhier/ntfy", + "website": "https://ntfy.sh/" +} diff --git a/apps/ntfy/docker-compose.yml b/apps/ntfy/docker-compose.yml new file mode 100644 index 00000000..4f78ae7d --- /dev/null +++ b/apps/ntfy/docker-compose.yml @@ -0,0 +1,43 @@ +version: '3.7' + +services: + ntfy: + container_name: ntfy + image: binwiederhier/ntfy + environment: + - NTFY_BASE_URL=${APP_PROTOCOL}://${APP_DOMAIN} + - NTFY_UPSTREAM_BASE_URL=https://ntfy.sh + command: serve + volumes: + - "${APP_DATA_DIR}/data/cache:/var/cache/ntfy" + - "${APP_DATA_DIR}/data/config:/etc/ntfy" + ports: + - ${APP_PORT}:80 + networks: + - tipi_main_network + labels: + # Main + traefik.enable: true + traefik.http.middlewares.ntfy-web-redirect.redirectscheme.scheme: https + traefik.http.services.ntfy.loadbalancer.passhostheader: true + traefik.http.services.ntfy.loadbalancer.server.port: 80 + # Web + traefik.http.routers.ntfy-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.ntfy-insecure.entrypoints: web + traefik.http.routers.ntfy-insecure.service: ntfy + traefik.http.routers.ntfy-insecure.middlewares: ntfy-web-redirect + # Websecure + traefik.http.routers.ntfy.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.ntfy.entrypoints: websecure + traefik.http.routers.ntfy.service: ntfy + traefik.http.routers.ntfy.tls.certresolver: myresolver + # Local domain + traefik.http.routers.ntfy-local-insecure.rule: Host(`ntfy.${LOCAL_DOMAIN}`) + traefik.http.routers.ntfy-local-insecure.entrypoints: web + traefik.http.routers.ntfy-local-insecure.service: ntfy + traefik.http.routers.ntfy-local-insecure.middlewares: ntfy-web-redirect + # Local domain secure + traefik.http.routers.ntfy-local.rule: Host(`ntfy.${LOCAL_DOMAIN}`) + traefik.http.routers.ntfy-local.entrypoints: websecure + traefik.http.routers.ntfy-local.service: ntfy + traefik.http.routers.ntfy-local.tls: true diff --git a/apps/ntfy/metadata/description.md b/apps/ntfy/metadata/description.md new file mode 100644 index 00000000..330f14d3 --- /dev/null +++ b/apps/ntfy/metadata/description.md @@ -0,0 +1,10 @@ +# Selfhosted notification service + +We wanted a simple server for sending and receiving messages (in real time per WebSocket). For this, not many open source projects existed and most of the existing ones were abandoned. Also, a requirement was that it can be self-hosted. We know there are many free and commercial push services out there. + +At the heart of this project. (gotify/server)[https://hub.docker.com/r/gotify/server] features a WebUI and functionality for: + +- sending messages via a REST-API +- subscribing/receiving messages via a web socket connection +- managing users, clients and applications + diff --git a/apps/ntfy/metadata/logo.jpg b/apps/ntfy/metadata/logo.jpg new file mode 100644 index 00000000..d9003a19 Binary files /dev/null and b/apps/ntfy/metadata/logo.jpg differ