<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>LinuxServer.io Blog</title>
  <subtitle>News, guides and release notes from the LinuxServer.io team.</subtitle>
  <link href="https://linuxserver.github.io/site/blog/" rel="alternate" type="text/html"/>
  <link href="https://linuxserver.github.io/site/blog/atom.xml" rel="self" type="application/atom+xml"/>
  <id>https://linuxserver.github.io/site/blog/</id>
  <updated>2026-09-25T16:01:00.000Z</updated>
  <entry>
    <title>Webtop 5.0 and Selkies 2.0: Everything, everywhere, all in one release</title>
    <link href="https://linuxserver.github.io/site/blog/webtop-5-0-and-selkies-2-0-everything-everywhere-all-in-one-release/" rel="alternate" type="text/html"/>
    <id>https://linuxserver.github.io/site/blog/webtop-5-0-and-selkies-2-0-everything-everywhere-all-in-one-release/</id>
    <published>2026-09-25T16:01:00.000Z</published>
    <updated>2026-09-25T16:01:00.000Z</updated>
    <summary>Let me start with the TLDR because this one is long, and I mean long even by my standards. Selkies 2.0.0 shipped on September 24th. Every LinuxServer.io Selkies based container has been rebuilt on it, along with pixelflux 2.1.0 and pcmflux 2.1.0 underneath. Five video codecs instead of one. WebRTC as a real first class transport next to our WebSockets protocol. Zero copy encoding on X11, not just…</summary>
    <category term="Docker"/>
    <category term="Self-hosted"/>
    <category term="Webtop"/>
    <category term="Remote Desktop"/>
    <category term="SealSkin"/>
    <category term="Selkies"/>
    <category term="Zero Copy"/>
    <category term="GPU Acceleration"/>
    <category term="WebRTC"/>
    <category term="Linux"/>
    <category term="Dual Monitor"/>
    <category term="WebCam"/>
  </entry>
  <entry>
    <title>Webtop 4.1: X11 is dead and what is Selkies, anyway?</title>
    <link href="https://linuxserver.github.io/site/blog/webtop-4-1-x11-is-dead-and-what-is-selkies-anyway/" rel="alternate" type="text/html"/>
    <id>https://linuxserver.github.io/site/blog/webtop-4-1-x11-is-dead-and-what-is-selkies-anyway/</id>
    <published>2026-04-28T20:14:00.000Z</published>
    <updated>2026-04-28T20:14:00.000Z</updated>
    <summary>We&apos;ve now switched our Selkies desktop containers to run in Wayland mode by default, if for any reason you want to got back just set -e PIXELFLUXWAYLAND=false as noted in the change log for each container. For x8664, Wayland mode requires a CPU with AVX2 support (Haswell or better so basically anything made past 2013), without it the server will fall back to X11 mode. The striped x264 encoder has…</summary>
    <category term="self hosted"/>
    <category term="Webtop"/>
    <category term="Remote Desktop"/>
    <category term="Selkies"/>
    <category term="Wayland"/>
    <category term="Zero Copy"/>
    <category term="GPU Acceleration"/>
  </entry>
  <entry>
    <title>Webtop 4.0: Wayland is here, engage the reality engine</title>
    <link href="https://linuxserver.github.io/site/blog/webtop-4-0-wayland-is-here-engage-the-reality-engine/" rel="alternate" type="text/html"/>
    <id>https://linuxserver.github.io/site/blog/webtop-4-0-wayland-is-here-engage-the-reality-engine/</id>
    <published>2026-01-07T19:04:00.000Z</published>
    <updated>2026-01-07T19:04:00.000Z</updated>
    <summary>Let me just start with the TLDR as I have a tendency to write too much, all of our Selkies based images can now be launched into a Wayland mode using the env var -e PIXELFLUX_WAYLAND=true or checking a box in Sealskin. This Wayland mode is an entire ground up stack leveraging a virtual framebuffer in userspace that can live on a GPU or CPU. The net result on any hardware with a GPU is a remote…</summary>
    <category term="Selkies"/>
    <category term="Wayland"/>
    <category term="Zero Copy"/>
    <category term="Smithay"/>
    <category term="Docker"/>
    <category term="WebTop"/>
    <category term="Sealskin"/>
    <category term="Linux Gaming"/>
    <category term="Remote Desktop"/>
    <category term="GPU Acceleration"/>
    <category term="Remote Browser Isolation"/>
    <category term="Self-hosted"/>
  </entry>
  <entry>
    <title>Webtop 3.0 Part 3: Putting it all together with SealSkin</title>
    <link href="https://linuxserver.github.io/site/blog/webtop-3-0-part-3-putting-it-all-together-with-sealskin/" rel="alternate" type="text/html"/>
    <id>https://linuxserver.github.io/site/blog/webtop-3-0-part-3-putting-it-all-together-with-sealskin/</id>
    <published>2025-11-21T18:35:00.000Z</published>
    <updated>2025-11-21T18:35:00.000Z</updated>
    <summary>It has been a long journey from our first experiments with Taisun to the polished desktop containers we maintain today. We started by simply trying to put a desktop in a browser. With WebTop, we refined that vision using open-source RDP and VNC technologies. Then, we integrated KasmVNC for a modern, web-first VNC experience. After that, we worked with the Selkies project to pioneer a…</summary>
    <category term="VDI"/>
    <category term="Self-hosted"/>
    <category term="Selkies Project"/>
    <category term="Webtop"/>
    <category term="Remote Desktop"/>
    <category term="SealSkin"/>
    <category term="Docker Containers"/>
    <category term="Browser OS"/>
    <category term="Linux Gaming"/>
    <category term="Cybersecurity"/>
    <category term="Collaboration"/>
    <category term="4-player splitscreen"/>
  </entry>
  <entry>
    <title>Webtop 3.0 Part 2: The Eagle Has Landed</title>
    <link href="https://linuxserver.github.io/site/blog/webtop-3-0-part-2-the-eagle-has-landed/" rel="alternate" type="text/html"/>
    <id>https://linuxserver.github.io/site/blog/webtop-3-0-part-2-the-eagle-has-landed/</id>
    <published>2025-08-21T16:56:00.000Z</published>
    <updated>2025-08-21T16:56:00.000Z</updated>
    <summary>Following the initial rollout of our new technology stack for desktop images, we have reached a significant milestone in stability. After several months of development focused on bug fixes and community-driven feature requests, we have resolved all major issues and are now shifting our focus to refining existing features and future enhancements. A critical aspect of this transition has been the…</summary>
    <category term="Selkies Project"/>
    <category term="Linux Desktop Browser"/>
    <category term="Docker Remote Desktop"/>
    <category term="Self-Hosted Applications"/>
    <category term="GPU Acceleration in Docker"/>
    <category term="WebCodecs Streaming"/>
    <category term="Low Latency Streaming"/>
    <category term="Remote Gaming on Docker"/>
    <category term="linuxserver.io Webtop"/>
    <category term="Mobile Trackpad Mode"/>
  </entry>
  <entry>
    <title>Making a Gaming Wifi Captive Portal on the Cheap - Weekend Project</title>
    <link href="https://linuxserver.github.io/site/blog/making-a-gaming-wifi-captive-portal-on-the-cheap/" rel="alternate" type="text/html"/>
    <id>https://linuxserver.github.io/site/blog/making-a-gaming-wifi-captive-portal-on-the-cheap/</id>
    <published>2025-08-15T21:47:00.000Z</published>
    <updated>2025-08-15T21:47:00.000Z</updated>
    <summary>This guide should work with most mini PCs, but the one used for this guide was purchased to test DRI3 support and performance for our internal patched XVFB. The specific model is here; it cost $120 on sale, and similar N100 or N150 builds can generally be found at this price point. This is not an affiliate link or a recommendation; optimally, you already have this type of system and want to try…</summary>
    <category term="diy"/>
    <category term="Mini PC"/>
    <category term="MAME"/>
    <category term="Gaming Server"/>
    <category term="Docker"/>
    <category term="Debian"/>
    <category term="Self-hosted"/>
    <category term="Captive Portal Wi-Fi Hotspot"/>
    <category term="LAN Party"/>
    <category term="Offline Gaming"/>
    <category term="Local Game Streaming"/>
    <category term="N100"/>
    <category term="hostapd"/>
    <category term="Selkies Project"/>
    <category term="retro gaming"/>
    <category term="Tutorial"/>
  </entry>
  <entry>
    <title>Spring Cleaning - New Images and Rebasing</title>
    <link href="https://linuxserver.github.io/site/blog/spring-cleaning-new-images-and-rebasing/" rel="alternate" type="text/html"/>
    <id>https://linuxserver.github.io/site/blog/spring-cleaning-new-images-and-rebasing/</id>
    <published>2025-06-06T21:17:00.000Z</published>
    <updated>2025-06-06T21:17:00.000Z</updated>
    <summary>We are announcing an evolution in our Docker image catalog, which includes the sunsetting of several legacy images. This focused approach allows us to concentrate our development efforts on a significantly more modern, robust, and feature-rich platform for delivering desktop applications, built in partnership with the Selkies organization. Firstly, our Rdesktop images and their corresponding…</summary>
    <category term="Selkies Docker Images"/>
    <category term="Rdesktop Docker Deprecation"/>
    <category term="EmulatorJS Docker Retirement"/>
    <category term="Web-based Linux Desktop"/>
    <category term="RetroArch Docker Image"/>
    <category term="Brave Browser Docker Image"/>
    <category term="60fps Web Desktop"/>
    <category term="Hybrid VNC Video Codec"/>
    <category term="WebCodecs Docker"/>
    <category term="Desktop Application Containers"/>
  </entry>
  <entry>
    <title>Webtop 3.0 Part 1: A Call to Action!</title>
    <link href="https://linuxserver.github.io/site/blog/webtop-3-0-part-1-a-call-to-revolutionize-web-based-linux-desktops/" rel="alternate" type="text/html"/>
    <id>https://linuxserver.github.io/site/blog/webtop-3-0-part-1-a-call-to-revolutionize-web-based-linux-desktops/</id>
    <published>2025-05-22T17:02:00.000Z</published>
    <updated>2025-05-22T17:02:00.000Z</updated>
    <summary>For years, we&apos;ve dreamed of running full-fledged Linux desktop applications seamlessly within a web browser. While solutions exist, they often come with a hefty price: sluggish performance, high server costs, or a dependency on powerful, specialized hardware. Today, we&apos;re unveiling a new approach, a hybrid VNC and Video Codec protocol, poised to change the game, and we&apos;re calling on you, the…</summary>
    <category term="Selkies Project"/>
    <category term="Linux Desktop Browser"/>
    <category term="Hybrid VNC Protocol"/>
    <category term="Open Source Remote Desktop"/>
    <category term="High Performance Streaming"/>
    <category term="Low Latency Web Desktop"/>
    <category term="CPU-Centric Remote Access"/>
    <category term="60fps Linux Streaming Efficient VNC Modern Video Codec Protocol"/>
    <category term="Pixelflux"/>
    <category term="Web-Delivered Applications"/>
  </entry>
  <entry>
    <title>Backup your data to B2 with restic and Backrest</title>
    <link href="https://linuxserver.github.io/site/blog/backup-your-data-to-b2-with-restic-and-backrest/" rel="alternate" type="text/html"/>
    <id>https://linuxserver.github.io/site/blog/backup-your-data-to-b2-with-restic-and-backrest/</id>
    <published>2025-04-19T21:00:00.000Z</published>
    <updated>2025-04-19T21:00:00.000Z</updated>
    <author><name>Josh Stark</name></author>
    <summary>If you&apos;re like me (you run a home server with varying levels of personal data on it, but you&apos;re a bit lazy) you&apos;ll probably want to set up some kind of backup routine to ensure your data has an acceptable level of redundancy. Let&apos;s ignore RAID solutions for now (which is of course a valid first port of call) and instead consider how to go about backing up your data. Let&apos;s first go over what this…</summary>
    <category term="docker"/>
    <category term="guides"/>
    <category term="backup"/>
    <category term="restic"/>
  </entry>
  <entry>
    <title>Docker Security Practices</title>
    <link href="https://linuxserver.github.io/site/blog/docker-security-practices/" rel="alternate" type="text/html"/>
    <id>https://linuxserver.github.io/site/blog/docker-security-practices/</id>
    <published>2025-02-18T23:25:00.000Z</published>
    <updated>2025-02-18T23:25:00.000Z</updated>
    <author><name>Quietsy</name></author>
    <summary>Follow these practices to secure containers</summary>
    <category term="containers"/>
    <category term="docker"/>
    <category term="how to"/>
    <category term="security"/>
  </entry>
  <entry>
    <title>Introducing Linuxserver API</title>
    <link href="https://linuxserver.github.io/site/blog/introducing-linuxserver-api/" rel="alternate" type="text/html"/>
    <id>https://linuxserver.github.io/site/blog/introducing-linuxserver-api/</id>
    <published>2025-02-13T12:53:00.000Z</published>
    <updated>2025-02-13T12:53:00.000Z</updated>
    <author><name>Quietsy</name></author>
    <summary>Use our API to get information about our images</summary>
    <category term="how to"/>
    <category term="news"/>
    <category term="images"/>
  </entry>
  <entry>
    <title>Securing SWAG</title>
    <link href="https://linuxserver.github.io/site/blog/securing-swag/" rel="alternate" type="text/html"/>
    <id>https://linuxserver.github.io/site/blog/securing-swag/</id>
    <published>2025-02-05T20:48:00.000Z</published>
    <updated>2025-02-05T20:48:00.000Z</updated>
    <author><name>Quietsy</name></author>
    <summary>How to secure SWAG and prevent malicious activity</summary>
    <category term="guide"/>
    <category term="vpn"/>
    <category term="nginx"/>
    <category term="fail2ban"/>
    <category term="linuxserver"/>
    <category term="security"/>
    <category term="swag"/>
  </entry>
  <entry>
    <title>Updated: We Need To Talk About Docker Hub</title>
    <link href="https://linuxserver.github.io/site/blog/we-need-to-talk-about-docker-hub/" rel="alternate" type="text/html"/>
    <id>https://linuxserver.github.io/site/blog/we-need-to-talk-about-docker-hub/</id>
    <published>2025-01-24T19:30:00.000Z</published>
    <updated>2025-01-24T19:30:00.000Z</updated>
    <summary>We Need To Talk About Docker Hub</summary>
    <category term="docker"/>
    <category term="open source"/>
    <category term="linuxserver"/>
    <category term="docker hub"/>
  </entry>
  <entry>
    <title>Introducing Modcache and Modmanager</title>
    <link href="https://linuxserver.github.io/site/blog/introducing-modcache-and-modmanager/" rel="alternate" type="text/html"/>
    <id>https://linuxserver.github.io/site/blog/introducing-modcache-and-modmanager/</id>
    <published>2025-01-06T14:00:00.000Z</published>
    <updated>2025-01-06T14:00:00.000Z</updated>
    <author><name>Spad</name></author>
    <summary>If you&apos;re the kind of smart arse who already knows how our Docker mods work under the hood, you can skip the next section, but if not then I&apos;m afraid it&apos;s necessary reading to properly understand what follows it. Our Docker mods are a workaround for a common problem with container images: how to cater to everyone. Images are immutable, and people have different requirements, so what do you do if…</summary>
    <category term="containers"/>
    <category term="docker"/>
    <category term="linuxserver"/>
    <category term="mods"/>
    <category term="images"/>
  </entry>
  <entry>
    <title>New and Improved For 2025</title>
    <link href="https://linuxserver.github.io/site/blog/new-and-improved-for-2025/" rel="alternate" type="text/html"/>
    <id>https://linuxserver.github.io/site/blog/new-and-improved-for-2025/</id>
    <published>2024-12-16T15:00:00.000Z</published>
    <updated>2024-12-16T15:00:00.000Z</updated>
    <author><name>Spad</name></author>
    <summary>As we approach the end of the year we thought we would take the opportunity to take a look back at some of the things we&apos;ve achieved in 2024 and how they benefit you now and in 2025. A lot of the changes we make to our pipelines and images take a while to actually reach end users, both because of the time it takes for us to roll them out across our fleet and because some users don&apos;t regularly…</summary>
    <category term="docker"/>
    <category term="news"/>
    <category term="linuxserver"/>
    <category term="sbom"/>
    <category term="slsa"/>
  </entry>
  <entry>
    <title>Better Practices For Docker Networking</title>
    <link href="https://linuxserver.github.io/site/blog/better-practices-for-docker-networking/" rel="alternate" type="text/html"/>
    <id>https://linuxserver.github.io/site/blog/better-practices-for-docker-networking/</id>
    <published>2024-10-08T13:00:00.000Z</published>
    <updated>2024-10-08T13:00:00.000Z</updated>
    <author><name>Spad</name></author>
    <summary>Many years ago we wrote a blog post on Docker networks and how to use them, but that was 2017 and this is now so surely everything has changed? Well, not really, but at lot of this stuff is abstracted away by management interfaces and people don&apos;t understand what&apos;s going on behind the scenes so they make bad decisions that come back to haunt them 6 months down the line. With that in mind we&apos;re…</summary>
    <category term="docker"/>
    <category term="how to"/>
    <category term="networking"/>
  </entry>
  <entry>
    <title>Own Up, Which One of You Broke The Website?</title>
    <link href="https://linuxserver.github.io/site/blog/own-up-which-one-of-you-broke-the-website/" rel="alternate" type="text/html"/>
    <id>https://linuxserver.github.io/site/blog/own-up-which-one-of-you-broke-the-website/</id>
    <published>2024-09-23T14:30:00.000Z</published>
    <updated>2024-09-23T14:30:00.000Z</updated>
    <author><name>Spad</name></author>
    <summary>Our infrastructure can be broadly split into three categories: Public Facing, Internal, and Builders.The latter should be pretty self-explanatory and are a mix of amd64 and aarch64 boxes that build all our images. Internal services include things like our wiki, monitoring and metrics, automation, Discord bots, etc. The bulk of our public facing services - our website, Discourse forums, Fleet…</summary>
    <category term="docker"/>
    <category term="compose"/>
    <category term="digitalocean"/>
    <category term="infrastructure"/>
  </entry>
  <entry>
    <title>Why Can&apos;t You Just Implement &lt;Thing I Want&gt;?</title>
    <link href="https://linuxserver.github.io/site/blog/why-cant-you-just-implement-thing-i-want/" rel="alternate" type="text/html"/>
    <id>https://linuxserver.github.io/site/blog/why-cant-you-just-implement-thing-i-want/</id>
    <published>2024-06-15T15:56:00.000Z</published>
    <updated>2024-06-15T15:56:00.000Z</updated>
    <summary>It&apos;s a common refrain: &quot;Why can&apos;t you just implement this feature that would make my life easier? It&apos;s not even that hard, it&apos;s just this environment variable or this bit of init logic. There are lots of people just like me who would benefit from it.&quot; It should be pretty obvious that we can&apos;t implement every feature request we receive, but the important question is why didn&apos;t we implement yours?…</summary>
    <category term="containers"/>
    <category term="docker"/>
    <category term="linuxserver"/>
  </entry>
  <entry>
    <title>Advanced Wireguard Hub</title>
    <link href="https://linuxserver.github.io/site/blog/advanced-wireguard-hub/" rel="alternate" type="text/html"/>
    <id>https://linuxserver.github.io/site/blog/advanced-wireguard-hub/</id>
    <published>2023-11-16T11:50:00.000Z</published>
    <updated>2023-11-16T11:50:00.000Z</updated>
    <author><name>Quietsy</name></author>
    <summary>In a couple of prior articles (here and here) we showcased the capabilities of our WireGuard Docker container with some real world examples. At the time, our WireGuard container only supported one active tunnel at a time so the second article resorted to using multiple WireGuard containers running on the same host and using the host&apos;s routing tables to do advanced routing between and through…</summary>
    <category term="linux"/>
    <category term="docker"/>
    <category term="guides"/>
    <category term="how to"/>
    <category term="vpn"/>
    <category term="wireguard"/>
    <category term="routing"/>
    <category term="split tunnel"/>
    <category term="mullvad"/>
  </entry>
  <entry>
    <title>Our Support Policy</title>
    <link href="https://linuxserver.github.io/site/blog/our-support-policy/" rel="alternate" type="text/html"/>
    <id>https://linuxserver.github.io/site/blog/our-support-policy/</id>
    <published>2023-10-26T11:00:00.000Z</published>
    <updated>2023-10-26T11:00:00.000Z</updated>
    <author><name>Spad</name></author>
    <summary>We maintain a lot of images, which are used by a lot of people, on a lot of platforms, using a lot of tools, and it&apos;s not always immediately clear which of those many combinations we support, and will provide support for. This post is an attempt to clarify that situation and provide links to our formal documentation on the matter. Any exceptions to our support policy will be clearly called out in…</summary>
    <category term="docker"/>
    <category term="linuxserver"/>
    <category term="support"/>
    <category term="policy"/>
  </entry>
</feed>
