Skip to content

Talkyard v1.2026.002

Choose a tag to compare

@kajmagnus kajmagnus released this 13 May 13:05
· 21 commits to main since this release

This (v1) is major new version (or epoch?) of Talkyard.

It's mostly an upgrade of all database software, and a better Docker Compose architecture. We'll add more features later.   v0 will receive only bugfixes.

If you use our SaaS: You don't need to do anything — v1 is backwards compatible, from your perspective.

If you're self-hosted: To upgrade, you can install v1 side-by-side with v0, backup v0 and import the backup to v1. We'll publish docs soon.

Here are changes since v0.2025.015. Full changelog: tyse-v0.2025.015-368ca18d4-regular...tyse-v1.2026.002-5962b8ad5-regular.

Features

  • Multilingual search: Text now gets indexed in the language of the forum. Before, was always indexed as English.

  • Private support categories: Added a See-one's-own-topics-only permission.
    So you can configure private support-style categories, where users only see their own topics.
    (Was implemented long ago, but auto tests not added until now, 297c0df)

Security & self-hosting

  • Major database upgrades: Postgres 18, ElasticSearch 9, Redis 8.
  • An egress proxy that blocks Server Side Request Forgery (SSRF).
  • Network segmentation: Databases on their own internal net (you don't need to do anything, the network gets created by Docker).
  • Docker named volumes.
  • Hardened containers:
    • Dropping capabilities (Docker caps_drop).
    • Prevent privilege escalation: security_opt: no-new-privileges=true
    • App server now runs as non-root appuser.
  • Optionally encrypted backups (with gpg).
  • Started using Docker secrets.

Self-hosting

  • We now follow the Linux Filesystem Hierarchy Standard (FHS).
  • Everything logs to stdout, Docker auto rotates logs (so won't fill disk).
  • Using Docker Compose v2 (instead of old v1).
  • Container health checks.
  • Backup script uses hard links for uploaded files, saving disk.

Improvements

  • Search queries: Page title & orig post now indexed together, so the search engine finds matches in both the title and the post at once.

Internal

  • A new rendr Docker service that will in the future render React server-side. So we can stop using Nashorn for this, and upgrade to Java 17+.
  • Using sqlx instead of FlywayDB (Flyway has been working great! but
    we ran into a dependency hell when they started requiring Java 17+).
  • Reduced ElasticSearch to 1 shard, better for memory & performance.
  • Skip Play Framework PID file. Process managed by Docker anyway.
  • Reconnect to ElasticSearch if needed, with exp backoff.
  • Activate throwForbiddenIf(!enableApi) test in prod builds.
  • Boring stuff, e.g. upgraded libraries.
  • Renamed some things. See upgrade notes, if you're self-hosted.