Download Latest Version openchronology-desktop-windows-amd64-setup.exe (9.4 MB)
Home / v0.23.1
Name Modified Size InfoDownloads / Week
Parent folder
windows-amd64-build-info.json 2026-11-07 123 Bytes
openchronology-web-source.tar.gz 2026-11-07 3.3 MB
rocky-rpm-build-info.json 2026-11-07 123 Bytes
openchronology-server-rocky10-amd64.rpm 2026-11-07 86.1 MB
openchronology-server-ubuntu24.04-amd64.deb 2026-11-07 81.8 MB
openchronology-server-windows-amd64-setup.exe 2026-11-07 81.8 MB
openchronology-server-platform.tar.gz 2026-11-07 65.4 MB
openchronology-server-freebsd14-amd64.pkg 2026-11-07 45.7 MB
openchronology-server-freebsd15-amd64.pkg 2026-11-07 45.7 MB
openchronology-server-debian13-amd64.deb 2026-11-07 81.8 MB
openchronology-server-fedora44-amd64.rpm 2026-11-07 86.0 MB
openchronology-native-source-windows-amd64.tar.gz 2026-11-07 5.4 MB
openchronology-offline-cfam.html 2026-11-07 659.9 kB
openchronology-offline.html 2026-11-07 659.9 kB
openchronology-desktop-source.tar.gz 2026-11-07 97.0 MB
openchronology-desktop-windows-amd64-setup.exe 2026-11-07 9.3 MB
openchronology-native-source-macos-amd64.tar.gz 2026-11-07 5.4 MB
openchronology-native-source-macos-arm64.tar.gz 2026-11-07 5.4 MB
linux-deb-build-info.json 2026-11-07 123 Bytes
macos-amd64-build-info.json 2026-11-07 123 Bytes
macos-arm64-build-info.json 2026-11-07 123 Bytes
openchronology-desktop-linux-amd64.AppImage 2026-11-07 89.4 MB
openchronology-desktop-linux-amd64.deb 2026-11-07 11.1 MB
openchronology-desktop-macos-amd64.dmg 2026-11-07 11.7 MB
openchronology-desktop-macos-arm64.dmg 2026-11-07 11.5 MB
openchronology-desktop-rocky10-amd64.rpm 2026-11-07 11.1 MB
build-info.json 2026-11-07 123 Bytes
LICENSE.txt 2026-11-07 35.1 kB
linux-appimage-build-info.json 2026-11-07 123 Bytes
NOTICE.txt 2026-11-07 1.4 kB
SHA256SUMS.txt 2026-11-07 3.0 kB
README.md 2026-11-07 4.1 kB
v0.23.1 source code.tar.gz 2026-11-07 3.2 MB
v0.23.1 source code.zip 2026-11-07 3.8 MB
Totals: 34 Items   843.2 MB 0

Changes since v0.23.0.

Early release. In SemVer terms, anything may change before 1.0, including file formats, the HTTP API and settings, though changes to .ochx and .och files will come with conversions.

⚠ Before you upgrade

  • Docker Compose: add APP_DATABASE_PASSWORD to .env, different from POSTGRES_PASSWORD. Compose now runs the app as an ordinary database role, openchronology_app, and refuses to start without it.
  • NixOS: the syslog receiver and journald follower no longer read the server's environmentFile. Give them their API keys with the new services.openchronology.syslog.environmentFile and journald.environmentFile; the module warns while either is unset.
  • Packages (Debian, Ubuntu, RPM, Arch, FreeBSD): nothing to do. The upgrade creates the openchronology-logs user and moves the log receivers' settings to it.

Security

This release hardens every edition, following a security review. Advisories will be published once servers have upgraded.

  • Server:
  • Request bodies: routes anyone can call accept only small requests, and deeply nested JSON is refused before it is parsed.
  • Anonymous load: anonymous queries and tag-filtered views are rate-limited and queued.
  • Rate limits: an IPv6 client is counted by its /64.
  • Proof-of-work answers: they can't be reused.
  • Smaller fixes: in the LDAP filter and in embed titles.
  • Web pages:
  • Security headers: every page gets the content security policy, framing protection, nosniff, no-referrer and HSTS.
  • Google Analytics (when an operator enables it) is never sent private timelines' titles or addresses, or sign-in codes.
  • Desktop app:
  • Opening .och files: a crafted file can no longer crash the app or the server's converter.
  • File links: a timeline's links are followed only inside folders you chose, or in a timeline you trust, asked in the app's own dialog. Opening a file uses an allowlist of kinds, and other files are shown in their folder.
  • System thumbnailers run only on files you chose.
  • Images: a timeline opened from a file hides images from other sites until you choose to show them.
  • Permissions: the window can call only the app's own commands.
  • Private files: staged files and thumbnails are private to you.
  • Desktop sign-in: the approval page shows which computer is asking. A request from another network needs a second confirmation, which the server enforces.
  • Offline file and editor: the capacity notice keeps only hashes in browser storage, and survives bad values there.
  • Packaging:
  • Windows server: it takes ownership of its data folder and trusts nothing it didn't create.
  • Docker Compose and Homebrew: the app connects to the database without superuser rights.
  • Log receivers: the syslog receiver and journald follower run as their own user, openchronology-logs, and can't read the server's secrets.
  • systemd: more sandboxing.
  • Release assets: they carry build provenance attestations (gh attestation verify <file> --repo openchronology/timeline-app).
  • Pinning: Rust is fixed to one release, and base images are pinned by digest.

Added

  • Page caching: public pages seen signed out can be cached by a reverse proxy for a minute, with Vary: Cookie; anything signed in stays private. Administration has an nginx sample and how to measure page speed.
  • A comparison of timeline tools in the help, and an FAQ answer pointing to it.
  • New help pages: Installing a server and Building and testing, which take over the README's detail.

Changed

  • The README is short: what OpenChronology does, and where to go next.
  • The hosted offline copy at openchronology.github.io changes only with stable releases.
  • The NixOS module hides nginx's version.

Upgrading

Install the new package and run openchronology-migrate as usual. The migration adds two columns to desktop sign-in requests.

Source: README.md, updated 2026-11-07