<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Anthias 2026.05.0 | Screenly</title><description>The first Anthias release with calendar versions brings a redesigned web interface that works on a phone, schedules by day and time, HTTPS, and support for Raspberry Pi OS Trixie. If you set a password on 0.20.5 or earlier, set it again right after upgrading.</description><link>https://www.screenly.io/releases/anthias/2026.05.0/</link><language>en</language><atom:link href="https://www.screenly.io/releases/anthias/2026.05.0/rss.xml" rel="self" type="application/rss+xml"/><lastBuildDate>Fri, 08 May 2026 00:00:00 +0000</lastBuildDate><item><title>Anthias 2026.05.0: A redesigned web interface</title><link>https://www.screenly.io/releases/anthias/2026.05.0/new-web-interface/</link><guid isPermaLink="true">https://www.screenly.io/releases/anthias/2026.05.0/new-web-interface/</guid><pubDate>Fri, 08 May 2026 00:00:00 +0000</pubDate><category>release</category><description>&lt;p&gt;The Anthias web interface has a new design in Anthias 2026.05.0, and it works on a phone: every page fits a small screen, and the menu folds into a button. The Schedule, Integrations, Settings and System info pages, the sign-in and error pages, and the splash screen on the player&amp;#39;s display all look different. The web interface also no longer loads a font from Google Fonts, so it looks the same on a network with no internet access.&lt;/p&gt;
&lt;h2 id="the-schedule-page"&gt;The Schedule page&lt;/h2&gt;
&lt;p&gt;The two lists are now called &amp;quot;Enabled&amp;quot; and &amp;quot;Inactive&amp;quot;. The separate Start and End columns become one &amp;quot;Schedule window&amp;quot; column that says where each item stands: &amp;quot;Live · ends in 3 days&amp;quot;, &amp;quot;Starts in 2 days&amp;quot;, &amp;quot;Ended 4 days ago&amp;quot;, or &amp;quot;Scheduled · off-window now&amp;quot; when a &lt;a href="https://www.screenly.io/releases/anthias/2026.05.0/schedule-by-day-and-time/"&gt;day or time limit&lt;/a&gt; keeps it off the screen at the moment.&lt;/p&gt;
&lt;p&gt;You can preview any item from the Schedule page. Images and videos play right there, and web pages and streams load inside the preview. Some sites won&amp;#39;t load inside another page; for those, use &amp;quot;Open in new tab&amp;quot;.&lt;/p&gt;
&lt;p&gt;When you edit an item, its start, end and duration are under &amp;quot;Availability&amp;quot;. Days and times, &amp;quot;No cache&amp;quot;, &amp;quot;Skip asset check&amp;quot; and, for web pages, the auto-refresh interval are under &amp;quot;Advanced&amp;quot;.&lt;/p&gt;
&lt;h2 id="the-splash-screen"&gt;The splash screen&lt;/h2&gt;
&lt;p&gt;The splash screen says &amp;quot;Detecting network…&amp;quot; until the player has an address. Then it switches to &amp;quot;Ready to manage&amp;quot;, lists the addresses to open in a browser, and shows a QR code for the first one, so you can open the web interface by scanning it with a phone. The old splash screen looked up the addresses once and showed &amp;quot;Unable to retrieve IP.&amp;quot; if none had come up yet. This one keeps checking for up to 2 minutes, so a player that&amp;#39;s slow to get an address shows it as soon as it has one. In this release it could still show the address saved at install time after the network changed; &lt;a href="https://www.screenly.io/releases/anthias/2026.05.1/fixes-and-improvements/"&gt;Anthias 2026.05.1&lt;/a&gt; fixes that.&lt;/p&gt;
&lt;h2 id="settings-and-system-info"&gt;Settings and System info&lt;/h2&gt;
&lt;p&gt;Settings is split into &amp;quot;Player identity&amp;quot;, &amp;quot;Display &amp;amp; playback&amp;quot;, &amp;quot;Authentication&amp;quot;, &amp;quot;Backup &amp;amp; restore&amp;quot; and &amp;quot;System controls&amp;quot;. System info is grouped into &amp;quot;Live diagnostics&amp;quot;, &amp;quot;Display &amp;amp; hardware&amp;quot; and &amp;quot;Identity&amp;quot;.&lt;/p&gt;</description></item><item><title>Anthias 2026.05.0: Content can play only on certain days and at certain times</title><link>https://www.screenly.io/releases/anthias/2026.05.0/schedule-by-day-and-time/</link><guid isPermaLink="true">https://www.screenly.io/releases/anthias/2026.05.0/schedule-by-day-and-time/</guid><pubDate>Fri, 08 May 2026 00:00:00 +0000</pubDate><category>release</category><description>&lt;p&gt;A lunch menu that should only run from 11:30am to 2pm, a promotion for weekdays, a notice for the Monday morning shift: in Anthias 2026.05.0, each piece of content can be limited to certain days of the week and a window of the day, on top of the start and end dates it already had. Content without these limits plays as before.&lt;/p&gt;
&lt;p&gt;To set them, edit the content on the Schedule page and open &amp;quot;Advanced&amp;quot;. Tick the days it should play, then fill in &amp;quot;Play from&amp;quot; and &amp;quot;Play until&amp;quot;. With the default 12-hour clock in Settings, saving a time window from the web interface failed with an error until &lt;a href="https://www.screenly.io/releases/anthias/2026.06.3/fixes-and-improvements/"&gt;Anthias 2026.06.3&lt;/a&gt;; the API and the 24-hour clock weren&amp;#39;t affected. Leave both times empty to play all day. The Schedule page marks content that&amp;#39;s outside its window right now as &amp;quot;Scheduled · off-window now&amp;quot;.&lt;/p&gt;
&lt;h2 id="how-the-times-work"&gt;How the times work&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Times follow the player&amp;#39;s time zone.&lt;/li&gt;
&lt;li&gt;&amp;quot;Play until&amp;quot; is the first minute the content is off. A window from 9:00am to 5:00pm stops at 5:00pm.&lt;/li&gt;
&lt;li&gt;A window that ends before it starts runs past midnight. Friday from 10:00pm to 2:00am plays on Friday night and into Saturday morning. The days you tick are the days a window starts on.&lt;/li&gt;
&lt;li&gt;The player checks the windows about once a minute, so content comes on and goes off within a minute of its window opening and closing.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="for-developers"&gt;For developers&lt;/h2&gt;
&lt;p&gt;On API v2, assets have 3 new fields. &lt;code&gt;play_days&lt;/code&gt; is a list of weekday numbers from 1 (Monday) to 7 (Sunday), and defaults to all 7. An empty list is rejected. &lt;code&gt;play_time_from&lt;/code&gt; and &lt;code&gt;play_time_to&lt;/code&gt; take a time such as &lt;code&gt;09:00:00&lt;/code&gt;, or &lt;code&gt;null&lt;/code&gt;, and have to be set together. Only API v2 has these fields.&lt;/p&gt;</description></item><item><title>Anthias 2026.05.0: Upgrading from Anthias 0.20.5 or earlier switches off the web interface password</title><link>https://www.screenly.io/releases/anthias/2026.05.0/password-not-carried-over/</link><guid isPermaLink="true">https://www.screenly.io/releases/anthias/2026.05.0/password-not-carried-over/</guid><pubDate>Fri, 08 May 2026 00:00:00 +0000</pubDate><category>security</category><description>&lt;p&gt;If you turned on authentication on Anthias 0.20.5 or earlier, the web interface stops asking for a password once you upgrade to 2026.05.0. Set a new password right after the upgrade.&lt;/p&gt;
&lt;p&gt;Anthias 2026.05.0 keeps the username and password in the player&amp;#39;s database instead of in the &lt;code&gt;[auth_basic]&lt;/code&gt; section of the config file. Anthias 0.20.5 and earlier saved the password in a format the new sign-in can&amp;#39;t read, and it can&amp;#39;t be converted without the password itself. So when the upgrade finds one, it removes the &lt;code&gt;[auth_basic]&lt;/code&gt; section from &lt;code&gt;~/.anthias/anthias.conf&lt;/code&gt;, switches authentication off and logs this line, which you can read with &lt;code&gt;journalctl -t anthias-server&lt;/code&gt;:&lt;/p&gt;
&lt;div class="code-block"&gt;
&lt;button type="button" class="code-copy" aria-label="Copy code" data-copy-code&gt;
&lt;svg data-copy viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"&gt;
&lt;rect x="9" y="9" width="11" height="11" rx="2"&gt;&lt;/rect&gt;
&lt;path d="M5 15V5a2 2 0 0 1 2-2h10"&gt;&lt;/path&gt;
&lt;/svg&gt;
&lt;svg data-check viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"&gt;
&lt;path d="M20 6 9 17l-5-5"&gt;&lt;/path&gt;
&lt;/svg&gt;
&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#d0d0d0;background-color:#202020;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Insecure password hash in /data/.anthias/anthias.conf; clearing credentials and disabling basic auth. Re-set the password from the Settings page.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;If you turned on authentication on Anthias 0.20.5 or earlier:&lt;/strong&gt; after upgrading, open Settings, go to &amp;quot;Authentication&amp;quot;, choose &amp;quot;Basic auth&amp;quot; under &amp;quot;Method&amp;quot;, enter a username and a new password, and select &amp;quot;Save settings&amp;quot;. Until you do, anyone who can reach the player on your network can use the web interface.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The new password has to be at least 8 characters, can&amp;#39;t be a commonly used password or only numbers, and can&amp;#39;t be too close to the username.&lt;/p&gt;
&lt;p&gt;If authentication was off before the upgrade, it stays off. Any username and password left in the config file are removed, so you choose new ones when you turn it on.&lt;/p&gt;
&lt;h2 id="for-developers"&gt;For developers&lt;/h2&gt;
&lt;p&gt;Scripts that call the API with HTTP Basic credentials keep working with the new username and password. Each use is logged as a &lt;code&gt;DEPRECATED&lt;/code&gt; warning, at most once an hour for each user, client address and path, and the warning says HTTP Basic will be removed in a future release.&lt;/p&gt;</description></item><item><title>Anthias 2026.05.0: Anthias moves to calendar versions, starting with 2026.05.0</title><link>https://www.screenly.io/releases/anthias/2026.05.0/calendar-versions/</link><guid isPermaLink="true">https://www.screenly.io/releases/anthias/2026.05.0/calendar-versions/</guid><pubDate>Fri, 08 May 2026 00:00:00 +0000</pubDate><category>release</category><description>&lt;p&gt;Anthias releases are now numbered by the calendar: the year, a two-digit month and a patch number. 2026.05.0 is the first, and it follows 0.20.5. You&amp;#39;ll see the new number on System info, and the update notice now only appears when a newer release has been published.&lt;/p&gt;
&lt;p&gt;Its git tag is &lt;code&gt;v2026.05.0&lt;/code&gt;. To pin a player to it, choose &amp;quot;tag&amp;quot; at the installer&amp;#39;s version prompt and enter &lt;code&gt;v2026.05.0&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="the-version-and-the-update-notice"&gt;The version and the update notice&lt;/h2&gt;
&lt;p&gt;On System info, &amp;quot;Anthias version&amp;quot; shows the release, such as &lt;code&gt;v2026.05.0&lt;/code&gt;, with the short commit hash in brackets under it. It used to show the branch and the commit, such as &lt;code&gt;master@a1b2c3d&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&amp;quot;Update available&amp;quot; appears next to the version when a newer release has been published, and links to the latest release on GitHub. The player looks for a new release once a day. Before, Anthias compared your commit with the newest commit on your branch, so a player installed from &lt;code&gt;master&lt;/code&gt; was told to update after any change landed there, release or not. The notice is no longer in the navigation bar, where people had complained on the forum since 2025 that it never went away. From July 2026, when the newest release on GitHub was a WebView release, the check failed on players older than &lt;a href="https://www.screenly.io/releases/anthias/2026.07.1/fixes-and-improvements/"&gt;Anthias 2026.07.1&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="for-developers"&gt;For developers&lt;/h2&gt;
&lt;p&gt;In &lt;code&gt;GET /api/v2/info&lt;/code&gt;, &lt;code&gt;anthias_version&lt;/code&gt; changes from &lt;code&gt;branch@hash&lt;/code&gt;, such as &lt;code&gt;master@a1b2c3d&lt;/code&gt;, to the release followed by the short hash in brackets: &lt;code&gt;v2026.05.0 (a1b2c3d)&lt;/code&gt;. On a branch other than &lt;code&gt;master&lt;/code&gt; or &lt;code&gt;main&lt;/code&gt;, the branch name follows the hash: &lt;code&gt;v2026.05.0 (a1b2c3d, my-branch)&lt;/code&gt;. &lt;code&gt;up_to_date&lt;/code&gt; now compares the player&amp;#39;s release with the latest published release.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;If a script reads &lt;code&gt;anthias_version&lt;/code&gt;:&lt;/strong&gt; it no longer contains &lt;code&gt;@&lt;/code&gt;. Take the release from the text before the first space, and the commit hash from inside the brackets.&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Anthias 2026.05.0: Anthias supports Raspberry Pi OS Trixie</title><link>https://www.screenly.io/releases/anthias/2026.05.0/raspberry-pi-os-trixie/</link><guid isPermaLink="true">https://www.screenly.io/releases/anthias/2026.05.0/raspberry-pi-os-trixie/</guid><pubDate>Fri, 08 May 2026 00:00:00 +0000</pubDate><category>release</category><description>&lt;p&gt;Anthias 2026.05.0 installs and runs on Raspberry Pi OS Trixie (Debian 13) as well as Bookworm, which people had asked for since Trixie came out in 2025. The README&amp;#39;s compatibility list, which used to warn that Trixie wasn&amp;#39;t supported, now names both for every board:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Raspberry Pi 5, 4 and 3: 64-bit Trixie and Bookworm&lt;/li&gt;
&lt;li&gt;Raspberry Pi 2: 32-bit Trixie and Bookworm&lt;/li&gt;
&lt;li&gt;x86 PCs: 64-bit Trixie and Bookworm&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bullseye, and 32-bit Raspberry Pi OS on the Raspberry Pi 3 and 4, are no longer on the list.&lt;/p&gt;
&lt;h2 id="the-containers"&gt;The containers&lt;/h2&gt;
&lt;p&gt;Whatever the host runs, the containers are now built on Debian Trixie with Python 3.13. The Raspberry Pi images used to start from Balena&amp;#39;s Bookworm-based images. On the Raspberry Pi 4, the viewer now uses the Qt 6 build of the WebView and plays video with mpv, the same as on the Raspberry Pi 5 and x86. The Raspberry Pi 2 and 3 stay on Qt 5 and VLC.&lt;/p&gt;
&lt;h2 id="raspberry-pi-1-zero-and-the-32-bit-raspberry-pi-4"&gt;Raspberry Pi 1, Zero and the 32-bit Raspberry Pi 4&lt;/h2&gt;
&lt;p&gt;Images are built for the Raspberry Pi 2, 3, 4 (64-bit) and 5 and x86, and balenaOS disk images for the 4 Raspberry Pi boards. The installer stops on a Raspberry Pi 1 or any Zero with &amp;quot;Unsupported Raspberry Pi model&amp;quot;, and installs the 64-bit images on every Raspberry Pi 4.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;If you run Anthias on a Raspberry Pi 1, a Zero, or a Raspberry Pi 4 with 32-bit Raspberry Pi OS:&lt;/strong&gt; there&amp;#39;s no Anthias 2026.05.0 for the Raspberry Pi 1 or the Zero, so keep those on 0.20.5. Before you upgrade a Raspberry Pi 4, run &lt;code&gt;dpkg --print-architecture&lt;/code&gt; on it. If it prints &lt;code&gt;armhf&lt;/code&gt; rather than &lt;code&gt;arm64&lt;/code&gt;, reinstall it with 64-bit Raspberry Pi OS first.&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Anthias 2026.05.0: Uploads accept HEIC, TIFF and other image and video formats</title><link>https://www.screenly.io/releases/anthias/2026.05.0/upload-formats/</link><guid isPermaLink="true">https://www.screenly.io/releases/anthias/2026.05.0/upload-formats/</guid><pubDate>Fri, 08 May 2026 00:00:00 +0000</pubDate><category>release</category><description>&lt;p&gt;Upload a photo straight from an iPhone or a video from a camera, and Anthias 2026.05.0 converts it into something the player can show.&lt;/p&gt;
&lt;h2 id="images"&gt;Images&lt;/h2&gt;
&lt;p&gt;These image formats are converted to lossless WebP when you upload them: HEIC and HEIF (what iPhones save photos as), TIFF, BMP, ICO, TGA, JPEG 2000 and AVIF. A converted image can be up to 50 megapixels. JPEG, PNG, WebP, GIF and SVG are kept as they are.&lt;/p&gt;
&lt;h2 id="videos"&gt;Videos&lt;/h2&gt;
&lt;p&gt;Every uploaded video is checked, and converted when the player can&amp;#39;t play it as it is. A video plays as it is when:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;its file is MP4, M4V, MKV, MOV, WebM, TS, MPG, MPEG, FLV or AVI&lt;/li&gt;
&lt;li&gt;its audio is AAC, MP3, Opus, Vorbis or AC3, or it has none&lt;/li&gt;
&lt;li&gt;its video is H.264, or HEVC on a Raspberry Pi 4, Raspberry Pi 5 or x86 PC&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Anything else is converted to H.264 on a Raspberry Pi 2 or 3, and to HEVC on the other boards. A conversion that takes longer than 30 minutes stops and fails.&lt;/p&gt;
&lt;p&gt;YouTube links you add with &amp;quot;From URL&amp;quot; are downloaded as video and go through the same check.&lt;/p&gt;
&lt;h2 id="while-it-converts"&gt;While it converts&lt;/h2&gt;
&lt;p&gt;New content shows &amp;quot;Processing&amp;quot; on the Schedule page until it&amp;#39;s ready. If the file can&amp;#39;t be converted, it shows &amp;quot;Failed&amp;quot; and is switched off, so it never reaches the screen. Edit or delete it, or upload a fixed file.&lt;/p&gt;
&lt;p&gt;Conversion runs at the lowest CPU and disk priority on the player, so playback keeps going while a large video is processed.&lt;/p&gt;
&lt;h2 id="for-developers"&gt;For developers&lt;/h2&gt;
&lt;p&gt;On API v2, assets have a read-only &lt;code&gt;metadata&lt;/code&gt; field. After a failed conversion, &lt;code&gt;metadata.error_message&lt;/code&gt; says what went wrong.&lt;/p&gt;</description></item><item><title>Anthias 2026.05.0: Web pages on the screen can reload on a timer</title><link>https://www.screenly.io/releases/anthias/2026.05.0/webpage-auto-refresh/</link><guid isPermaLink="true">https://www.screenly.io/releases/anthias/2026.05.0/webpage-auto-refresh/</guid><pubDate>Fri, 08 May 2026 00:00:00 +0000</pubDate><category>release</category><description>&lt;p&gt;A web page on the screen can now reload itself, so a dashboard or a status page that doesn&amp;#39;t update on its own stays current while it&amp;#39;s showing.&lt;/p&gt;
&lt;p&gt;To turn it on, edit the web page on the Schedule page, open &amp;quot;Advanced&amp;quot; and fill in &amp;quot;Auto-refresh interval (seconds)&amp;quot;. The field is only there for web pages. Leave it empty or enter 0 to switch it off, which is the default. The longest interval is 86400 seconds, which is 24 hours.&lt;/p&gt;
&lt;h2 id="for-developers"&gt;For developers&lt;/h2&gt;
&lt;p&gt;On API v2, assets have a &lt;code&gt;refresh_interval_s&lt;/code&gt; field, an integer from 0 to 86400, where 0 means off. You can set it when you create or update a web page, and it comes back when you read one.&lt;/p&gt;</description></item><item><title>Anthias 2026.05.0: The web interface can run over HTTPS</title><link>https://www.screenly.io/releases/anthias/2026.05.0/https-web-interface/</link><guid isPermaLink="true">https://www.screenly.io/releases/anthias/2026.05.0/https-web-interface/</guid><pubDate>Fri, 08 May 2026 00:00:00 +0000</pubDate><category>release</category><description>&lt;p&gt;From Anthias 2026.05.0, one script on the player puts its web interface behind HTTPS, so signing in and managing content stay private on a network you share with others.&lt;/p&gt;
&lt;p&gt;Run it on the player in one of 3 ways:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;~/anthias/bin/enable_ssl.sh&lt;/code&gt; uses a certificate the player issues itself. It works when you reach the player by its IP address on a local network, and browsers warn about the certificate until you trust it.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;~/anthias/bin/enable_ssl.sh --domain signage.example.com&lt;/code&gt; gets a certificate from Let&amp;#39;s Encrypt and renews it. The domain has to point at the player, and Let&amp;#39;s Encrypt has to be able to reach it on port 80. Add &lt;code&gt;--email&lt;/code&gt; with your address for Let&amp;#39;s Encrypt&amp;#39;s notices, or &lt;code&gt;--staging&lt;/code&gt; to try it against Let&amp;#39;s Encrypt&amp;#39;s test service first.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;~/anthias/bin/enable_ssl.sh --cert cert.pem --key key.pem&lt;/code&gt; uses a certificate and key you already have.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With HTTPS on, the web interface answers on port 443, and port 80 redirects to it. If the player runs a firewall, open port 443, for example with &lt;code&gt;sudo ufw allow 443/tcp&lt;/code&gt;. To go back to plain HTTP on port 80, run &lt;code&gt;~/anthias/bin/disable_ssl.sh&lt;/code&gt;. It keeps the certificate, so turning HTTPS on again reuses it.&lt;/p&gt;
&lt;p&gt;HTTPS runs in an extra container, &lt;code&gt;anthias-caddy&lt;/code&gt;, which only exists while it&amp;#39;s on. Upgrades keep it running.&lt;/p&gt;
&lt;h2 id="if-you-ran-enable_sslsh-before"&gt;If you ran enable_ssl.sh before&lt;/h2&gt;
&lt;p&gt;Earlier versions had a script with the same name, but it has done nothing since Anthias 0.18.4: it finished and printed that you could reach the web interface at https://, while the player kept serving it over plain HTTP on port 80. If you ran it on 0.18.4 or later, your web interface was never on HTTPS. Run the new script after upgrading to turn it on.&lt;/p&gt;</description></item><item><title>Anthias 2026.05.0: Anthias runs fewer containers, and its folders are renamed to anthias</title><link>https://www.screenly.io/releases/anthias/2026.05.0/fewer-containers-and-anthias-folders/</link><guid isPermaLink="true">https://www.screenly.io/releases/anthias/2026.05.0/fewer-containers-and-anthias-folders/</guid><pubDate>Fri, 08 May 2026 00:00:00 +0000</pubDate><category>improvement</category><description>&lt;p&gt;Upgrading to Anthias 2026.05.0 changes what runs on the player and where its files live. The installer and the upgrade script make every change for you. This is what you&amp;#39;ll see afterward, and what to update if your own scripts or firewall rules depend on the old layout.&lt;/p&gt;
&lt;h2 id="fewer-containers"&gt;Fewer containers&lt;/h2&gt;
&lt;p&gt;Anthias 0.20.5 ran &lt;code&gt;anthias-server&lt;/code&gt;, &lt;code&gt;anthias-viewer&lt;/code&gt;, &lt;code&gt;anthias-celery&lt;/code&gt;, &lt;code&gt;anthias-websocket&lt;/code&gt;, &lt;code&gt;anthias-nginx&lt;/code&gt;, &lt;code&gt;anthias-wifi-connect&lt;/code&gt; and &lt;code&gt;redis&lt;/code&gt;. Anthias 2026.05.0 runs &lt;code&gt;anthias-server&lt;/code&gt;, &lt;code&gt;anthias-viewer&lt;/code&gt;, &lt;code&gt;anthias-celery&lt;/code&gt; and &lt;code&gt;redis&lt;/code&gt;, and the upgrade script removes the containers that are gone. &lt;code&gt;anthias-server&lt;/code&gt; serves the web interface itself, still on port 80. &lt;code&gt;anthias-celery&lt;/code&gt; runs on the &lt;code&gt;anthias-server&lt;/code&gt; image, so an upgrade downloads one image fewer.&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://www.screenly.io/releases/anthias/2026.05.0/wifi-connect-hotspot-removed/"&gt;Wi-Fi Connect hotspot&lt;/a&gt; went with its container.&lt;/p&gt;
&lt;h2 id="folders-and-files-renamed"&gt;Folders and files renamed&lt;/h2&gt;
&lt;p&gt;The folders and files named after Screenly are renamed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;~/screenly&lt;/code&gt; is now &lt;code&gt;~/anthias&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;~/screenly_assets&lt;/code&gt; is now &lt;code&gt;~/anthias_assets&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;~/.screenly&lt;/code&gt; is now &lt;code&gt;~/.anthias&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;screenly.conf&lt;/code&gt; and &lt;code&gt;screenly.db&lt;/code&gt; inside it are now &lt;code&gt;anthias.conf&lt;/code&gt; and &lt;code&gt;anthias.db&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The paths inside &lt;code&gt;anthias.conf&lt;/code&gt; are rewritten to match. The old names stay behind as symlinks for now, so cron jobs, backups and scripts that use them keep working, but switch them to the new names.&lt;/p&gt;
&lt;h2 id="only-anthias39s-own-files-belong-in-anthias_assets"&gt;Only Anthias&amp;#39;s own files belong in &lt;code&gt;~/anthias_assets&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Every hour, Anthias deletes any file directly inside &lt;code&gt;~/anthias_assets&lt;/code&gt; that no content item uses, once it&amp;#39;s more than an hour old. If you keep other files there, move them somewhere else before you upgrade.&lt;/p&gt;
&lt;h2 id="images-come-from-ghcrio"&gt;Images come from ghcr.io&lt;/h2&gt;
&lt;p&gt;The player pulls &lt;code&gt;ghcr.io/screenly/anthias-server&lt;/code&gt;, &lt;code&gt;anthias-viewer&lt;/code&gt; and &lt;code&gt;anthias-redis&lt;/code&gt; instead of the &lt;code&gt;screenly/anthias-*&lt;/code&gt; images on Docker Hub. The Docker Hub images are still published as a mirror, but players don&amp;#39;t use them. If your network only allows certain registries, allow &lt;code&gt;ghcr.io&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="container-logs-go-to-the-journal"&gt;Container logs go to the journal&lt;/h2&gt;
&lt;p&gt;Each container&amp;#39;s logs go to the host&amp;#39;s journal instead of Docker&amp;#39;s own log files, so they follow the journal&amp;#39;s size limits and rotation, and can no longer fill the storage the way a single viewer log file could. Raspberry Pi OS keeps the journal in memory, so these logs don&amp;#39;t survive a reboot there. Read them with &lt;code&gt;journalctl -t anthias-server&lt;/code&gt;, or with &lt;code&gt;anthias-viewer&lt;/code&gt;, &lt;code&gt;anthias-celery&lt;/code&gt; or &lt;code&gt;anthias-redis&lt;/code&gt; in its place.&lt;/p&gt;</description></item><item><title>Anthias 2026.05.0: The Wi-Fi Connect hotspot is removed</title><link>https://www.screenly.io/releases/anthias/2026.05.0/wifi-connect-hotspot-removed/</link><guid isPermaLink="true">https://www.screenly.io/releases/anthias/2026.05.0/wifi-connect-hotspot-removed/</guid><pubDate>Fri, 08 May 2026 00:00:00 +0000</pubDate><category>removed</category><description>&lt;p&gt;A player that starts without an internet connection no longer opens its own Wi-Fi network for you to set it up from a phone. If that&amp;#39;s how you get players onto Wi-Fi, you&amp;#39;ll need a keyboard or an Ethernet connection to do it from Anthias 2026.05.0 on.&lt;/p&gt;
&lt;p&gt;Anthias 2026.05.0 removes Wi-Fi Connect. On Anthias 0.20.5, a player that started without an internet connection opened a Wi-Fi network called &amp;quot;Anthias WiFi Connect&amp;quot; and showed setup steps on the screen, so you could join that network from a phone and pick the player&amp;#39;s Wi-Fi. After the upgrade, that network no longer appears. The upgrade removes the &lt;code&gt;anthias-wifi-connect&lt;/code&gt; container and the &lt;code&gt;wifi-connect.service&lt;/code&gt; unit on the host.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;If you set up Wi-Fi through the Anthias WiFi Connect network:&lt;/strong&gt; connect a keyboard, or SSH in over Ethernet, and join the network with &lt;code&gt;nmtui&lt;/code&gt; or &lt;code&gt;nmcli&lt;/code&gt;. Both come with NetworkManager, which the installer sets up when you answer yes to &amp;quot;Would you like Anthias to manage the network for you?&amp;quot;.&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Anthias 2026.05.0: Web pages on the screen no longer show a days-old copy, and other fixes</title><link>https://www.screenly.io/releases/anthias/2026.05.0/fixes-and-improvements/</link><guid isPermaLink="true">https://www.screenly.io/releases/anthias/2026.05.0/fixes-and-improvements/</guid><pubDate>Fri, 08 May 2026 00:00:00 +0000</pubDate><category>roundup</category><description>&lt;h2 id="fixes"&gt;Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Web pages on the screen show their current version. The player used to keep a copy of each page on its storage and could show it for days after the page changed. Now it only keeps copies until the viewer restarts. People reported this on the forum as far back as 2023.&lt;/li&gt;
&lt;li&gt;Videos on a Raspberry Pi 4 or 5 connected to a 4K display play at 1920x1080 at 60 Hz. A Raspberry Pi 5 used to play them in the display&amp;#39;s 4K mode, which is more than the board can keep up with, so video stuttered.&lt;/li&gt;
&lt;li&gt;The &amp;quot;Audio output&amp;quot; setting applies to video on the Raspberry Pi 4, Raspberry Pi 5 and x86 PCs. On the Raspberry Pi 5 and x86, video used to ignore it.&lt;/li&gt;
&lt;li&gt;Web pages no longer flash white before they draw.&lt;/li&gt;
&lt;li&gt;Shorter blank gap between videos on a Raspberry Pi 2 or 3.&lt;/li&gt;
&lt;li&gt;YouTube links that downloaded but then played as a blank screen now play, with an updated yt-dlp.&lt;/li&gt;
&lt;li&gt;A YouTube video that fails to download shows &amp;quot;Failed&amp;quot; and is switched off, instead of looking ready with no video behind it.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="improvements"&gt;Improvements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;On a 4K display, web pages are scaled up 2x so they look the same size as on a 1080p display, and wider displays get 3x or 4x. To pick your own scale, set &lt;code&gt;QT_SCALE_FACTOR&lt;/code&gt; in the &lt;code&gt;anthias-viewer&lt;/code&gt; container&amp;#39;s environment.&lt;/li&gt;
&lt;li&gt;A new &lt;code&gt;splash_logo_url&lt;/code&gt; setting under &lt;code&gt;[main]&lt;/code&gt; in &lt;code&gt;~/.anthias/anthias.conf&lt;/code&gt; puts your own logo on the splash screen.&lt;/li&gt;
&lt;li&gt;Web page and stream links are checked in the background every 15 minutes instead of before every play, so a slow or unreachable link no longer holds up the rotation. A link that gets skipped is checked again within about a minute. On API v2, assets report the result in &lt;code&gt;is_reachable&lt;/code&gt; and &lt;code&gt;last_reachability_check&lt;/code&gt;. Until &lt;a href="https://www.screenly.io/releases/anthias/2026.07.0/fixes-and-improvements/"&gt;Anthias 2026.07.0&lt;/a&gt;, this check marked links on your local network, such as an intranet page, a NAS or another container on the player, as unreachable and skipped them.&lt;/li&gt;
&lt;li&gt;Anthias&amp;#39;s anonymous usage event goes out at most once a day, under a random device ID, and now reports the branch and commit, the board and hardware model, whether the player runs balenaOS, the configured resolution, the &amp;quot;Audio output&amp;quot; setting, the &lt;code&gt;use_ssl&lt;/code&gt; setting, and how many images, videos and web pages are enabled. Set &lt;code&gt;analytics_opt_out = True&lt;/code&gt; under &lt;code&gt;[main]&lt;/code&gt; in &lt;code&gt;~/.anthias/anthias.conf&lt;/code&gt; to turn it off.&lt;/li&gt;
&lt;li&gt;The installer sets up its own tools with uv in a temporary folder that it deletes when it finishes, so it no longer creates &lt;code&gt;~/installer_venv&lt;/code&gt;. You can delete one left by an earlier install.&lt;/li&gt;
&lt;li&gt;The images no longer carry the X11 libraries or a set of unused Python packages.&lt;/li&gt;
&lt;li&gt;The documentation moved from the repository&amp;#39;s &lt;code&gt;docs&lt;/code&gt; folder to anthias.screenly.io, with a new API reference and FAQ.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="for-contributors"&gt;For contributors&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The web interface is built with Django templates, HTMX and Alpine.js instead of a React app, and its frontend builds with Bun in place of webpack and npm.&lt;/li&gt;
&lt;li&gt;Python code lives under &lt;code&gt;src/&lt;/code&gt;, in &lt;code&gt;anthias_server&lt;/code&gt;, &lt;code&gt;anthias_viewer&lt;/code&gt; and &lt;code&gt;anthias_common&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Python dependencies are declared as dependency groups in &lt;code&gt;pyproject.toml&lt;/code&gt; and installed with uv, replacing the per-service requirements files.&lt;/li&gt;
&lt;li&gt;The Python tests run with pytest and pytest-django, browser tests use Playwright, and CI runs mypy in strict mode.&lt;/li&gt;
&lt;li&gt;The server and the viewer exchange messages over Redis, on the &lt;code&gt;anthias.viewer&lt;/code&gt; channel, instead of ZeroMQ.&lt;/li&gt;
&lt;li&gt;The WebView binary is now &lt;code&gt;AnthiasWebview&lt;/code&gt;, built for the Raspberry Pi 2, 3, 4 (64-bit) and 5 and x86, and its releases are tagged &lt;code&gt;WebView-vYYYY.MM.PATCH&lt;/code&gt;. Anthias 2026.05.0 ships WebView 2026.05.0.&lt;/li&gt;
&lt;li&gt;CI builds the images for the same boards and pushes them to ghcr.io, with Docker Hub as a best-effort mirror. Base images come from &lt;code&gt;mirror.gcr.io&lt;/code&gt; and the Bun image from &lt;code&gt;ghcr.io/screenly/bun&lt;/code&gt;, to stay clear of Docker Hub rate limits.&lt;/li&gt;
&lt;li&gt;SBOMs are versioned by commit on &lt;code&gt;master&lt;/code&gt; and by tag on releases.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Dependencies and build tooling were updated throughout, including a Debian Trixie base, Python 3.13 and Django 5.2 LTS.&lt;/p&gt;</description></item></channel></rss>