5.8 KiB
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 |
| GitHub | jpmcb/openchangelog |
| License | MIT |
| Langage | Go |
| Étoiles GitHub | 317 ⭐ |
| Catégorie | Development, Changelog & Release |
| Référence | selfh.st 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é)
# 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
# Binaire Go statique
go install github.com/jpmcb/openchangelog@latest
openchangelog serve --config config.yaml
⚙️ Configuration
- GitHub token : créer un PAT avec scope
repo(lecture seule) pour passer de 60 à 5000 requêtes/h. - Repo cible :
OC_GITHUB_REPO=mon-org/mon-projet— OpenChangelog va chercher les Releases et tags. - Webhook GitHub (optionnel) : configurer pour notifier OpenChangelog à chaque nouvelle release (au lieu de polling).
- SMTP : obligatoire pour l'envoi des notifications d'abonnement — utiliser un service transactionnel comme app-hyvor-relay.
- Custom domain : servir sur
changelog.example.comderriè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_repominimum, 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_PATHcontient 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
🔗 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