diff --git a/README.md b/README.md index 75c25c49..94af74f0 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,7 @@ This is the official repository for the Tipi App Store. It contains all the apps - [Freshrss](https://github.com/FreshRSS/FreshRSS) - A free, self-hostable RSS aggregator - [Ghost](https://github.com/TryGhost/Ghost) - Ghost - Turn your audience into a business - [Gitea](https://github.com/go-gitea/gitea) - Gitea - A painless self-hosted Git service +- [Gotify](https://github.com/gotify/server) - Gotify - Simple server for sending and receiving notification messages - [Headscale](https://github.com/juanfont/headscale) - An open source, self-hosted implementation of the Tailscale control server - [Homarr](https://github.com/ajnart/homarr) - A homepage for your server - [Home Assistant](https://github.com/home-assistant/core) - Open source home automation that puts local control and privacy first diff --git a/apps/gotify/config.json b/apps/gotify/config.json new file mode 100644 index 00000000..6083b878 --- /dev/null +++ b/apps/gotify/config.json @@ -0,0 +1,34 @@ +{ + "$schema": "../schema.json", + "name": "Gotify", + "available": true, + "port": 8129, + "id": "gotify", + "exposable": true, + "tipi_version": 1, + "version": "2.1.7", + "categories": ["utilities"], + "description": "Simple server for sending and receiving notification messages.", + "short_desc": "Gotify, a simple server for sending and receiving notification messages.", + "author": "gotigy", + "source": "https://github.com/gotify/server", + "website": "https://gotify.net", + "form_fields": [ + { + "type": "text", + "label": "Gotify username", + "max": 50, + "min": 3, + "required": true, + "env_variable": "GOTIFY_DEFAULTUSER_NAME" + }, + { + "type": "password", + "label": "Gotify password", + "max": 50, + "min": 8, + "required": true, + "env_variable": "GOTIFY_DEFAULTUSER_PASS" + } + ] +} diff --git a/apps/gotify/docker-compose.arm.yml b/apps/gotify/docker-compose.arm.yml new file mode 100644 index 00000000..8c8b53bb --- /dev/null +++ b/apps/gotify/docker-compose.arm.yml @@ -0,0 +1,30 @@ +version: "3.7" + +services: + gotify: + image: gotify/server-arm7:2.1.7 + container_name: gotify + restart: unless-stopped + volumes: + - "${APP_DATA_DIR}/data:/app/data" + environment: + - GOTIFY_DEFAULTUSER_PASS=${GOTIFY_DEFAULTUSER_PASS} + ports: + - ${APP_PORT}:80 + networks: + - tipi_main_network + labels: + traefik.enable: ${APP_EXPOSED} + # Traefik Redirect to HTTPS + traefik.http.middlewares.redirect-https.redirectScheme.scheme: https + traefik.http.middlewares.redirect-https.redirectScheme.permanent: true + # Traefik Router + Service Configuration + traefik.http.routers.gotify.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.gotify.entrypoints: websecure + traefik.http.routers.gotify.tls.certresolver: myresolver + traefik.http.routers.gotify.middlewares: redirect-https + traefik.http.routers.gotify.service: gotify + traefik.http.services.gotify.loadbalancer.passhostheader: true + traefik.http.services.gotify.loadbalancer.server.port: 80 + traefik.http.services.gotify.loadbalancer.sticky: true + traefik.http.middlewares.sslheader.headers.customrequestheaders.X-Forwarded-Proto: http diff --git a/apps/gotify/docker-compose.arm64.yml b/apps/gotify/docker-compose.arm64.yml new file mode 100644 index 00000000..1284452c --- /dev/null +++ b/apps/gotify/docker-compose.arm64.yml @@ -0,0 +1,30 @@ +version: "3.7" + +services: + gotify: + image: gotify/server-arm64:2.1.7 + container_name: gotify + restart: unless-stopped + volumes: + - "${APP_DATA_DIR}/data:/app/data" + environment: + - GOTIFY_DEFAULTUSER_PASS=${GOTIFY_DEFAULTUSER_PASS} + ports: + - ${APP_PORT}:80 + networks: + - tipi_main_network + labels: + traefik.enable: ${APP_EXPOSED} + # Traefik Redirect to HTTPS + traefik.http.middlewares.redirect-https.redirectScheme.scheme: https + traefik.http.middlewares.redirect-https.redirectScheme.permanent: true + # Traefik Router + Service Configuration + traefik.http.routers.gotify.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.gotify.entrypoints: websecure + traefik.http.routers.gotify.tls.certresolver: myresolver + traefik.http.routers.gotify.middlewares: redirect-https + traefik.http.routers.gotify.service: gotify + traefik.http.services.gotify.loadbalancer.passhostheader: true + traefik.http.services.gotify.loadbalancer.server.port: 80 + traefik.http.services.gotify.loadbalancer.sticky: true + traefik.http.middlewares.sslheader.headers.customrequestheaders.X-Forwarded-Proto: http diff --git a/apps/gotify/docker-compose.yml b/apps/gotify/docker-compose.yml new file mode 100644 index 00000000..975723a6 --- /dev/null +++ b/apps/gotify/docker-compose.yml @@ -0,0 +1,31 @@ +version: "3.7" + +services: + gotify: + image: gotify/server:2.1.7 + container_name: gotify + restart: unless-stopped + volumes: + - "${APP_DATA_DIR}/data:/app/data" + environment: + - GOTIFY_DEFAULTUSER_NAME=${GOTIFY_DEFAULTUSER_NAME} + - GOTIFY_DEFAULTUSER_PASS=${GOTIFY_DEFAULTUSER_PASS} + ports: + - ${APP_PORT}:80 + networks: + - tipi_main_network + labels: + traefik.enable: ${APP_EXPOSED} + # Traefik Redirect to HTTPS + traefik.http.middlewares.redirect-https.redirectScheme.scheme: https + traefik.http.middlewares.redirect-https.redirectScheme.permanent: true + # Traefik Router + Service Configuration + traefik.http.routers.gotify.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.gotify.entrypoints: websecure + traefik.http.routers.gotify.tls.certresolver: myresolver + traefik.http.routers.gotify.middlewares: redirect-https + traefik.http.routers.gotify.service: gotify + traefik.http.services.gotify.loadbalancer.passhostheader: true + traefik.http.services.gotify.loadbalancer.server.port: 80 + traefik.http.services.gotify.loadbalancer.sticky: true + traefik.http.middlewares.sslheader.headers.customrequestheaders.X-Forwarded-Proto: http diff --git a/apps/gotify/metadata/description.md b/apps/gotify/metadata/description.md new file mode 100644 index 00000000..330f14d3 --- /dev/null +++ b/apps/gotify/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/gotify/metadata/logo.jpg b/apps/gotify/metadata/logo.jpg new file mode 100644 index 00000000..45e1ba21 Binary files /dev/null and b/apps/gotify/metadata/logo.jpg differ