Skip to content
Dashboard

Self Hosting

Openchangelog can be run on your own infrastructure with just a single yaml config file. No database required!
Copy this minimal openchangelog.yml config file.

addr: 0.0.0.0:6001
local:
filesPath: /release-notes
page:
title: Changelog
subtitle: The latest product updates
colorScheme: light
hidePoweredBy: false
logo:
src: https://openchangelog.com/logo-full.webp
link: https://www.openchangelog.com

Note that we have configured Openchangelog to load our release notes from the /release-notes folder. When using Docker make sure to mount this folder.

Openchangelog can be started with docker run:

Terminal window
docker run -v ./openchangelog.yml:/etc/openchangelog.yml:ro -v ./release-notes:/release-notes -p 6001:6001 ghcr.io/jonashiltl/openchangelog:0.5.2

Or with this basic docker-compose.yml:

services:
openchangelog:
image: "ghcr.io/jonashiltl/openchangelog:0.5.2"
ports:
- "6001:6001"
volumes:
- ./release-notes:/release-notes
- type: bind
source: openchangelog.yml
target: /etc/openchangelog.yml

Once deployed, your changelog will be available at http://localhost:6001.

Configuration

Configuration is read from /etc/openchangelog.yml

Page

The page section groups customizations of your changelog’s appearance.

Title

page:
title: Changelog

Subtitle

page:
subtitle: Here is a rundown of the latest updates and improvements to ...

Color Scheme

The color scheme can be set to dark, light or system.

page:
colorScheme: light

Customize your logo with these attributes:

page:
logo:
src: https://openchangelog.com/logo-full.webp # required to display a logo
alt: our logo # optional
width: 70px # optional
height: 30px # optional
link: https://openchangelog.com # optional

Auth

The auth section can be used to enable password protection of the changelog.
Set passwordHash with the bcrypt hash of your password. Do not use the actual password!

page:
auth:
enabled: true
# passwordHash: bcrypt hash of password

You can specify the authorize URL parameter with your password to bypass the password screen.

Sources

Configure where your changelog articles are loaded from. Visit the Using Sources guide for detailed setup instructions for each supported source.

Cache

You can configure a cache to improve latency and avoid hitting rate limits from e.g. Github. Internally httpcache is used to cache the requests to Github. You can choose between a memory, disk and s3 based cache.

cache:
type: disk
disk:
location: /data/cache
maxSize: 1073741824 # 1 GB in bytes
# s3:
# bucket: the bucket url, env AWS_ACCESS_KEY_ID and AWS_SECRET_KEY are used as credentials

Analytics

Analytics enables tracking of each request to a changelog, capturing details like time, city, country, continent, lat, lng, and whether access was denied if the changelog is protected.
Location data is available only when running behind Cloudflare with Visitor Location Headers enabled.

Tinybird

To send analytics events to Tinybird, simply configure your access token as follows:

analytics:
provider: tinybird
tinybird:
accessToken: ...

Then, set up the datasource analytics_events.