Skip to content

Open Matte 1.0.0

Choose a tag to compare

@arthurclack arthurclack released this 04 Nov 19:44
· 15 commits to main since this release

Open Matte is a small, self-hosted cinema for recommending films to friends. You publish a handful of films you think people should see, write a few lines on why, and send a friend a ticket: a link that opens the film in their browser. You run it on your own server, for people you know. It isn't a media server, and it isn't DRM.

This is the first numbered release. It brings together ticketed playback, people and passkeys, and the work for a public release.

What's in 1.0.0

  • Tickets and screenings: an "admit one" link per film, with an optional screening limit, start-by date and number of days after first play. Pressing Play starts a screening, which can be paused and resumed for 48 hours, on one device at a time. Revoking a ticket stops it on the next request.
  • Protected playback: every playlist, segment, audio and subtitle request is checked against the browser's session, its ticket and the screening it holds. Adaptive HLS, through hls.js or Safari's own player, in HEVC and H.264, with HDR10.
  • For viewers: audio and subtitle choices remembered in each browser, forced subtitles that show by themselves, the film's title and poster on the lock screen, and a Playback help summary to send you when something won't play.
  • People and passkeys: you add people in the admin, and nobody can sign up. Tickets only one person can use, signed in; keeping a ticket in an account; films shown to members; an account page; and recovery when someone loses a device.
  • The admin: scan the media folder, publish, issue and revoke tickets, add people, filter Activity, choose how long records are kept, and check on the server under Status.
  • Branding: your cinema's name, colours, logo and tab icon. A ticket link for anyone shows its film's poster and title in chat apps; a ticket for one person shows only the cinema.
  • Films: one folder per film, described by a film.json; details and artwork from TMDB if you want them; and a reference encoder for HEVC and H.264.
  • Backups every day, keeping the last 14 days and one a month for a year, with Back up now in the admin and a timer to copy them off the server.
  • Hardening: a Content-Security-Policy on every page, an admin session key made with scrypt, and a running image with no package manager.
  • Documentation: installing on a fresh server, with the films on network storage if you like; updating, backing up, restoring and moving to a new server; the changelog and SECURITY.md. The site also serves licence notices for the code it sends to browsers.

The full list, with what changed and what was fixed, is in CHANGELOG.md.

Installing

Follow docs/installing.md. It takes you from a fresh server to a working cinema and a played ticket.

You need an Ubuntu 26.04 or 24.04 LTS server, on x86_64 or ARM64, with a public IPv4 address and ports 80 and 443 open; a domain you can add DNS records to; and films prepared on your own computer with the encoder (docs/encoding.md). The guide installs Docker for you.

Updating from an earlier deploy

Read the Upgrading note for 1.0.0 before you update. It needs a backup first, copied off the server, because going back needs a restore.

Security

To report a security problem, use GitHub's private vulnerability reporting, as SECURITY.md describes.

Licence

Open Matte is released under the GNU General Public License, version 3 or (at your option) any later version (GPL-3.0-or-later). See LICENSE.