--- title: OpenChangelog created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, development, changelog, docs, product] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Development, https://github.com/jpmcb/openchangelog] --- # 💻 OpenChangelog > **Plateforme de changelogs publics** — publiez vos release notes depuis GitHub/GitLab avec un site statique élégant, un widget embed, des flux RSS/Atom et des notifications email, sans dépendance SaaS. ## 📋 Informations Générales | Champ | Valeur | | :--- | :--- | | **Site web** | [openchangelog.io](https://www.openchangelog.io/) | | **GitHub** | [jpmcb/openchangelog](https://github.com/jpmcb/openchangelog) | | **License** | MIT | | **Langage** | Go | | **Étoiles GitHub** | 317 ⭐ | | **Catégorie** | Development, Changelog & Release | | **Référence** | [selfh.st Development](https://selfh.st/apps/?tag=Development) | ## 📝 Description **OpenChangelog** est une **plateforme de changelogs publics self-hosted** qui transforme vos release notes GitHub en un **site web dédié, esthétique et fonctionnel** (un peu comme Canny, Beamer ou Productboard's changelog, mais open source et chez vous). L'idée : les changelogs stockés dans les fichiers `CHANGELOG.md` ou les **GitHub Releases** sont parfaits pour les devs, mais **invisibles pour les utilisateurs finaux**. OpenChangelog agrège automatiquement vos releases (GitHub, GitLab, Bitbucket), les **parse, catégorise** (Features, Bug Fixes, Breaking Changes, Security) et expose une **page publique** où vos clients peuvent s'abonner par email, recevoir des **notifications RSS/Atom**, et filtrer par tag/label. C'est typiquement le genre d'outil qu'on branche **une fois** sur son repo GitHub et qu'on oublie : à chaque nouvelle release taggée, OpenChangelog la détecte (via webhook ou polling), la parse depuis le `CHANGELOG.md` ou le corps de la release, la **catégorise automatiquement** selon les labels GitHub, et la publie. Les visiteurs peuvent s'abonner et recevoir un **email de notification** à chaque nouvelle entrée. **Cas d'usage** : SaaS self-hosted qui veut un changelog public sans passer par Canny/Beamer (payants), projets open source qui veulent une page `/changelog` propre, équipes produit qui veulent **garder le contrôle de leurs release notes** sans SaaS tiers. ## 🚀 Installation ### Via Docker (recommandé) ```yaml # docker-compose.yml version: '3.8' services: openchangelog: image: ghcr.io/jpmcb/openchangelog:latest container_name: openchangelog restart: unless-stopped ports: - "3000:3000" environment: OC_BASE_URL: "https://changelog.example.com" OC_GITHUB_TOKEN: "ghp_***" # pour augmenter le rate-limit API OC_GITHUB_REPO: "mon-org/mon-projet" OC_DB_PATH: "/data/changelog.db" OC_RSS_ENABLED: "true" OC_SUBSCRIBE_ENABLED: "true" OC_SMTP_HOST: "smtp.example.com" OC_SMTP_PORT: 587 OC_SMTP_USER: "noreply@example.com" OC_SMTP_PASS: "***" OC_SMTP_FROM: "noreply@example.com" volumes: - oc_data:/data labels: - "traefik.enable=true" - "traefik.http.routers.oc.rule=Host(`changelog.example.com`)" - "traefik.http.routers.oc.entrypoints=websecure" - "traefik.http.routers.oc.tls.certresolver=letsencrypt" volumes: oc_data: ``` ### Installation manuelle ```bash # Binaire Go statique go install github.com/jpmcb/openchangelog@latest openchangelog serve --config config.yaml ``` ## ⚙️ Configuration 1. **GitHub token** : créer un PAT avec scope `repo` (lecture seule) pour passer de 60 à 5000 requêtes/h. 2. **Repo cible** : `OC_GITHUB_REPO=mon-org/mon-projet` — OpenChangelog va chercher les Releases et tags. 3. **Webhook GitHub** (optionnel) : configurer pour notifier OpenChangelog à chaque nouvelle release (au lieu de polling). 4. **SMTP** : obligatoire pour l'envoi des **notifications d'abonnement** — utiliser un service transactionnel comme [[app-hyvor-relay]]. 5. **Custom domain** : servir sur `changelog.example.com` derrière [[app-traefik]]. ## 🔗 Alternatives - **Canny** — SaaS de feedback + changelog, propriétaire, plan gratuit limité. - **Beamer** — Widget de notification in-app, très utilisé par les SaaS, payant. - **Productboard Changelog** — Intégré à Productboard, orienté product managers. - **GitHub Releases + page custom** — Solution minimale (un script Hugo + le repo), mais sans notifications email natives. - **Keep A Changelog** — Convention de format, pas un outil. ## 🔒 Sécurité - 🔐 **HTTPS obligatoire** via [[app-traefik]] : les visiteurs s'abonnent par email, les tokens SMTP transitent. - 🔒 **GitHub token en read-only** : scope `public_repo` minimum, jamais un PAT admin. - 🛡️ **Rate limiting GitHub** : sans token, l'API GitHub limite à 60 req/h — toujours configurer un PAT. - 🛡️ **Validation des inputs** : si vous customisez les templates, échapper les contenus des release notes (XSS). - 🛡️ **Backups SQLite** : `OC_DB_PATH` contient les abonnements email — sauvegarder régulièrement. - 🛡️ **Conformité email** : double opt-in recommandé pour les abonnements, lien de désabonnement dans chaque mail (RGPD/CAN-SPAM). ## 📚 Ressources - [Site officiel](https://www.openchangelog.io/) - [Documentation](https://www.openchangelog.io/docs) - [GitHub jpmcb/openchangelog](https://github.com/jpmcb/openchangelog) - [Selfh.st — Development](https://selfh.st/apps/?tag=Development) ## 🔗 Pages Liées - [[cat-development]] — Catégorie Development - [[app-hyvor-relay]] — Service de mailing transactionnel pour les notifications d'abonnement - [[app-traefik]] — Reverse proxy HTTPS - [[securisation-home-lab]] — Bonnes pratiques de sécurité - [[recettes-docker-compose]] — Templates Docker Compose