# Ohne Code: Discord-Adresse

Tools mit Discord-Option schicken mit dieser Adresse an Samy. Ohne Code und ohne Discord-Konto.

Viele Tools haben eine Einstellung „Discord-Benachrichtigung“ oder „Discord Webhook“. Dort trägst du statt der Discord-Adresse die Discord-Adresse deines Packlets ein. Samy nimmt die Meldung an, als wäre Samy Discord, und schickt sie als Push auf dein Handy.

Du schreibst dafür keinen Code und brauchst kein Discord-Konto.

## In der App verbinden

Tipp beim Verbinden auf **Integrationen** und wähle **Discord**. Name und Tier sind schon ausgefüllt. Danach zeigt Samy statt Code gleich die fertige Adresse zum Kopieren; die trägst du in deinem Tool bei Discord ein.

## Deine Adresse

```text
https://api.packlets.app/v1/discord/<SAMY_KEY>
```

Statt `<SAMY_KEY>` setzt du den Schlüssel deines Packlets ein, also den, der mit `samy_` beginnt.

> Der Schlüssel steht hier in der Adresse, weil diese Tools keinen eigenen Header schicken können. Behandle die ganze Adresse deshalb wie ein Passwort. Erzeugst du in der App einen neuen Schlüssel, gilt die alte Adresse sofort nicht mehr.

## Wo das funktioniert

Überall, wo du eine beliebige Discord-Webhook-Adresse eintragen kannst. Zum Beispiel:

| Bereich | Tools |
|---|---|
| Überwachung | Uptime Kuma, Grafana, Healthchecks.io, Gatus, Netdata |
| Medien | Sonarr, Radarr, Lidarr, Jellyfin, Plex (über Tautulli), Overseerr |
| Server | Proxmox, Watchtower, Unraid, TrueNAS |
| Code und Deploys | GitHub Actions, GitLab, Coolify |
| Automatisierung | n8n, Make, Home Assistant |

Einige Tools prüfen, ob die Adresse mit `https://discord.com/api/webhooks/` beginnt. Dort geht es nicht; nimm dann die [ntfy-Adresse](https://packlets.app/docs/ntfy.md) oder die [Slack-Adresse](https://packlets.app/docs/slack.md), falls das Tool sie anbietet.

## Schnell testen

```bash
curl https://api.packlets.app/v1/discord/<SAMY_KEY> \
  -H "Content-Type: application/json" \
  -d '{"content":"**Backup** fehlgeschlagen auf [server-1](https://status.example.com)"}'
```

Wie Discord antwortet Samy mit `204` ohne Inhalt. Im Packlet-Protokoll steht der Aufruf mit „Discord:“ davor.

## Was Samy übernimmt

Samy versteht die üblichen Discord-Formate und macht daraus eine normale [Nachricht](https://packlets.app/docs/senden.md):

| Discord | In Samy |
|---|---|
| `content` | Text der Nachricht |
| `**fett**`, `# Überschrift`, `- Punkt` | wie in Samy |
| `[Beschriftung](https://…)` | Beschriftung im Text. Der erste Link wird zum Link der Nachricht. |
| `*kursiv*`, `~~durch~~`, `` `Code` ``, `\|\|Spoiler\|\|` | nur der Text |
| Erwähnungen wie `@everyone` oder `<@123>` | fallen weg |
| Zeitstempel wie `<t:1700000000:R>` | Datum und Uhrzeit |
| `embeds[].title` (sonst `author.name`) | Titel; weitere Embeds als fette Zeile |
| `embeds[].url` | Link der Nachricht |
| `embeds[].description` | Absatz |
| `embeds[].fields` | Liste „Name: Wert“ |
| `embeds[].footer.text` | kleiner Absatz am Ende |
| `embeds[].image` oder `thumbnail` | Bild der Nachricht |
| `embeds[].color` in Rot | [Priorität](https://packlets.app/docs/push.md) `high` |
| `flags: 4096` (leise Nachricht) | Priorität `silent` |
| Link-Knöpfe in `components` | bis zu 3 [Knöpfe](https://packlets.app/docs/knoepfe.md), die den Link öffnen |
| Formular mit `payload_json=<json>` | wie JSON |

`username`, `avatar_url` und `tts` lässt Samy weg; Name und Bild kommen vom Packlet. Zu lange Texte werden gekürzt, Links ohne `https` fallen weg.

## Antworten

| Status | Antwort | Bedeutung |
|---|---|---|
| `204` | leer | Gespeichert, der Push ist unterwegs. |
| `200` | JSON mit `id` | Wie `204`, wenn die Adresse mit `?wait=true` endet. |
| `400` | JSON mit `code` `50006` | Kein Text gefunden, weder in `content` noch in `embeds`. |
| `401` | JSON mit `invalid_key` | Schlüssel falsch oder Packlet entfernt. |
| `429` | JSON mit `rate_limited` | Zu viele Aufrufe. Es gilt dasselbe [Limit](https://packlets.app/docs/api.md#rate-limit) wie bei `POST /v1/push`. |

## Grenzen

- Dateien (Uploads mit `multipart/form-data`) nimmt Samy nicht an. Bilder gehen als Link in `embeds[].image`.
- Knöpfe öffnen nur Links. Knöpfe, die deinem Tool antworten, gibt es mit [`POST /v1/push`](https://packlets.app/docs/knoepfe.md) und einem [Webhook](https://packlets.app/docs/webhook.md).
- Nachrichten bearbeiten oder löschen (`PATCH`/`DELETE` auf die Webhook-Adresse) gibt es nicht.
