---
title: Peppermint
created: 2026-06-08
updated: 2026-06-08
type: app
tags: [catalogue, support-ticketing, app-marathon-batch-rattrapage-1]
confidence: medium
contested: false
sources: [https://selfh.st/apps/?tag=Support&app=peppermint]
---

# 🎧 Peppermint

> **Helpdesk moderne et léger en TypeScript** — alternative self-hosted jeune et minimaliste à Zendesk, conçue pour les petites équipes qui veulent un support@ fonctionnel en 5 minutes.

## 📋 Informations Générales

| Champ | Valeur |
| :--- | :--- |
| **Site web** | [peppermint.sh](https://peppermint.sh) |
| **GitHub** | [peppermint-app/peppermint](https://github.com/peppermint-app/peppermint) |
| **License** | MIT |
| **Langage** | TypeScript (Next.js + Prisma) |
| **Étoiles GitHub** | ~1.5k ⭐ |
| **Catégorie** | [[cat-support-ticketing\|Support / Ticketing]] |

## 📝 Description

**Peppermint** est une application de **helpdesk** moderne et légère, écrite en TypeScript (Next.js + Prisma + PostgreSQL). C'est un projet jeune (2022+) qui vise à offrir une **alternative simple à Zendesk** pour les petites équipes : gestion de tickets, base de connaissances, multi-tenant, API REST, UI React/Next.js fluide. Différence vs **FreeScout** : Peppermint est plus jeune, écrit en TypeScript (pas PHP), et a une UX plus « startup-style » (très épurée), mais son écosystème de modules est bien plus petit et l'email piping est moins éprouvé. Pour qui: startups et devs qui veulent un helpdesk moderne auto-hébergé, et qui maîtrisent l'écosystème Node.js.

## 🚀 Installation

### Docker Compose (recommandé)

```yaml
version: '3.8'
services:
  peppermint:
    image: peppermintapp/peppermint:latest
    container_name: peppermint
    restart: unless-stopped
    ports:
      - "3000:3000"
    environment:
      - DATABASE_URL=postgresql://peppermint:***@postgres:5432/peppermint
      - NEXTAUTH_URL=https://support.example.com
      - NEXTAUTH_SECRET=***
      - SMTP_HOST=mail.example.com
      - SMTP_PORT=587
      - SMTP_USER=support@example.com
      - SMTP_PASSWORD=***
    depends_on:
      - postgres
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.peppermint.rule=Host(`support.example.com`)"
      - "traefik.http.routers.peppermint.entrypoints=websecure"
      - "traefik.http.routers.peppermint.tls.certresolver=letsencrypt"

  postgres:
    image: postgres:16-alpine
    container_name: peppermint-db
    restart: unless-stopped
    environment:
      - POSTGRES_USER=peppermint
      - POSTGRES_PASSWORD=***
      - POSTGRES_DB=peppermint
    volumes:
      - peppermint-db:/var/lib/postgresql/data

volumes:
  peppermint-db:
```

## 🔄 Alternatives

### Open Source
- [[app-freescout]] — Concurrent PHP, plus mature
- [[app-osticket]] — Concurrent PHP historique
- [[app-zammad]] — Concurrent omnicanal
- [[app-helprealm]] — Concurrent direct, plus récent
- [[app-libredesk]] — Concurrent direct

### Propriétaires
- **Zendesk** — Leader mondial
- **Help Scout** — PME, Help Scout-like
- **Plain** — Concurrent moderne SaaS

## 🔐 Sécurité
- **Auth** : NextAuth.js (email + magic link, OAuth).
- **2FA** : non activée par défaut, à configurer manuellement.
- **CSRF** : protection native Next.js.
- **HTTPS** : obligatoire (Traefik + Let's Encrypt).
- **Multi-tenant** : attention à l'isolation des données si hébergement partagé.

## 📚 Ressources
- [Site officiel](https://peppermint.sh)
- [GitHub Peppermint](https://github.com/peppermint-app/peppermint)

## Pages Liées
- [[cat-support-ticketing]] — Catégorie Support / Ticketing
- [[app-freescout]] — Concurrent mature
- [[app-zammad]] — Concurrent omnicanal
- [[recettes-docker-compose]] — Templates Docker
