Releases: Perkybeet/noust
Release list
Noust v3.3.1
Changes in v3.3.1
- Sudo mode lasts while you work and asks for one factor; pending SSH and firewall changes show their proof; sudoers read as sudo reads it; install hints for this distribution; every fix hint names a real command; loading states on every page
Installation
Noust was called WASM until 3.0.0. wasm remains a command alias for the whole 3.x series, and existing installations upgrade in place: see docs/RENAME.md.
Ubuntu/Debian
curl -fsSL https://download.opensuse.org/repositories/home:Perkybeet/xUbuntu_26.04/Release.key | sudo gpg --dearmor -o /usr/share/keyrings/noust.gpg
echo "deb [signed-by=/usr/share/keyrings/noust.gpg] https://download.opensuse.org/repositories/home:Perkybeet/xUbuntu_26.04/ /" | sudo tee /etc/apt/sources.list.d/noust.list
sudo apt update && sudo apt install noustFedora
sudo dnf config-manager addrepo --from-repofile=https://download.opensuse.org/repositories/home:Perkybeet/Fedora_43/home:Perkybeet.repo
sudo dnf install noustFrom PyPI
pip install noustThe central, as a container (a NAS or any Docker host)
docker pull ghcr.io/perkybeet/noust:3.3.1Noust v3.3.0
Changes in v3.3.0
- Databases as they really are: containers, engines that refuse Noust, detected links, engine versions and settings, exposure without false alarms, Compose stacks running outside their unit
Installation
Noust was called WASM until 3.0.0. wasm remains a command alias for the whole 3.x series, and existing installations upgrade in place: see docs/RENAME.md.
Ubuntu/Debian
curl -fsSL https://download.opensuse.org/repositories/home:Perkybeet/xUbuntu_26.04/Release.key | sudo gpg --dearmor -o /usr/share/keyrings/noust.gpg
echo "deb [signed-by=/usr/share/keyrings/noust.gpg] https://download.opensuse.org/repositories/home:Perkybeet/xUbuntu_26.04/ /" | sudo tee /etc/apt/sources.list.d/noust.list
sudo apt update && sudo apt install noustFedora
sudo dnf config-manager addrepo --from-repofile=https://download.opensuse.org/repositories/home:Perkybeet/Fedora_43/home:Perkybeet.repo
sudo dnf install noustFrom PyPI
pip install noustThe central, as a container (a NAS or any Docker host)
docker pull ghcr.io/perkybeet/noust:3.3.0Noust v3.2.1
Changes in v3.2.1
- A Compose stack with the zero-downtime relay is no longer read as blue/green units: it showed as Stopped and its start or restart named units that do not exist
- The Compose unit never pulls images when it starts: a boot recreated the database with whatever its image tag had become
- Informative enabled/disabled labels read as small badges, and a loading spinner keeps turning (slower) under reduced motion
Installation
Noust was called WASM until 3.0.0. wasm remains a command alias for the whole 3.x series, and existing installations upgrade in place: see docs/RENAME.md.
Ubuntu/Debian
curl -fsSL https://download.opensuse.org/repositories/home:Perkybeet/xUbuntu_26.04/Release.key | sudo gpg --dearmor -o /usr/share/keyrings/noust.gpg
echo "deb [signed-by=/usr/share/keyrings/noust.gpg] https://download.opensuse.org/repositories/home:Perkybeet/xUbuntu_26.04/ /" | sudo tee /etc/apt/sources.list.d/noust.list
sudo apt update && sudo apt install noustFedora
sudo dnf config-manager addrepo --from-repofile=https://download.opensuse.org/repositories/home:Perkybeet/Fedora_43/home:Perkybeet.repo
sudo dnf install noustFrom PyPI
pip install noustThe central, as a container (a NAS or any Docker host)
docker pull ghcr.io/perkybeet/noust:3.2.1Noust v3.2.0
Changes in v3.2.0
- Docker Compose deploys properly: pre/post-deploy hooks from noust.yaml, zero-downtime relay, adopting a running stack, stack database dumps before each update, operator sites respected, aliases and certificates
- Schema-aware rollback: going back past a deployment that changed the database asks first, on every way back
- Deploy by tags and GitHub releases; Prisma migrations that fail now abort the update
- The web server at a glance: lossless nginx/Apache analyzer, structured editor, animated diagram and Try a URL; config tests run in the live nginx.conf
- Investigate a chart's stretch: journal, audit, deployments, monitor findings and the busiest processes per minute
- Jobs in transient units survive a console restart; notifications when an application stops answering
- Sandboxed builds by default after a trial build; per-app system accounts for new applications
- Security: git never runs as root in a tree another account owns; compose privileges cannot be gained through adopt or an update; site analysis and config tests cannot read or leak host files
- Owner items 53-64: image removal, time zone selector, processes table, feature states, headless workers, fleet job logs, chart interactions
Installation
Noust was called WASM until 3.0.0. wasm remains a command alias for the whole 3.x series, and existing installations upgrade in place: see docs/RENAME.md.
Ubuntu/Debian
curl -fsSL https://download.opensuse.org/repositories/home:Perkybeet/xUbuntu_26.04/Release.key | sudo gpg --dearmor -o /usr/share/keyrings/noust.gpg
echo "deb [signed-by=/usr/share/keyrings/noust.gpg] https://download.opensuse.org/repositories/home:Perkybeet/xUbuntu_26.04/ /" | sudo tee /etc/apt/sources.list.d/noust.list
sudo apt update && sudo apt install noustFedora
sudo dnf config-manager addrepo --from-repofile=https://download.opensuse.org/repositories/home:Perkybeet/Fedora_43/home:Perkybeet.repo
sudo dnf install noustFrom PyPI
pip install noustThe central, as a container (a NAS or any Docker host)
docker pull ghcr.io/perkybeet/noust:3.2.0Noust v3.1.17
Changes in v3.1.17
- A rollback to a backup (console or CLI) now rebuilds with the application's recorded type and passes the same health gate as a deploy; before, a static site built by Astro was restored without its dist/ and the rollback reported success while every page answered 404
- A deploy or update keeps a web server site Noust did not write (no 'Generated by Noust' marker) instead of replacing it with its template
- The suggested command for pending security updates is 'noust server updates apply --security-only'
Installation
Noust was called WASM until 3.0.0. wasm remains a command alias for the whole 3.x series, and existing installations upgrade in place: see docs/RENAME.md.
Ubuntu/Debian
curl -fsSL https://download.opensuse.org/repositories/home:Perkybeet/xUbuntu_26.04/Release.key | sudo gpg --dearmor -o /usr/share/keyrings/noust.gpg
echo "deb [signed-by=/usr/share/keyrings/noust.gpg] https://download.opensuse.org/repositories/home:Perkybeet/xUbuntu_26.04/ /" | sudo tee /etc/apt/sources.list.d/noust.list
sudo apt update && sudo apt install noustFedora
sudo dnf config-manager addrepo --from-repofile=https://download.opensuse.org/repositories/home:Perkybeet/Fedora_43/home:Perkybeet.repo
sudo dnf install noustFrom PyPI
pip install noustThe central, as a container (a NAS or any Docker host)
docker pull ghcr.io/perkybeet/noust:3.1.17Noust v3.1.16
Changes in v3.1.16
- Updating Noust from the console or the fleet no longer leaves a failed 'Update Noust' job behind when the update succeeded: the restarted console follows the update's own record and records how it really ended
Installation
Noust was called WASM until 3.0.0. wasm remains a command alias for the whole 3.x series, and existing installations upgrade in place: see docs/RENAME.md.
Ubuntu/Debian
curl -fsSL https://download.opensuse.org/repositories/home:Perkybeet/xUbuntu_26.04/Release.key | sudo gpg --dearmor -o /usr/share/keyrings/noust.gpg
echo "deb [signed-by=/usr/share/keyrings/noust.gpg] https://download.opensuse.org/repositories/home:Perkybeet/xUbuntu_26.04/ /" | sudo tee /etc/apt/sources.list.d/noust.list
sudo apt update && sudo apt install noustFedora
sudo dnf config-manager addrepo --from-repofile=https://download.opensuse.org/repositories/home:Perkybeet/Fedora_43/home:Perkybeet.repo
sudo dnf install noustFrom PyPI
pip install noustThe central, as a container (a NAS or any Docker host)
docker pull ghcr.io/perkybeet/noust:3.1.16Noust v3.1.15
Changes in v3.1.15
- The health gate (activation, rollback, migration, limits) and noust env migrate find an application's unit when its row lacks the legacy wasm- prefix the installed unit still has; before, the gate restarted a unit that did not exist
- noust env migrate refuses a unit outside the managed directory with a message instead of a traceback
Installation
Noust was called WASM until 3.0.0. wasm remains a command alias for the whole 3.x series, and existing installations upgrade in place: see docs/RENAME.md.
Ubuntu/Debian
curl -fsSL https://download.opensuse.org/repositories/home:Perkybeet/xUbuntu_26.04/Release.key | sudo gpg --dearmor -o /usr/share/keyrings/noust.gpg
echo "deb [signed-by=/usr/share/keyrings/noust.gpg] https://download.opensuse.org/repositories/home:Perkybeet/xUbuntu_26.04/ /" | sudo tee /etc/apt/sources.list.d/noust.list
sudo apt update && sudo apt install noustFedora
sudo dnf config-manager addrepo --from-repofile=https://download.opensuse.org/repositories/home:Perkybeet/Fedora_43/home:Perkybeet.repo
sudo dnf install noustFrom PyPI
pip install noustThe central, as a container (a NAS or any Docker host)
docker pull ghcr.io/perkybeet/noust:3.1.15Noust v3.1.14
Changes in v3.1.14
- noust env migrate keeps the .env's value for build-time variables (NEXT_PUBLIC_, VITE_, REACT_APP_*...) when the unit had another: builds inlined the .env's, so it is the one in use
- noust env migrate keeps the previous .env under the state directory (env-migrations/, root only) and says where
- The noust.inline_secrets check no longer reports Noust's own units or a Compose stack's COMPOSE_FILE
Installation
Noust was called WASM until 3.0.0. wasm remains a command alias for the whole 3.x series, and existing installations upgrade in place: see docs/RENAME.md.
Ubuntu/Debian
curl -fsSL https://download.opensuse.org/repositories/home:Perkybeet/xUbuntu_26.04/Release.key | sudo gpg --dearmor -o /usr/share/keyrings/noust.gpg
echo "deb [signed-by=/usr/share/keyrings/noust.gpg] https://download.opensuse.org/repositories/home:Perkybeet/xUbuntu_26.04/ /" | sudo tee /etc/apt/sources.list.d/noust.list
sudo apt update && sudo apt install noustFedora
sudo dnf config-manager addrepo --from-repofile=https://download.opensuse.org/repositories/home:Perkybeet/Fedora_43/home:Perkybeet.repo
sudo dnf install noustFrom PyPI
pip install noustThe central, as a container (a NAS or any Docker host)
docker pull ghcr.io/perkybeet/noust:3.1.14Noust v3.1.13
Changes in v3.1.13
- Applications created with WASM 1.x carried their variables (DATABASE_URL, secrets) as Environment= lines in a 0644 unit that any local user reads with systemctl show, and their builds ran without them; 'noust env migrate ' (or --all) moves them into the 0600 .env the unit then loads, restarting behind the health gate and putting everything back if the application does not answer
- New security check noust.inline_secrets: critical when an application unit carries a secret inline
- noust env show needs no --reason under ens-medium unless --unmask prints the secrets
Installation
Noust was called WASM until 3.0.0. wasm remains a command alias for the whole 3.x series, and existing installations upgrade in place: see docs/RENAME.md.
Ubuntu/Debian
curl -fsSL https://download.opensuse.org/repositories/home:Perkybeet/xUbuntu_26.04/Release.key | sudo gpg --dearmor -o /usr/share/keyrings/noust.gpg
echo "deb [signed-by=/usr/share/keyrings/noust.gpg] https://download.opensuse.org/repositories/home:Perkybeet/xUbuntu_26.04/ /" | sudo tee /etc/apt/sources.list.d/noust.list
sudo apt update && sudo apt install noustFedora
sudo dnf config-manager addrepo --from-repofile=https://download.opensuse.org/repositories/home:Perkybeet/Fedora_43/home:Perkybeet.repo
sudo dnf install noustFrom PyPI
pip install noustThe central, as a container (a NAS or any Docker host)
docker pull ghcr.io/perkybeet/noust:3.1.13Noust v3.1.12
Changes in v3.1.12
- pnpm installs recreate node_modules without asking: the first sandboxed update of an in-place pnpm application met a tree a root build had made with another store, and pnpm aborted with ERR_PNPM_ABORTED_REMOVE_MODULES_DIR_NO_TTY
Installation
Noust was called WASM until 3.0.0. wasm remains a command alias for the whole 3.x series, and existing installations upgrade in place: see docs/RENAME.md.
Ubuntu/Debian
curl -fsSL https://download.opensuse.org/repositories/home:Perkybeet/xUbuntu_26.04/Release.key | sudo gpg --dearmor -o /usr/share/keyrings/noust.gpg
echo "deb [signed-by=/usr/share/keyrings/noust.gpg] https://download.opensuse.org/repositories/home:Perkybeet/xUbuntu_26.04/ /" | sudo tee /etc/apt/sources.list.d/noust.list
sudo apt update && sudo apt install noustFedora
sudo dnf config-manager addrepo --from-repofile=https://download.opensuse.org/repositories/home:Perkybeet/Fedora_43/home:Perkybeet.repo
sudo dnf install noustFrom PyPI
pip install noustThe central, as a container (a NAS or any Docker host)
docker pull ghcr.io/perkybeet/noust:3.1.12