---
title: Einrichten von Ntfy in Docker Compose
description: 
published: true
date: 2024-02-10T22:50:01.152Z
tags: 
editor: markdown
dateCreated: 2024-02-10T22:50:01.152Z
---

# Einrichten von Ntfy in Docker Compose

Ntfy ist ein Befehlszeilenwerkzeug, das Benachrichtigungen über den Abschluss von Befehlen oder anderen Ereignissen auf dem System sendet. Mit ntfy können Benutzer über verschiedene Kanäle wie Slack, Telegram oder den Systembenachrichtigungsmechanismus informiert werden, sobald ein bestimmter Befehl abgeschlossen ist, um den Status von Prozessen oder Automatisierungsaufgaben besser zu überwachen.

## Voraussetzungen
Stellen Sie sicher, dass Docker und Docker Compose auf Ihrem System installiert sind.

- Docker Installation: [Docker Installationsanleitung](https://docs.docker.com/get-docker/)
- Docker Compose Installation: [Docker Compose Installationsanleitung](https://docs.docker.com/compose/install/)
- Nginx Reverse Proxy Installation

## Schritte

### 1. Docker Compose Datei erstellen
Erstellen Sie eine `docker-compose.yml`-Datei in Ihrem Projektverzeichnis. Hier ist ein einfaches Beispiel:

```yaml
version: "2.3"

services:
  ntfy:
    image: binwiederhier/ntfy
    container_name: ntfy
    command:
      - serve
    environment:
      - TZ=Europe/Berlin    # optional: set desired timezone
      - VIRTUAL_HOST=ntfy.${DOMAIN}
      - VIRTUAL_PORT=80
      - LETSENCRYPT_HOST=ntfy.${DOMAIN}
      - LETSENCRYPT_EMAIL=admin@${DOMAIN}

    user: 1000:1000 # optional: replace with your own user/group or uid/gid
    volumes:
      - ./cache/ntfy:/var/cache/ntfy
      - ./ntfy:/etc/ntfy
    #ports:
    #  - 80:80
    healthcheck: # optional: remember to adapt the host:port to your environment
        test: ["CMD-SHELL", "wget -q --tries=1 http://localhost:80/v1/health -O - | grep -Eo '\"healthy\"\\s*:\\s*true' || exit 1"]
        interval: 60s
        timeout: 10s
        retries: 3
        start_period: 40s
    restart: unless-stopped

    labels:
      - "com.centurylinklabs.watchtower.enable=true"
      - flame.type=application
      - flame.name=Ntfy
      - flame.url=https://ntfy.${DOMAIN}
      - flame.icon=message-alert

    networks:
      default:
      proxy:
      edge-tier:
      dns:
        ipv4_address: 172.28.0.4

networks:
  proxy:
    name: nginx-proxy
    external: true
  edge-tier:
    name: edge
    external: true
  dns:
    name: dns
    external: true
```

*ntfy/server.yml/*

```yaml
base-url: "https://ntfy.${DOMAIN}"
cache-file: "/var/cache/ntfy/cache.db"
attachment-cache-dir: "/var/cache/ntfy/attachments"
auth-file: "/var/cache/ntfy/user.db"
auth-default-access: "deny-all"
upstream-base-url: "https://ntfy.sh"
smtp-sender-addr: "mail.${DOMAIN}:587"
smtp-sender-user: "ntfy@${DOMAIN}"
smtp-sender-pass: "${SECRET}"
smtp-sender-from: "ntfy@${DOMAIN}"
# Tell ntfy to use "X-Forwarded-For" to identify visitors
behind-proxy: true
visitor-request-limit-burst: 1000
visitor-request-limit-replenish: 1s
visitor-email-limit-burst: 1000
visitor-email-limit-replenish: 1s
enable-metrics: true
metrics-listen-http: "172.28.0.4:9090"
```

### 2. Ntfy konfigurieren
In der obenstehenden `docker-compose.yml` wird Watchtower konfiguriert, um alle 30 Sekunden nach Aktualisierungen zu suchen. Sie können das Intervall nach Bedarf anpassen.

### 3. Docker Compose ausführen
Führen Sie den folgenden Befehl in Ihrem Projektverzeichnis aus, um Docker Compose zu starten:

```bash
docker-compose up -d
```

### 4. Überwachen Sie die Aktualisierungen
Watchtower wird nun automatisch nach Updates für Ihre Docker-Container suchen und diese aktualisieren. Sie können die Protokolle überwachen, um den Fortschritt zu überprüfen:

```bash
docker logs -f <container_name>
```

Ersetzen Sie `<container_name>` durch den Namen Ihres Watchtower-Containers.

### Hinweis
Stellen Sie sicher, dass Ihre Container mit einem `latest`-Tag oder einer bestimmten Version getaggt sind, damit Watchtower weiß, welche Version heruntergeladen werden soll.

# Quellen

https://docs.ntfy.sh/