Download LinuxDoors v1.14

Hot off the build. A hybrid Linux distribution: install from fast prebuilt zips, or flip a switch and build any package from real source instead.

Download linuxdoors.iso (4.71 GB)

125 downloads so far

linuxdoors.iso is a 4.71 GB BIOS+UEFI hybrid ISO -- boots straight to a working XFCE desktop with real networking, a text editor, and two real web browsers built from source (Firefox and ungoogled-chromium). Default login: linuxdoors / linuxdoors (root is also linuxdoors) and relax knowing that ssh is off upon first boot though you may turn on at any time for networking convienence.

SHA-256: c81a1c92f24dbb041df12bc6e401b1c13116ae90a4389a975a0cdce8d03c1dee

Hybrid, by design

Compiled zips are the default. Source builds are one switch away.

LinuxDoors is built from Linux From Scratch and BLFS, by hand, package by package -- and every package keeps its own build script and pinned source tarball around after it's built, not just the finished binary. That means every install here can go one of two ways: take the small prebuilt zip (fast, the default), or toggle source mode and have that exact package compiled fresh on your own machine instead, live, using the same script LinuxDoors itself used.

How a source build works

Live today, right from LinuxDoors' own package manager. The short version:

Everything compiles on your own LinuxDoors computer, never on our servers -- linuxdoors.com never reaches into your machine, and it never runs code on your behalf. When you toggle "build from source" on a package, your computer requests a single-use, short-lived key from linuxdoors.com, then uses it to open an outbound connection back to us and download that package's exact build script and pinned source code (the same ones this whole distribution was built from) -- the key is only good for that one file transfer and expires within minutes either way. Your computer then compiles it itself, inside an isolated sandbox account, the same way LinuxDoors compiles its own packages -- never touching your real system directly until the finished result is ready to install.

Version history

Every real milestone, in order.

v1.14

FlashPhoto, FlashZip and FlashScp built in

Three more of the LinuxDoors apps now come with the image, installed as real packages rather than downloads: FlashPhoto (a fast photo viewer and editor that crops a JPEG without re-encoding it), FlashZip (an archive manager for zip and the tar family, with 7z when a 7z tool is present), and FlashScp (a two-pane scp-over-SSH file transfer GUI). They appear in the Applications menu and, because they are installed as packages, the pkg command and the LinuxDoors Package Manager both list them as installed and can update or remove them. The Qt runtime they share (Qt 6 + PySide6) is now part of the base image too, so any other Qt app from the Packages page installs without pulling a few hundred megabytes first. Boot-tested under KVM: graphical.target active, zero failed units, all three launch, and pkg reports them installed.

v1.13

LinuxMovieMaker built in

LinuxMovieMaker -- the LinuxDoors video editor -- is now part of the image and on the desktop, no download needed. This is build 2: the editing window stays responsive while you scrub and drag timeline clips (frames are composed on a background thread now), playback reads from a compose-ahead buffer so a slow decode never freezes the preview, the picture is timed from the sound so it stays in step across a cut, pressing Play from a moved playhead no longer snaps the timeline back, and exporting composes frames across every CPU core (byte-for-byte the same file as before; set LMM_EXPORT_WORKERS=1 to opt out). It runs straight from /opt/linuxmoviemaker with its own Python, Qt and ffmpeg, and its editing sound works out of the box (the Kerberos, PulseAudio, libsndfile and ffmpeg libraries Qt's media stack needs all travel with it now). Boot-tested under KVM: kernel 7.2.3, graphical.target active, zero failed units, and LinuxMovieMaker launches from the shipped image.

v1.12

Desktop fixes: GNOME logout, Budgie, MATE login

Built on the 1.11.6 package refresh, with a round of real desktop bug fixes. GNOME is now a normal Xorg session managed by the login screen instead of one that spun up its own private X server -- logging out of GNOME no longer leaves the mouse and keyboard dead at the login screen. On Budgie, Log Out now actually ends the session, desktop icons default to double-click (a double-click had been opening two windows of everything), and a new "Click to open" single/double toggle was added to LinuxDoors Desktop Selections. The MATE session's own runtime libraries are back in the image (an over-eager trim of install-only packages had broken MATE login while leaving XFCE fine), and a stray failed x2go service unit is gone. Boot-tested under KVM: kernel 7.2.3, graphical.target active, zero failed units.

v1.11.6

Core package refresh: kernel 7.2.3, Mesa 26.2.2, Vulkan 1.4.357

A from-source update pass across the low-level stack: the Linux kernel to the 7.2.3 stable point release (bug and security fixes), Mesa to 26.2.2 (graphics driver fixes), the Vulkan headers and loader from 1.4.304 to 1.4.357, and wayland-protocols to 1.49. Everything else in the tree was checked against upstream and is already current (Firefox 153.2.0esr, ungoogled-chromium 152.0.7977.82, OpenSSL 4.0.2, curl 8.22.0, SQLite 3.53.4, Node.js 24.20.0, systemd 261.2, and the rest). Boot-tested under KVM: graphical.target active, zero failed units.

v1.11.5

Fixed: dead mouse/keyboard at the login screen

On real hardware (and in a VM) the graphical login screen had no working mouse or keyboard — the X server was looking for its input drivers in one directory while they were installed in another, so no pointer or keyboard driver could load. (Remote x2go sessions were unaffected, which is why it only showed up on the local console.) The X server now searches both locations and the login screen accepts input normally. Boot-tested under KVM: graphical.target active, zero failed units, greeter takes mouse + keyboard.

v1.11.4

Networking, optional-desktop installs, SSH + desktop-tool fixes

Fixed: a fresh install now gets working DHCP networking on any machine (the previous image had its wired-network config pinned to one specific network-card name, so it came up with no network on most hardware). Fixed: installing an optional desktop — LXQt, Cinnamon or KDE Plasma — from the Packages page now correctly pulls in its Qt/KDE base libraries instead of producing a session that will not start. The root-password desktop tools (Installer, Package Manager, Network Settings, Make Secure, Manage SSH) always get a usable X display now, and OpenSSH is built with PAM so SSH logins create real login sessions and root password login over SSH works again. LXQt and Cinnamon are installable from the Packages page and deliberately NOT bundled in the ISO. Boot-tested under KVM: graphical.target active, zero failed units; LXQt verified installing and launching from a clean image.

v1.11.3

Security library updates: curl, poppler, harfbuzz

Three core libraries refreshed to their current upstream releases: curl 8.22.0 (HTTP/TLS networking), poppler 26.09.0 (PDF rendering — a common target for document-parsing vulnerabilities), and HarfBuzz 14.4.0 (text shaping). Also fixed a broken "Manage Printing" menu entry that pointed at a helper program that was never installed. Boot-tested under KVM: graphical.target active, zero failed units. Everything else in the package set was checked against upstream and is current or ahead (Firefox is on the newest ESR track, GIMP is current, and the Linux From Scratch core is tracked to 13.1).

v1.11.2

Chromium security fix, GNOME over remote desktop working, live resolution changes

ungoogled-chromium updated to 152.0.7977.82, fixing a critical, actively-exploited V8 type-confusion vulnerability (CVE-2026-85046). Also: GNOME sessions over the bundled remote-desktop server now genuinely work end to end -- previously they either failed to start or showed a black screen, caused by two separate underlying issues (the X server transport lacked modern input/display-resizing support, and SSH sessions were not getting a real login session set up), both fixed at the source. GNOME also gained a real Displays settings panel for changing screen resolution, and a screen-resolution choice made there now correctly carries over the next time you log back in. Boot-tested under KVM: graphical.target active, zero failed units.

v1.11.1

KDE Plasma 6.7.4 desktop packages

A full KDE Plasma 6.7.4 desktop is now on the <a href="/packages">Packages</a> page as a working session — Plasma Workspace, plasma-desktop, System Settings, KScreen, PowerDevil, Milou, the Breeze theme and the Plasma library stack, all compiled from real KDE source against LinuxDoors’ own Qt 6.11 and KDE Frameworks 6.29 (about thirty packages). Not bundled in the ISO — install it like any other package and it adds a “Plasma (X11)” entry to the login screen. Getting the shell to launch needed a Plasma-side null guard in ScreenPool, the KF6 QML/plugin search paths pointed at /usr/lib, and startplasma-x11 wrapped so it always has a session D-Bus bus. The Wayland compositor is not built yet — KWin’s Vulkan backend needs a GCC 15 / std::expected toolchain LinuxDoors has not moved to. No change to the bundled ISO.

v1.11.0

Software OpenGL fallback + login-screen fixes

Mesa is now built with llvmpipe, a real software-OpenGL renderer (GL 4.5). Before this, LinuxDoors only had the old softpipe path, so any machine without a working hardware GL driver — nouveau on many NVIDIA cards, or a VM without GPU passthrough — could not run a modern GL desktop at all. This is also what lets the optional GNOME 48 desktop (from the Packages page) actually render. Two login-screen fixes ride along: /etc/shells is now shipped, so installing GNOME (which brings in accountsservice) no longer empties the greeter user list; and polkit / gsettings-desktop-schemas now ship their GObject-Introspection data. No change to the bundled app set (Firefox 153.2.0esr, ungoogled-chromium, LFS 13.1, kernel 7.2.2). Boot-tested under KVM: graphical.target active, zero failed units, MATE / XFCE / both browsers intact.

v1.10.9

Readable GRUB menu + safer installer

Two fixes on the 1.10.8 base (same package set — Firefox 153.2.0esr, LFS 13.1, kernel 7.2.2). The boot menu now loads a font before switching to graphical mode, so the GRUB screen shows real text instead of placeholder boxes. And "LinuxDoors Install" now erases the target disk properly before installing: it refuses to touch a disk that is mounted or in use, then does a full discard + wipefs + zeroes the start and end of the disk (killing any stale partition table, filesystem, or backup GPT), and lays down a GPT layout — so drives larger than 2 TB are used in full instead of being silently capped. Boot-tested under KVM: graphical.target active, zero failed units.

v1.10.8

Firefox 153.2.0esr

The bundled Firefox is rebuilt from source to the current ESR, 153.1.0esr → 153.2.0esr — a security and stability update on the same extended-support line. The ffmpeg compatibility patch carried for 153.1 is no longer needed and was dropped. firefox --version confirmed 153.2.0esr in the built image; boot-tested with zero failed units. This image also carries the ten Linux From Scratch 13.1 package updates from 1.10.7.

v1.10.7

Core packages tracked up to Linux From Scratch 13.1

Ten base-system packages rebuilt from source to match the LFS 13.1 (systemd) package set: Bash 5.2.32 → 5.3, Vim 9.2.0858 → 9.2.1025, Meson 1.11.2 → 1.12.0, setuptools 83.0.0 → 84.0.0, wheel 0.47.0 → 0.48.0, procps-ng 4.0.6 → 4.0.7, Shadow 4.20.0 → 4.20.2, libffi 3.7.1 → 3.8.0, Expat 2.8.2 → 2.8.3, and iana-etc 20260723 → 20260805. Every one was smoke-tested on the build host — shell, editor, build tooling, ctypes/libffi, XML parsing, the login/passwd stack and the C/C++ toolchain all verified before the image was cut. GCC stays at 14 (LFS 13.1 moves to GCC 16, a system-wide rebuild held for a later pass). Boot-tested with zero failed units.

v1.10.6

PostgreSQL 18.6 and pgAdmin 4 — new packages

Four new installable packages (Databases category): PostgreSQL 18.6, built from source against LinuxDoors's own OpenSSL / ICU / readline (PL/Python, PL/Perl, PL/Tcl and the standard contrib modules included); and pgAdmin 4 9.17, from source on Python 3.14 — pgadmin4-server (the web app), pgadmin4-desktop (a native PySide6 + QtWebEngine window, not Electron, with real file dialogs and a runtime config), and pgadmin4-web (a gunicorn service). Install them from the Packages page or the LinuxDoors Package Manager. These are not bundled in the ISO — the linuxdoors.iso download is unchanged from 1.10.5.

v1.10.5

Core packages updated from source

Six packages rebuilt from their latest upstream source: the Linux kernel 7.2 → 7.2.2, OpenSSL 4.0.1 → 4.0.2, Node.js 24.19 → 24.20, Mesa 26.1.3 → 26.2.1, libaom 3.14.1 → 3.15.0, and Rust 1.97.1 → 1.98.0. Every kernel config fix carries forward and was re-verified against the fresh 7.2.2 source (USB-boot drivers, NVMe, the Intel I226 NIC, Nouveau, the full firewall/netfilter set, sched_ext, zstd squashfs). Boot-tested with zero failed units. Also in this build: the LinuxDoors Package Manager's root-password box now shows readable dark text instead of white-on-white.

v1.10.4

Desktop icon rename

The "Install LinuxDoors" desktop icon (the one on the desktop itself, separate from the Applications menu entry renamed in 1.10.3) is now "LinuxDoors Install" too. The installer program's own window is left as it was.

v1.10.3

Naming tidy-up

The built-in desktop tools are renamed to read name-first and consistently: "Network Settings LinuxDoors" becomes "LinuxDoors Network Settings", "Install LinuxDoors" becomes "LinuxDoors Install", and "Make Secure LinuxDoors" becomes "LinuxDoors Make Secure" -- matching LinuxDoors Package Manager, LinuxDoors Desktop Selections, and the rest.

v1.10.2

Creative apps: GIMP, LazPaint, Audacity, Shotcut, Kdenlive

Five real creative applications are now available as downloadable packages -- GIMP 3.2.4 and LazPaint 7.3 for image editing, Audacity 3.7.8 for audio, and Shotcut 26.8 and Kdenlive 26.08 for video. Each is built entirely from source on LinuxDoors and installs with all of its dependencies resolved automatically. They are deliberately NOT bundled in the ISO -- the download stays lean and you add only what you want -- so getting here meant building a lot of new toolchain as packages too: a Free Pascal / Lazarus compiler chain for LazPaint; ffmpeg 7.1.5 (H.264/5, VP9, AV1, Opus, MP3), the MLT 7.40 video engine, frei0r effects and SDL2 for Shotcut; and for Kdenlive, Qt 6.11 plus 39 KDE Frameworks 6 libraries, KDDockWidgets, OpenTimelineIO and Imath. ffmpeg now ships ffplay, and MLT can load Lottie animations, so Kdenlive's own startup check comes back clean. Two fixes ride along: GTK3 apps (GIMP included) no longer crash on launch inside an x2go remote session -- x2go's display server lacks an XRender gradient call GTK3 needs, so x2go sessions now render client-side -- and installing any app package now refreshes the Applications menu immediately, so a newly installed program shows up under Graphics or Sound & Video without logging out first.

v1.10.1

Ungoogled Chromium 152 + MATE System Monitor

Ungoogled Chromium is rebased from 151.0.7922.173 to 152.0.7977.64, picking up the current upstream Chromium security fixes -- still built entirely from source on LinuxDoors itself, telemetry and Google services stripped. Getting 152 to compile took two real fixes: Chromium 152 added an always-on Rust CBOR parser our prebuilt-Rust toolchain can't satisfy, so the C++ CBOR path is forced back on; and the build host's C startup objects had drifted out of sync with its own C library, quietly crashing every Rust build step until they were refreshed. Verified on real hardware: reports Chromium 152.0.7977.64 and renders pages both as a normal user and as root. This release also adds MATE System Monitor for the MATE desktop -- a process, resource, and filesystem viewer with live CPU / memory / network graphs. It is pure C++/gtkmm, so the whole GNOME C++ binding stack (mm-common, libsigc++, glibmm, cairomm, pangomm, atkmm, gtkmm, libgtop) was built from source alongside it -- eight new packages, all also installable on their own. The ISO is rebuilt with both.

v1.10

Clock, network settings, and a tidier desktop

On the optional MATE desktop, opening the clock's Preferences no longer crashes it -- the world-locations data it reads is now shipped uncompressed so it always loads. Network Settings LinuxDoors stops guessing your DNS: pick a provider (Verizon FiOS, Google, Cloudflare, OpenDNS) from a dropdown to fill the fields, or type your own, and the address fields are now dark-on-white instead of hard-to-read. The Welcome and Other Notes files move into a hidden ~/.linuxdoors folder and open through a launcher that uses your chosen editor; Desktop Selections gains a third panel for picking that editor (Pluma, Mousepad, gedit, ...); and every desktop launcher is now marked trusted, so double-clicking one no longer throws an "untrusted / may be a binary file" prompt. Two more desktop fixes: XFCE no longer shows a duplicate Trash icon (the MATE-only Home/Computer/Trash launchers are hidden from XFCE, which has its own), and the door wallpaper now also applies on the MATE desktop, not just XFCE -- with a red variant for the root account.

v1.9

Desktop Selections: choose your file manager and browser

A new "LinuxDoors Desktop Selections" app lets each user pick, for their session, which file manager the desktop uses (Thunar or, on the optional MATE desktop, Caja) and which browser opens web links (Firefox or Ungoogled Chromium) -- and it reads the live setting, so it stays in step with a browser's own "make default" button. The optional MATE desktop gains a working "Computer" icon via a minimal from-source GVfs build. Two real bugs fixed along the way: installing certain packages could wipe the system file-type database and break icon loading in every GTK app -- package installs now rebuild it automatically -- and Firefox and Ungoogled Chromium finally have proper Applications-menu icons (Firefox had shipped with none).

v1.8

Real PC support: boots and installs off a USB stick, no VM required

Every earlier build had only ever been verified in a virtual machine. This release fixes what real hardware actually needs: USB host-controller and keyboard drivers built directly into the kernel (a VM's virtual disk needs none of this, which hid the gap), a boot-device search that dynamically finds the right drive instead of guessing a fixed list of names, real Nvidia and Intel ethernet drivers in place of the old QEMU-only ones, and NVMe support built in so an installed system can find its own root filesystem with no VM disk emulation to lean on. Verified for real: booted from a physical USB drive, installed to a real NVMe SSD, and rebooted into a working XFCE desktop -- all on ordinary PC hardware, zero failed services.

v1.7

Chromium security rebase: 151.0.7922.173, faster builds

A further security rebase (7 more fixes per Google's own release notes), and the first LinuxDoors build produced on a new, much faster 24-core build machine -- the same 56,000-target Chromium compile that used to take hours now finishes in under 3.

v1.6

Chromium security rebase: 151.0.7922.169

A real, hand-verified rebase onto Chromium 151.0.7922.169, fixing two Critical sandbox-escape RCEs (a WebGL heap buffer overflow and a Dawn/WebGPU buffer overflow) plus a High-severity CORS issue and about a dozen more fixes. The ungoogled-chromium patch set was verified to apply cleanly against the newer source before the real build ever started.

v1.5

Real, from-source ungoogled Chromium

A second full browser, this time ungoogled Chromium -- telemetry and Google services stripped, built entirely from source with our own from-scratch Clang and Rust toolchains rather than Google's prebuilt binaries. Roughly 56,000 real compile targets, verified with zero build errors.

v1.4

Firefox, Chrome*, net-tools

A full LLVM + Rust toolchain, built specifically to compile real, unmodified Firefox from source -- plus the classic net-tools (netstat/route/arp/...) alongside iproute2. (*Chrome itself is proprietary and not source-buildable; Chromium was considered and set aside in favor of completing real Firefox first.)

v1.3

Network: DHCP, ping works

Found and fixed the real bug: systemd-networkd had no .network file telling it to manage any interface. A generic Type=ether/DHCP=yes config brought up real DHCP, a real default route, and working DNS resolution.

v1.2

NetSurf (no network)

A real, lightweight web browser (NetSurf) and the Mousepad text editor, both built from source with no Rust toolchain required. Still no working network.

v1.1

First working distribution with XFCE (no network)

A full minimal XFCE4 desktop -- X11, Mesa, GTK3, lightdm, the XFCE4 core apps -- boot-verified with zero failed systemd units. Networking not wired up yet.

v1.0

First working live ISO

The very first LinuxDoors boot -- hand-built from Linux From Scratch (systemd edition), verified end to end in QEMU: kernel, initramfs, squashfs+overlay root, systemd, and a real login.