LGM-OS
installation

Download and install

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.

What machine you need

An ordinary computer will do. No server hardware required.

PartMinimumRecommended, 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.

Getting the ISO

Download it in one click, or build it yourself from the repository.

Download the installer

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.

Or build it from the repository

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.

If somebody gave you one already built

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

Writing it to a USB stick

The image is hybrid: it is copied as it is, with no odd programs.

Linux or macOS

lsblk                                    # find the USB stick: sdb, sdc…
sudo dd if=nas-os-installer.iso of=/dev/sdX bs=4M status=progress conv=fsync
Check the 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).

Windows

With Rufus or balenaEtcher: pick the image, pick the USB stick and write. If Rufus asks, choose DD image mode.

The installation

Four questions and the rest on its own.

The disk you choose for the system is formatted entirely and without asking again. It is an unattended install: after that choice there are no more confirmations. The other disks are not touched.
  1. Boot from the USB stick

    Go into the machine's boot menu (usually F12, F11 or Esc) and choose the USB stick.

  2. Machine name

    The one it will be seen with on the network.

  3. 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.

  4. Console user

    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.

  5. Which disk the system goes on

    If there are several, they come with their model and size so you do not mix them up.

  6. Wait

    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.

When it finishes

The first things to do, in order.

  1. Open https://<nas-ip>:5000

    The 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.

  2. Create the administrator

    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.

  3. Turn two-step verification on

    Control Panel → Security. This is a panel that can format disks: the minute it takes is worth it.

  4. Set up the alerts and switch the firewall on

    System → Alerts (email or webhook, with a test button) and Control Panel → Firewall. The web and SSH are always allowed.

  5. Create the data volume

    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.

Other ways to install it

On top of a Debian 12 you already have

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.

You do not need the ISO to update. Once installed, LGM-OS updates from the panel itself or with sudo lgm update, and the update rolls itself back if something goes wrong. See how it updates.