Components
Quazzar OS is a set of optional parts. During installation you choose which ones you want. Parts you skip are not installed, and their pages are hidden in the OS. You can change your mind at any time.
What components are
| Component | What it does | Hidden when off |
|---|---|---|
| Docker Engine | Runs your apps. Modes: keep, replace, install, none. | Apps, AI Hub containers, Mail, Pritunl VPN |
| S3 Object Storage | Garage-based S3 storage on 127.0.0.1:3900 (the official static binary, checksum-verified). | Storage → Objects, Drive |
| Orbit Drive | File storage on top of object storage. | Drive |
| Network management | Lets Quazzar (through NetworkManager) manage your network interfaces. | Network becomes view-only |
| System tuning | zram, earlyoom, irqbalance, cpupower and preload, each switchable on its own. On RHEL, Rocky, AlmaLinux and CentOS the EPEL repository is enabled first when a package is missing (earlyoom comes from EPEL there). | Nothing |
| VPN | WireGuard tools and Pritunl. Pritunl needs Docker. | VPN, VPN Mesh, Cluster Mesh |
| Local AI | Ollama and LocalAI runtimes. Needs Docker. | Local models in AI Hub (the page stays, with an install banner) |
| Mail server | The mail stack. Needs Docker. | |
| The WhatsApp connection for Messaging. | WhatsApp channel (a banner offers to install it) |
If a component needs another one that is off (for example Mail without Docker), it is shown dimmed and cannot be switched on until you enable the one it needs.
Defaults for a fresh install: Docker is kept if it is already there and installed otherwise; S3 Object Storage, Drive, VPN and Local AI are on; Mail and WhatsApp are off; all system tuning is on. Network management is on only for desktop-style machines: it is off when the machine uses systemd-networkd or has interfaces configured in /etc/network/interfaces (typical for servers and VPS machines).
Choosing at install
When you run the installer in a terminal, it opens a full-screen picker.
| Key | Action |
|---|---|
| ↑ ↓ | Move between components |
| Space | Switch the selected component on or off |
| → | Expand a component (for example System tuning) |
| Enter | Continue |
| Esc | Go back |
| Ctrl+C | Cancel |
A summary screen shows what will be installed and what will be switched off before anything happens. Then you see live progress for each step.
On every upgrade
Each time the package is upgraded from a terminal (with apt upgrade or by re-running install.sh), the installer asks once whether to keep your components as they are. Update, keep components as is is the default. Press Enter, or do nothing: after 30 seconds it continues on its own (pressing any key stops the countdown). Choose Change components to open the picker.
If there is no terminal (for example unattended upgrades, or ssh host sudo apt upgrade), nothing is asked and nothing changes. On a fresh install with no terminal, the defaults are used.
Changing later
- In a terminal:
sudo quazzar setupopens the same picker at any time, straight on the component list. - In the web UI: open Settings → Components (administrators). Install or switch off a component and watch it install live. New sections appear in the dock as soon as it finishes.
Switching a component off never deletes its data (buckets, Docker images and volumes, mail volumes). Switched-off components are hidden from the dock and the command palette. Opening one by its direct link shows “X is not installed” with an Install button for administrators.
Unattended installs
For scripts, cloud-init and images, choose components without the picker. The syntax is a list separated by commas or spaces:
| Item | Meaning |
|---|---|
mail | Switch on |
-mail | Switch off |
mail=on, mail=off | Switch on or off |
docker=keep, docker=replace, docker=install, docker=none | Docker mode |
tuning.zram=off | One tuning item (zram, earlyoom, irqbalance, cpupower, preload) |
Examples:
# Everything by default, but no mail and keep the existing Docker
curl -fsSL https://get.quazzar.cloud/install | sudo bash -s -- --unattended --components "-mail,docker=keep"
# Same thing with an environment variable
sudo env QUAZZAR_COMPONENTS="-mail,docker=keep" apt install quazzar
# Apply a choice to an installed node
sudo quazzar setup apply --set "vpn,-ai,tuning.preload=off"install.sh applies --components (or QUAZZAR_COMPONENTS) as given, even when run from a terminal: the picker does not open.
You can also write the configuration file before installing (see Files):
version: 1
docker: { mode: keep }
objstore: true
drive: true
network: false
tuning: { zram: true, earlyoom: true, irqbalance: true, cpupower: true, preload: false }
vpn: true
ai: true
mail: false
whatsapp: falseUnknown keys in this file are an error. The OS then shows everything rather than hiding features because of a typo, and Settings → Components reports the problem.
quazzar setup apply options:
| Flag | Effect |
|---|---|
--set SPEC | Change components using the syntax above, then apply |
--json | Print progress as JSON events |
--wait-apt | Wait until apt is idle before starting |
--no-restart | Do not restart quazzar.service afterwards |
--defaults-if-missing | Use fresh-install defaults if there is no configuration file |
--op-id ID | Name the run (used by the web UI) |
Docker choices
| Mode | What happens |
|---|---|
keep | Use the Docker that is already installed. |
replace | Remove the distribution’s Docker and install the recommended docker-ce. |
install | Install docker-ce on a machine without Docker. |
none | Run Quazzar without Docker. Docker is not uninstalled; features that need it are hidden. |
- The minimum supported Docker version is 24.0. Older versions get a warning and a recommendation to replace.
replacekeeps/var/lib/docker, so your images and volumes stay.- Replacing the snap version of Docker does not carry its data over. You must type
snapin the installer (or sendconfirm_snapin the API) to confirm. - If installing
docker-cefails, the previous Docker is reinstalled, Docker is marked failed, and the rest of the changes still go ahead. The Docker choice goes back tokeep, so later runs do not try again on their own: to retry, choose Replace with docker-ce again (or--set docker=replace).
Network
On servers and VPS machines (systemd-networkd, or interfaces configured in /etc/network/interfaces), a fresh install leaves networking alone by default instead of handing it to NetworkManager. Turning network management on hands every interface to NetworkManager, which may drop an SSH session; the installer and Settings → Components warn you before doing it. With network management off, Network in the OS is view-only and network changes through the API are refused.
Turning network management off later does not undo a configuration that NetworkManager already took over. This is deliberate, to avoid cutting the connection.
Files
| File | Purpose |
|---|---|
/etc/quazzar/components.yaml | What you want (edit or pre-seed it) |
/var/lib/quazzar/components-state.json | What is actually installed, written by the installer only |
/var/log/quazzar/components.log | Log of all runs |
/var/lib/quazzar/components-ops/ | Progress of each run started from the web UI |
Steps that wait for apt
When the package is installed with plain apt install, apt holds a lock, so steps that need apt (installing docker-ce, extra packages) cannot run yet. They are marked pending and run automatically a moment after apt exits, in a background job called quazzar-components-apply. Everything else happens straight away.
Troubleshooting
sudo quazzar setup status # what is installed, failed or pending
sudo journalctl -u quazzar-components-apply # output of the background job
sudo less /var/log/quazzar/components.log # full log- A component shows failed: fix the cause from the message, then run
sudo quazzar setupand apply again (or switch it on again in Settings → Components). - S3 Object Storage on a node that used MinIO moves its data to Garage by itself after the update; progress and the “Old MinIO data — Delete” button are on the S3 card. See Migrating from MinIO.
- The installer never blocks an upgrade because of an optional component.