A single pass: it installs the whole of Debian 12 and LGM-OS, asks four questions and finishes by showing on the machine's own screen the address to go to.
An ordinary computer will do. No server hardware required.
| Part | Minimum | Recommended, and why |
|---|---|---|
| Processor | x86-64 | With hardware virtualisation (VT-x / AMD-V) if you are going to use virtual machines: without it they run, but emulated and slow. |
| Memory | 4 GB | 8 GB if you are going to use ZFS or virtual machines. Updating rebuilds the interface, and that is the step that asks for memory. |
| System disk | 32 GB | 50 GB and you have room to spare. That is where Debian, the Python environment, the Docker images and the app catalogue live. With less than 16 GB updates run out of room. |
| Data disks | None to install | As many as you like, besides the system one. They are set up afterwards from the web, in a ZFS or Btrfs volume; the installer does not touch them. |
| Boot | UEFI or BIOS | The image boots either way. |
| Network | Cable | The installer downloads the Debian packages while it works. |
Download it in one click, or build it yourself from the repository.
With its SHA-256 published alongside so you can check it arrived whole. If the page says it is not published yet, that version's image is still in the oven.
bash deploy/build-iso.sh
It leaves nas-os-installer.iso in publicacion/. It needs
xorriso, wget and sha256sum.
The image does not carry the system inside: on first boot it downloads the latest published version and installs it. That is why it does not go stale —an ISO burnt today installs what exists in two years' time— and why the machine needs a network the first time.
What it does underneath, which is worth knowing: it downloads the most recent
Debian 12 netinst, checks its SHA256 against the one Debian
publishes —if it does not match, it stops— and repackages it adding the unattended install
and a copy of the repository with its history. That detail is not a whim:
the installed system updates itself with git pull, so an image without history
would produce machines that can never be updated from the panel.
Check it arrived whole before burning it, and compare the result with the one whoever gave it to you had:
sha256sum nas-os-installer.iso
The image is hybrid: it is copied as it is, with no odd programs.
lsblk # find the USB stick: sdb, sdc…
sudo dd if=nas-os-installer.iso of=/dev/sdX bs=4M status=progress conv=fsync
of= twice. dd writes wherever you tell
it without asking. If you get the letter wrong, you take out whatever disk was there. It is
/dev/sdX, the whole disk, not a partition (/dev/sdX1).
With Rufus or balenaEtcher: pick the image, pick the USB stick and write. If Rufus asks, choose DD image mode.
Four questions and the rest on its own.
Go into the machine's boot menu (usually F12, F11 or Esc) and choose the USB stick.
The one it will be seen with on the network.
DHCP or a fixed IP. For a NAS it is best that its address does not change: either a fixed IP here, or a reservation by MAC on the router.
The system one, to get in over SSH or to sit in front of it. It is not the
panel's: that one is created afterwards, in the browser. The root account is left
with no login password on purpose; it is administered with sudo.
If there are several, they come with their model and size so you do not mix them up.
It downloads and installs Debian 12, the panel and everything it needs. When it finishes, the machine's own screen shows the logo, its IP and the address to go to.
The first things to do, in order.
https://<nas-ip>:5000The certificate belongs to the machine itself, so the browser warns you: that is normal on a home network. Accept it, or put a real one in later from the panel.
There is no factory username or password. The first-run wizard asks you to create it: a lowercase name and a password of eight characters or more.
Control Panel → Security. This is a panel that can format disks: the minute it takes is worth it.
System → Alerts (email or webhook, with a test button) and Control Panel → Firewall. The web and SSH are always allowed.
Storage → Create pool. It only offers eligible disks, never the system one. ZFS with parity if you have four identical disks; Btrfs in a mirror if there are few of them or they are different sizes.
Without going through the ISO, on an already installed system:
sudo bash deploy/install.sh
It leaves the machine exactly as the ISO would: same services, same panel, same address.
sudo lgm update, and the update rolls itself back if
something goes wrong. See how it updates.