Files
2026-06-09 18:40:21 +02:00

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

  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

🔗 Pages Liées