{"product":"anthias","releases":[{"date":"2026-07-16","entries":[{"areas":[],"breaking":true,"content_html":"\u003cp\u003eFrom Anthias 2026.07.3, each \u0026quot;Screen rotation\u0026quot; choice turns the picture the same way on every board.\n\u0026quot;Portrait (90°)\u0026quot; turns it a quarter turn clockwise and \u0026quot;Portrait, inverted (270°)\u0026quot; a quarter turn\nanticlockwise, and images, web pages, video and streams all turn together.\u003c/p\u003e\n\u003cp\u003eBefore, the direction depended on the board. A 32-bit Raspberry Pi 2 or 3 turned video clockwise for\n\u0026quot;Portrait (90°)\u0026quot;, while a Raspberry Pi 3 running the 64-bit image, a Pi 4, a Pi 5, a PC and generic\narm64 boards turned the picture anticlockwise for the same setting.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003eIf you have a portrait screen on a Raspberry Pi 3 running the 64-bit image, a Pi 4, a Pi 5, a PC\nor a generic arm64 board such as the Rock Pi 4:\u003c/strong\u003e after upgrading to Anthias 2026.07.3, the picture\nshows upside down. In the web interface, open Settings and, under \u0026quot;Display \u0026amp; playback\u0026quot;, switch\n\u0026quot;Screen rotation\u0026quot; from \u0026quot;Portrait (90°)\u0026quot; to \u0026quot;Portrait, inverted (270°)\u0026quot;, or the other way round. If\nyou set it through the API, swap \u003ccode\u003escreen_rotation\u003c/code\u003e between \u003ccode\u003e90\u003c/code\u003e and \u003ccode\u003e270\u003c/code\u003e. \u0026quot;Landscape (0°)\u0026quot; and\n\u0026quot;Landscape, inverted (180°)\u0026quot; look the same as before, and a 32-bit Raspberry Pi 2 or 3 needs no\nchange.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"images-and-web-pages-on-a-32-bit-raspberry-pi-2-or-3\"\u003eImages and web pages on a 32-bit Raspberry Pi 2 or 3\u003c/h2\u003e\n\u003cp\u003eOn a Raspberry Pi 2 or 3 running a 32-bit image, only video followed \u0026quot;Screen rotation\u0026quot;, as the\n\u003ca href=\"/releases/anthias/2026.05.1/screen-rotation-setting/\"\u003e2026.05.1 entry that introduced the setting\u003c/a\u003e\ndescribed. Images and web pages stayed upright whatever you picked. From Anthias 2026.07.3 they turn\nat 90°, 180° and 270°, in the same direction as video.\u003c/p\u003e\n\u003cp\u003eRotated video on these boards still played at only a few frames per second in this release.\n\u003ca href=\"/releases/anthias/2026.07.4/rotated-video-on-pi-2-3/\"\u003eAnthias 2026.07.4\u003c/a\u003e brought 180° up to full\nspeed.\u003c/p\u003e\n\u003ch2 id=\"video-on-a-64-bit-raspberry-pi-3\"\u003eVideo on a 64-bit Raspberry Pi 3\u003c/h2\u003e\n\u003cp\u003eOn a Raspberry Pi 3 running the 64-bit image (\u003ccode\u003epi3-64\u003c/code\u003e), video ignored \u0026quot;Screen rotation\u0026quot; and stayed\nupright while images and web pages turned. That started when\n\u003ca href=\"/releases/anthias/2026.07.2/raspberry-pi-3-64-bit-video/\"\u003eAnthias 2026.07.2 brought hardware video to this board\u003c/a\u003e.\nVideo now turns with everything else.\u003c/p\u003e\n\u003cp\u003eAt 180°, video still plays at full frame rate. This board\u0026#39;s video hardware can\u0026#39;t turn a picture by a\nquarter, so at 90° and 270° video plays through a software path instead: about 9 to 10 frames per\nsecond for 1080p in the project\u0026#39;s testing. For portrait video, a Raspberry Pi 4 or 5 is the better\nboard.\u003c/p\u003e\n","description":"Each Screen rotation choice now turns the picture the same way on every board, images and web pages rotate on a 32-bit Raspberry Pi 2 or 3, and video rotates on a 64-bit Pi 3. On a Pi 4, Pi 5, PC or other 64-bit board, a portrait screen set up earlier shows upside down until you switch its setting.","title":"Screen rotation turns content the same way on every board","type":"fix","url":"https://www.screenly.io/releases/anthias/2026.07.3/screen-rotation-the-same-on-every-board/"},{"areas":[],"breaking":false,"content_html":"\u003cp\u003eThis is for people who check where software comes from before they run it, such as a security\nteam. Nothing changes on your screens and you don\u0026#39;t need to do anything, but you can now confirm\nwith 1 command that the software on a player was built by the Anthias project itself.\u003c/p\u003e\n\u003cp\u003eAn Anthias player runs 3 containers, server, viewer and redis, pulled from GitHub Container Registry,\nwith a copy of each image on Docker Hub. From Anthias 2026.07.3, every one of those images, for every\nboard, is published with a signed build provenance attestation. It records the repository, workflow\nand commit that built the image, so you can check that an image came from the Anthias build before\nyou run it.\u003c/p\u003e\n\u003cp\u003eCheck an image with the GitHub CLI:\u003c/p\u003e\n\u003cdiv class=\"code-block\"\u003e\n  \u003cbutton type=\"button\" class=\"code-copy\" aria-label=\"Copy code\" data-copy-code\u003e\n    \u003csvg data-copy viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.75\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\n      \u003crect x=\"9\" y=\"9\" width=\"11\" height=\"11\" rx=\"2\"\u003e\u003c/rect\u003e\n      \u003cpath d=\"M5 15V5a2 2 0 0 1 2-2h10\"\u003e\u003c/path\u003e\n    \u003c/svg\u003e\n    \u003csvg data-check viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\n      \u003cpath d=\"M20 6 9 17l-5-5\"\u003e\u003c/path\u003e\n    \u003c/svg\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#d0d0d0;background-color:#202020;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egh attestation verify \u003cspan style=\"color:#ed9d13\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    oci://ghcr.io/screenly/anthias-server:\u0026lt;short-hash\u0026gt;-\u0026lt;board\u0026gt; \u003cspan style=\"color:#ed9d13\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    --repo Screenly/Anthias\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003e\u003ccode\u003e\u0026lt;board\u0026gt;\u003c/code\u003e is one of \u003ccode\u003epi2\u003c/code\u003e, \u003ccode\u003epi3\u003c/code\u003e, \u003ccode\u003epi3-64\u003c/code\u003e, \u003ccode\u003epi4-64\u003c/code\u003e, \u003ccode\u003epi5\u003c/code\u003e, \u003ccode\u003ex86\u003c/code\u003e or \u003ccode\u003earm64\u003c/code\u003e. A release\u0026#39;s short hash\nis in the \u003ccode\u003edocker-tag\u003c/code\u003e file attached to its GitHub release: for 2026.07.3 it\u0026#39;s \u003ccode\u003ea782add\u003c/code\u003e. Put\n\u003ccode\u003eanthias-viewer\u003c/code\u003e or \u003ccode\u003eanthias-redis\u003c/code\u003e in place of \u003ccode\u003eanthias-server\u003c/code\u003e to check the other 2.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003elatest-\u0026lt;board\u0026gt;\u003c/code\u003e tags point at the same images and pass the same check. So does the Docker Hub\ncopy, \u003ccode\u003eoci://docker.io/screenly/anthias-server:\u0026lt;short-hash\u0026gt;-\u0026lt;board\u0026gt;\u003c/code\u003e, because the attestation belongs\nto the image itself rather than to one registry.\u003c/p\u003e\n\u003cp\u003eImages built for earlier releases have no attestation. The disk images on the release page aren\u0026#39;t\ncovered either: check those against the \u003ccode\u003e.sha256\u003c/code\u003e file published next to each one.\u003c/p\u003e\n","description":"Every server, viewer and redis image Anthias publishes now carries a signed attestation, so one command tells you whether an image came from the Anthias repository's own build.","title":"Anthias container images come with signed build provenance","type":"release","url":"https://www.screenly.io/releases/anthias/2026.07.3/verifiable-container-images/"},{"areas":[],"breaking":false,"content_html":"\u003cp\u003eOn a Raspberry Pi 2 installed with the install script, the screen showed plain text on black while\nthe board booted, not the Anthias splash. The boot splash only waited 8 seconds for a display to\nappear, and on the Pi 2 the project tested, the display came up about 14 seconds into boot. By then\nthe splash had settled on text. It now waits up to 30 seconds, so the Anthias splash appears.\u003c/p\u003e\n\u003cp\u003eThe fix arrives when you upgrade with \u003ccode\u003ebin/run_upgrade.sh\u003c/code\u003e, which runs the installer again, and takes\neffect at the next reboot. Players installed from a disk image or Raspberry Pi Imager run balenaOS,\nwhich the installer doesn\u0026#39;t set up, so this change doesn\u0026#39;t touch them.\u003c/p\u003e\n\u003ch2 id=\"for-contributors\"\u003eFor contributors\u003c/h2\u003e\n\u003cp\u003eThe wait is \u003ccode\u003eDeviceTimeout=30\u003c/code\u003e in the Plymouth config the \u003ccode\u003esplashscreen\u003c/code\u003e Ansible role installs.\nPlymouth reads its theme and settings from the copy in the initramfs, so the role now rebuilds the\ninitramfs once, after every file is in place, instead of partway through.\u003c/p\u003e\n","description":"A Raspberry Pi 2 installed with the install script showed plain text on black while it booted. The boot splash now waits long enough for the Pi 2's display to come up, so the Anthias splash appears.","title":"The Anthias boot splash shows on a Raspberry Pi 2","type":"fix","url":"https://www.screenly.io/releases/anthias/2026.07.3/pi-2-boot-splash/"},{"areas":[],"breaking":false,"content_html":"\u003ch2 id=\"fixes\"\u003eFixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAnthias 2026.07.3 reports itself as 2026.07.3 in System Info. The previous release\n\u003ca href=\"/releases/anthias/2026.07.2/fixes-and-improvements/\"\u003ereported itself as 2026.07.1\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"improvements\"\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAn app setting that holds a date, a time or both, like the Timer app\u0026#39;s \u0026quot;Target date \u0026amp; time\u0026quot;, opens\nyour browser\u0026#39;s date and time picker instead of a text box you had to type an ISO 8601 value into.\nIt\u0026#39;s there when you add an app and when you edit one.\u003c/li\u003e\n\u003cli\u003eThe install guide and the website\u0026#39;s get-started page recommend Raspberry Pi Imager for most\npeople. The one-line install script is marked as advanced, and the guide shows how to download it\nand read it before you run it.\u003c/li\u003e\n\u003cli\u003eThe hardware table on the website\u0026#39;s get-started page lists the Raspberry Pi 3 Model A+ as not recommended: its\n512 MB of RAM is too little for Anthias. Pick a board with at least 1 GB, a Pi 3 Model B or newer.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"for-contributors\"\u003eFor contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe SBOM workflow adds an SBOM for the website\u0026#39;s dependencies, alongside the JavaScript and Python\nones, and runs for release tags only. Each SBOM is still uploaded to sbomify and attested, and is\nnow filed under its Anthias release there.\u003c/li\u003e\n\u003cli\u003eDependabot uses the \u003ccode\u003euv\u003c/code\u003e ecosystem for Python, so \u003ccode\u003euv.lock\u003c/code\u003e is updated together with\n\u003ccode\u003epyproject.toml\u003c/code\u003e, and it no longer proposes Django major upgrades in the grouped Python update.\u003c/li\u003e\n\u003cli\u003eDependencies updated, including yt-dlp and Ansible.\u003c/li\u003e\n\u003c/ul\u003e\n","description":"Anthias reports the right version in System Info, the install guide recommends Raspberry Pi Imager, and the get-started page marks the Raspberry Pi 3 Model A+ as not recommended.","title":"App settings use your browser's date and time pickers, and other improvements","type":"roundup","url":"https://www.screenly.io/releases/anthias/2026.07.3/fixes-and-improvements/"}],"json":"https://www.screenly.io/releases/anthias/2026.07.3/v1.json","product":"anthias","product_label":"Anthias","url":"https://www.screenly.io/releases/anthias/2026.07.3/","version":"2026.07.3"}],"title":"Anthias 2026.07.3","url":"https://www.screenly.io/releases/anthias/2026.07.3/","version":1}