Initial vault setup
This commit is contained in:
@@ -0,0 +1,141 @@
|
||||
---
|
||||
title: Hyvor Relay
|
||||
created: 2026-06-07
|
||||
updated: 2026-06-07
|
||||
type: app
|
||||
tags: [catalogue, development, email, smtp, transactional]
|
||||
confidence: high
|
||||
contested: false
|
||||
sources: [https://selfh.st/apps/?tag=Development, https://github.com/hyvor/relay]
|
||||
---
|
||||
|
||||
# 💻 Hyvor Relay
|
||||
|
||||
> **Service de mailing transactionnel open source** — envoyez vos emails applicatifs (magic links, receipts, notifications) via SMTP ou API HTTP, en self-hosted, comme alternative à Postmark, SendGrid et Amazon SES.
|
||||
|
||||
## 📋 Informations Générales
|
||||
|
||||
| Champ | Valeur |
|
||||
| :--- | :--- |
|
||||
| **Site web** | [relay.hyvor.com](https://relay.hyvor.com/) |
|
||||
| **GitHub** | [hyvor/relay](https://github.com/hyvor/relay) |
|
||||
| **License** | AGPL-3.0 |
|
||||
| **Langage** | PHP (Laravel) |
|
||||
| **Étoiles GitHub** | 623 ⭐ |
|
||||
| **Catégorie** | Development, Email Transactionnel |
|
||||
| **Référence** | [selfh.st Development](https://selfh.st/apps/?tag=Development) |
|
||||
|
||||
## 📝 Description
|
||||
|
||||
**Hyvor Relay** est un **service de mailing transactionnel self-hosted** qui permet d'envoyer des emails applicatifs (confirmations, magic links, notifications, receipts, OTP) via **SMTP** (port 1025) ou **API HTTP REST**. C'est la **réponse open source à Postmark, SendGrid et Amazon SES** : contrôle total des données, de la délivrabilité et des métriques, sans SaaS tiers.
|
||||
|
||||
Développé par **Hyvor** (éditeur de Hyvor Talk, Hyvor Blogs), Relay mise sur la **simplicité radicale** : un binaire PHP, une interface web claire, le strict nécessaire (pas de marketing automation ni de templates drag&drop). Il fait **une seule chose, bien** : router vos emails vers un provider sortant (SES, Postmark, Mailgun, SMTP générique) avec **fallback automatique**.
|
||||
|
||||
Pour les **indie hackers et SaaS self-hosted**, Relay résout le casse-tête « j'ai une app Laravel, je veux envoyer 10 000 emails/mois, je ne veux pas de Postmark à 15 $/mois et je ne veux pas que Google voie mes emails ». Il suffit de pointer `MAIL_HOST` vers Relay (port 1025) ou d'utiliser l'API REST avec une clé.
|
||||
|
||||
Fonctionnalités : **multi-providers avec fallback**, **DKIM/SPF/DMARC assistés**, **webhooks** de bounce/spam, **templates** avec variables, **statistiques** (delivered, opened, clicked), **suppression list** auto, **multi-tenants** par clé API scopée, **queue Laravel** interne (Redis ou DB).
|
||||
|
||||
## 🚀 Installation
|
||||
|
||||
### Via Docker (recommandé)
|
||||
|
||||
```yaml
|
||||
# docker-compose.yml
|
||||
version: '3.8'
|
||||
services:
|
||||
relay:
|
||||
image: hyvor/relay:latest
|
||||
container_name: hyvor-relay
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "1025:1025" # SMTP
|
||||
- "8080:8080" # Console web
|
||||
environment:
|
||||
APP_URL: "https://relay.example.com"
|
||||
DB_HOST: db
|
||||
DB_DATABASE: relay
|
||||
DB_USERNAME: relay
|
||||
DB_PASSWORD: ***changeme***
|
||||
REDIS_HOST: redis
|
||||
MAIL_FROM_ADDRESS: "noreply@example.com"
|
||||
PROVIDER_TYPE: "ses" # ses | postmark | mailgun | smtp
|
||||
SES_KEY: "***"
|
||||
SES_SECRET: "***"
|
||||
SES_REGION: "eu-west-1"
|
||||
volumes:
|
||||
- relay_data:/var/www/html/storage
|
||||
depends_on: [db, redis]
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.relay.rule=Host(`relay.example.com`)"
|
||||
- "traefik.http.routers.relay.tls.certresolver=letsencrypt"
|
||||
|
||||
db:
|
||||
image: mysql:8
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: ***rootpass***
|
||||
MYSQL_DATABASE: relay
|
||||
MYSQL_USER: relay
|
||||
MYSQL_PASSWORD: ***changeme***
|
||||
volumes:
|
||||
- relay_db:/var/lib/mysql
|
||||
|
||||
redis:
|
||||
image: redis:7-alpine
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
relay_data:
|
||||
relay_db:
|
||||
```
|
||||
|
||||
### Installation manuelle
|
||||
|
||||
```bash
|
||||
git clone https://github.com/hyvor/relay.git
|
||||
cd relay
|
||||
composer install --no-dev
|
||||
cp .env.example .env
|
||||
php artisan key:generate
|
||||
php artisan migrate --seed
|
||||
php artisan serve
|
||||
```
|
||||
|
||||
## ⚙️ Configuration
|
||||
|
||||
1. **Provider sortant** (SES, Postmark, Mailgun, SMTP) — Relay relaie vers un provider avec IP dédiée, il n'envoie pas directement.
|
||||
2. **Domaine** : console > Domains > copier les enregistrements DNS (DKIM, SPF, DMARC, MX retour).
|
||||
3. **API key scopée** par domaine via `console > API Keys`.
|
||||
4. **Laravel** : `MAIL_MAILER=smtp`, `MAIL_HOST=relay.example.com`, `MAIL_PORT=1025`, `MAIL_USERNAME=<api_key>`.
|
||||
5. **Webhooks** : URL de bounce/spam à configurer sur le provider pour que Relay reçoive les notifications.
|
||||
|
||||
## 🔗 Alternatives
|
||||
|
||||
- **Postmark** — Référence du marché, excellent tracking, cloud uniquement et payant.
|
||||
- **SendGrid** — Géant du transactionnel, plan gratuit 100/jour, politique de contenu stricte.
|
||||
- **Amazon SES** — Le moins cher, mais vendor lock-in AWS.
|
||||
- **Postal** — Serveur mail open source, plus complet (newsletters) mais plus complexe.
|
||||
|
||||
## 🔒 Sécurité
|
||||
|
||||
- 🔐 **HTTPS obligatoire** via [[app-traefik]] : les credentials SMTP et l'API key transitent en clair sinon.
|
||||
- 🔒 **API keys scopées** : une clé par app/domaine, jamais une clé « admin » côté applicatif.
|
||||
- 🛡️ **DKIM/SPF/DMARC corrects** : sans DNS bien configuré, vos emails tombent en spam (vérifier sur mail-tester.com).
|
||||
- 🛡️ **Rate limiting** par clé API activé pour éviter qu'un bug n'envoie 100 000 mails.
|
||||
- 🛡️ **Rétention des logs** d'email (30/90 j) pour la conformité RGPD.
|
||||
|
||||
## 📚 Ressources
|
||||
|
||||
- [Site officiel Hyvor Relay](https://relay.hyvor.com/)
|
||||
- [Documentation](https://relay.hyvor.com/docs)
|
||||
- [GitHub hyvor/relay](https://github.com/hyvor/relay)
|
||||
- [Selfh.st — Development](https://selfh.st/apps/?tag=Development)
|
||||
|
||||
## 🔗 Pages Liées
|
||||
|
||||
- [[cat-development]] — Catégorie Development
|
||||
- [[app-supabase]] — BaaS qui peut s'appuyer sur Relay pour SMTP sortant
|
||||
- [[app-traefik]] — Reverse proxy HTTPS
|
||||
- [[securisation-home-lab]] — Bonnes pratiques de sécurité
|
||||
- [[recettes-docker-compose]] — Templates Docker Compose
|
||||
Reference in New Issue
Block a user