Skip to content

ganymede

Media Servers

Twitch VOD and live stream archiving platform with real-time chat playback and archival‑friendly file output

Go Latest v4.17.0 · 17d ago Security brief →

Features

  • Realtime Chat Playback
  • Twitch VOD and live stream archiving with rendered chat
  • Archival‑friendly file structure for long‑term storage
  • SSO/OAuth authentication and webhook notifications
  • Custom FFmpeg and chat render parameters

Recent releases

View all 12 releases →
Upgrade now
v4.17.0 Bug fix
Auth

Twitch auth token refresh

v4.16.0 Breaking risk
Breaking changes
  • Discontinue use of the `:dev` container image; migrate to `:latest` or a specific semver version.
Notable features
  • Conditional profile image replacement during periodic channel sync
  • Absolute clock time display in video player UI
  • Configurable chat timestamps via user profile settings
Full changelog

[!IMPORTANT]
If you are running the :dev container image now is the best time to switch back to :latest or the semver version.

Change Highlights

  • feat(channel): conditionally replace profile image during periodic sync by @fllppi in https://github.com/Zibbp/ganymede/pull/1154
    • Update channel image during periodic sync
  • feat(frontend): add absolute clock time display to video player by @fllppi in https://github.com/Zibbp/ganymede/pull/1155
  • feat: chat timestamps by @Zibbp in https://github.com/Zibbp/ganymede/pull/1156
    • New setting, configurable on your profile page, to show chat timestamps.
  • feat(frontend): add autoplay video setting to profile by @fllppi in https://github.com/Zibbp/ganymede/pull/1161
    • New setting, configurable on your profile page, to auto play videos when loading a video page.

What's Changed

  • build(deps): bump follow-redirects from 1.15.11 to 1.16.0 in /frontend by @dependabot[bot] in https://github.com/Zibbp/ganymede/pull/1146
  • build(deps): bump golang.org/x/sys from 0.42.0 to 0.43.0 by @dependabot[bot] in https://github.com/Zibbp/ganymede/pull/1145
  • build(deps): bump github.com/testcontainers/testcontainers-go from 0.41.0 to 0.42.0 by @dependabot[bot] in https://github.com/Zibbp/ganymede/pull/1143
  • build(deps): bump golang.org/x/crypto from 0.49.0 to 0.50.0 by @dependabot[bot] in https://github.com/Zibbp/ganymede/pull/1142
  • build(deps): bump github.com/coreos/go-oidc/v3 from 3.17.0 to 3.18.0 by @dependabot[bot] in https://github.com/Zibbp/ganymede/pull/1144
  • build(deps): bump github.com/testcontainers/testcontainers-go/modules/postgres from 0.41.0 to 0.42.0 by @dependabot[bot] in https://github.com/Zibbp/ganymede/pull/1141
  • build(deps): bump github.com/jackc/pgx/v5 from 5.9.1 to 5.9.2 by @dependabot[bot] in https://github.com/Zibbp/ganymede/pull/1149
  • build(deps): bump github.com/riverqueue/river from 0.34.0 to 0.35.0 by @dependabot[bot] in https://github.com/Zibbp/ganymede/pull/1151
  • build(deps): bump github.com/riverqueue/river/riverdriver/riverpgxv5 from 0.34.0 to 0.35.0 by @dependabot[bot] in https://github.com/Zibbp/ganymede/pull/1150
  • feat: live archive ffmpeg timeouts by @Zibbp in https://github.com/Zibbp/ganymede/pull/1147
  • build(deps-dev): bump postcss from 8.5.6 to 8.5.10 in /frontend by @dependabot[bot] in https://github.com/Zibbp/ganymede/pull/1153
  • feat(channel): conditionally replace profile image during periodic sync by @fllppi in https://github.com/Zibbp/ganymede/pull/1154
  • feat(frontend): add absolute clock time display to video player by @fllppi in https://github.com/Zibbp/ganymede/pull/1155
  • feat: chat timestamps by @Zibbp in https://github.com/Zibbp/ganymede/pull/1156
  • build(deps): bump github.com/riverqueue/river from 0.35.0 to 0.35.1 by @dependabot[bot] in https://github.com/Zibbp/ganymede/pull/1160
  • build(deps): bump github.com/riverqueue/river/riverdriver/riverpgxv5 from 0.35.0 to 0.35.1 by @dependabot[bot] in https://github.com/Zibbp/ganymede/pull/1159
  • build(deps): bump github.com/rs/zerolog from 1.35.0 to 1.35.1 by @dependabot[bot] in https://github.com/Zibbp/ganymede/pull/1158
  • feat(frontend): add autoplay video setting to profile by @fllppi in https://github.com/Zibbp/ganymede/pull/1161

Full Changelog: https://github.com/Zibbp/ganymede/compare/v4.15.1...v4.16.0

v4.15.1 Security relevant
Security fixes
  • Upstream dependency security patches: next-intl 4.9.1, lib/pq 1.12.3, go-playground/validator 10.30.2, riverqueue/river 0.33.0, gopsutil 4.26.3, next 16.2.3, axios 1.15.0
Full changelog

What's Changed

Security updates from dependencies.

  • build(deps): bump next-intl from 4.8.2 to 4.9.1 in /frontend by @dependabot[bot] in https://github.com/Zibbp/ganymede/pull/1137
  • build(deps): bump github.com/lib/pq from 1.12.1 to 1.12.3 by @dependabot[bot] in https://github.com/Zibbp/ganymede/pull/1130
  • build(deps): bump github.com/go-playground/validator/v10 from 10.30.1 to 10.30.2 by @dependabot[bot] in https://github.com/Zibbp/ganymede/pull/1131
  • build(deps): bump github.com/riverqueue/river/rivertype from 0.32.0 to 0.33.0 by @dependabot[bot] in https://github.com/Zibbp/ganymede/pull/1133
  • build(deps): bump github.com/shirou/gopsutil/v4 from 4.26.2 to 4.26.3 by @dependabot[bot] in https://github.com/Zibbp/ganymede/pull/1132
  • build(deps): bump github.com/riverqueue/river/riverdriver/riverpgxv5 from 0.32.0 to 0.33.0 by @dependabot[bot] in https://github.com/Zibbp/ganymede/pull/1134
  • build(deps): bump next from 16.1.7 to 16.2.3 in /frontend by @dependabot[bot] in https://github.com/Zibbp/ganymede/pull/1138
  • build(deps): bump axios from 1.13.5 to 1.15.0 in /frontend by @dependabot[bot] in https://github.com/Zibbp/ganymede/pull/1139

Full Changelog: https://github.com/Zibbp/ganymede/compare/v4.15.0...v4.15.1

v4.15.0 Mixed
⚠ Upgrade required
  • If running :dev container image, switch to :latest or a semver version
  • New log_retention_days configuration setting available to control log file retention
Notable features
  • Live stream chat archiving: writes to temporary file flushed to main file every 2 seconds, preventing per-message JSON rewrites
  • Daily log pruning task configurable via log_retention_days setting
  • Reset is_live state on server start
Full changelog

[!IMPORTANT]
If you are running the :dev container image now is the best time to switch back to :latest or the semver version.

Changes

Better Live stream chat archiving - https://github.com/Zibbp/ganymede/pull/1113

Saves live chat JSON/messages to a temporary file then flushes to the main JSON/chat file every 2 seconds. This prevents expensive re-writes of the entire JSON file for every chat message.

Prune old log files - https://github.com/Zibbp/ganymede/pull/1126

A new task runs daily to prune old log files. Configurable via the log_retention_days config setting.

What's Changed

  • build(deps): bump picomatch in /frontend by @dependabot[bot] in https://github.com/Zibbp/ganymede/pull/1119
  • feat: reset is_live state on server start by @Zibbp in https://github.com/Zibbp/ganymede/pull/1121
  • bump test archive timeout by @Zibbp in https://github.com/Zibbp/ganymede/pull/1122
  • build(deps): bump github.com/lib/pq from 1.12.0 to 1.12.1 by @dependabot[bot] in https://github.com/Zibbp/ganymede/pull/1123
  • build(deps): bump github.com/rs/zerolog from 1.34.0 to 1.35.0 by @dependabot[bot] in https://github.com/Zibbp/ganymede/pull/1124
  • fix: save live chat to temporary file then flush by @Zibbp in https://github.com/Zibbp/ganymede/pull/1113
  • feat: prune old logs by @Zibbp in https://github.com/Zibbp/ganymede/pull/1126
  • build(deps): bump lodash from 4.17.23 to 4.18.1 in /frontend by @dependabot[bot] in https://github.com/Zibbp/ganymede/pull/1129
  • build(deps): bump github.com/go-jose/go-jose/v4 from 4.1.3 to 4.1.4 by @dependabot[bot] in https://github.com/Zibbp/ganymede/pull/1128

Full Changelog: https://github.com/Zibbp/ganymede/compare/v4.14.1...v4.15.0

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

About

Stars
967
Forks
56
Languages
Go TypeScript CSS

Install & Platforms

Install via
docker docker-compose
Platforms
linux

Alternative to

Ceres

Beta — feedback welcome: [email protected]