← FAQ

As FAQ estão escritas em inglês e neerlandês; são apresentadas em inglês.

FAQ

Server installer

FAQ › EUZOS Server › Server installer · Nederlands

What is it?

The server installer puts EUZOS Server from a USB stick onto the internal disk (SATA/AHCI, NVMe, or virtio-blk in a virtual machine) of a server. It is graphical, in the same style as the desktop installer (choice screen, cards, light or dark, mouse, keyboard and the on-screen keyboard), and falls back to a text installer in the console when there is no framebuffer. Besides the disk it sets up the network (DHCP or a static/public address), the packages (server roles, first Workplace management) and, after a successful installation, registers the workplace server with the admin's organisation on the profile server. The firewall of the installed server is closed by default.

How do I…?

How do I start the installer?

Boot the server from an EUZOS Server stick. Because it booted from USB, the choice screen appears ("Welcome to EUZOS Server"): Console (from the stick, nothing changes on the server) or Install on this server (on the internal disk; everything on it is erased). Without a choice it goes to the console after 10 seconds. From the console, installer shows the choice screen again and installer text starts the text installer. With choice=no (legacy keuze=nee, still read) in \EOS\FW\INSTALL.TXT the choice screen does not appear. automatic=yes (the desktop's installation stick) has no effect on the server: there crate::setup_choice::must_choose alone decides (booted from a USB stick, on x86-64, not choice=no).

What are the steps?

Graphical installer (euzos_ui::installation_server):

  1. Environment (test build only): SBX or PROD; written to the new disk as PROFILE.TXT.
  2. Network: the network adapter (by default the one with a link) and DHCP or a fixed address: IP address, netmask or prefix (/24 or 255.255.255.0), gateway, one or two DNS servers, and optionally the external address behind NAT (public IP or DNS name). IPv4 only. The address applies immediately (for the Account step) and is written to the new disk.
  3. Account: the admin signs in or creates an account (e-mail and password, with the code from the mail); no Microsoft login. With this account the server is registered with the organisation.
  4. Packages: the list of server packages, Workplace management first (on by default). Packages that are not finished are shown greyed out as Coming soon.
  5. Name of the server (if Workplace management is chosen): its name in Server Admin and for the admin (1 to 64 characters; default EUZOS Server).
  6. Ports (optional): the network adapters, USB ports and USB storage found in this machine, all on; switch off what the server does not use (see below). Next without changes skips it.
  7. Disk, 8. Wipe (quick or thorough erase, or Test install, no erase: only repartitioned, never the default, with a warning and a second Next to confirm; see Desktop installer), 9. Confirm (type the last 4 characters of the serial number), 10. Progress, 11. Done (shut down, remove the stick, switch on again: the server starts in the console).

How do I switch off unused network adapters or USB ports while installing?

On the step Network adapters and USB ports every adapter (PCI address, MAC address, link), every USB port (a USB 2 + USB 3 connector is one switch) and USB storage (usb-class storage) has a switch; everything is on. Tap a switch (or arrows and Space) to switch it off. The same safety rules as on a running server apply: the adapter chosen on the Network step stays on, the port of the installation stick stays on, and switching off the last adapter or the port with the only keyboard needs a second tap. What is off is written to the new disk as \EOS\FW\PORTS.TXT; with everything on no file is written. Change it later with Server Admin › Ports (see Ports).

How do I set a static or public IP address?

In the Network step choose Fixed address and fill in the fields. An invalid address, an IPv6 address, a network/broadcast address or a gateway outside the subnet gives a message at the field. A public address is allowed: then the note "this server can be reached directly from the internet. The firewall is closed; open ports with Server Admin." appears. After installation you change it with network on the console or with Server Admin (see Network and firewall).

Why is the firewall closed after installing?

The owner's decision: an EUZOS Server is completely closed inbound by default, with or without a public address. Only the admin protocol of Server Admin (TCP 8446) from the own subnet is open (in a test build also SSH from the own subnet). The Done screen reminds you: "The firewall is closed: open the cache (port 8445) with Server Admin." See Network and firewall.

What if the registration fails?

The Done screen says "The server is not registered (reason); you can do that later". Reasons from the profile server: the account is not an admin of an organisation (geen_beheerder), the account manages several organisations (kies_organisatie), the key is already registered (al_geregistreerd), or too many registrations (te_vaak). It can then be registered later on the profile server (see Organisations).

Is the admin's password stored on the server?

No. The password is only in the kernel during the request; the PC token of the Account step stays in RAM and is logged out after the installation.

How do I use the text installer?

installer text in the console. Each step is shown as text; you type a line and press Enter. stop returns to the console (except on the Done screen), back goes one step back. Network step: Enter = next, r = look again. Packages: type a package number to toggle it, Enter = next. For Workplace management it then asks the name and the link: the name of the organisation or a registration code; both only go into WORKPLC.TXT as a hint for the admin. Disk: type the number (or r to search again). Wipe: 1 fast (SSD only; the default on an SSD), 2 thorough (the default on a hard disk) or 3 "Quick install for testing: don't wipe, only repartition (old data can still be recovered; minutes instead of an hour or more)"; Enter keeps the choice shown. Choosing 3 shows a warning (the old data can be recovered with simple tools; only if the disk holds nothing confidential). Confirm: type the code exactly, which is WIPE-<serial> (the serial number, letters, digits and -; the legacy WIS-<serial> is still accepted); without wiping type the code and NO-WIPE, e.g. WIPE-S0EXAMPLE1234 NO-WIPE. The text installer has no Account step and does not register the server; register it afterwards on the profile server (see Organisations).

Details

  • Installation goes from the stick itself (install::install_internal with Source::Stick): the signed manifest \EOS\MANIFEST.TXT and all files are checked before anything is wiped; everything is read back afterwards. It refuses the boot disk and disks without a usable serial number or that are too small. Only on x86-64.
  • No Wi-Fi files and no apps (Chromium) are copied: that is EUZOS Desktop.
  • Files written to the new disk (\EOS\FW\):
    • the role file of each chosen package (Workplace management: WORKPLC.TXT with the name; see Packages);
    • for Workplace management the keys WPKEY.TXT (Ed25519) and WPTLS.TXT (P-256 for TLS), created on this machine and written only to the new disk;
    • the network file NETWORK.TXT (static address by MAC address, external address), only when an adapter has a static address or an external address is set;
    • the language file LANG.TXT (language=<code>, if a language was chosen);
    • PORTS.TXT with what was switched off on the Ports step (only when something is off; see Ports);
    • PROFILE.TXT with the environment (test build; environment=, key=, key-id=, …);
    • in a test build dev-ssh=yes in the role file (development SSH).
  • Registration: after a successful installation crate::server_setup_choice::register posts the public workplace key, the name and the external address to the profile server with the PC token of the Account step. The workplace server then appears in Server Admin for that admin with name, account, installation date and external address.
  • The text installer's steps and logic live in euzos_install::server (Installer, Step), tested on the development machine.

Reference

Console commands

CommandArgumentsWhat it does
installer–show the graphical choice screen / installer again (setup_choice::show(false)); any other argument than text is ignored (and refused on a production server)
installer text–the text installer in the console; installer tekst is a legacy alias

Inputs of the text installer (euzos_install::server::Installer::line):

StepInputMeaning
any (not Done)stopback to the console
any (not Welcome/Done/Failed)back (legacy terug)previous step
Environment1, s, sbx, sandbox / 2, p, prod, production (legacy productie) / EnterSBX / PROD / keep the shown choice
NetworkEnter / r, refresh (legacy v, vernieuw)next / look again
Packagesa number / Entertoggle that package / next
Nametext / Enterthe name (≤ 64 characters) / keep the default
Link1, o, organization (legacy organisatie) / 2, r, c, code, registration-code (legacy registratiecode)organisation name / registration code (4–32 letters, digits or -)
Disknumber or name / r (legacy v, vernieuw)choose the disk / search again
Wipe1, fast / 2, thorough / 3, no-wipe, test / Enterfast (SSD only) / thorough / not wiped, only repartitioned / keep the shown choice
ConfirmWIPE-<serial> (legacy WIS-<serial>); without wiping WIPE-<serial> NO-WIPEstart the installation
DoneEnterreboot

Functions and modules

ItemRole
crate::setup_choice::must_choose, show, immediatelythe choice screen when booted from USB (not with choice=no); immediately: the I key held at boot
euzos_ui::installation_serverthe graphical server screens (environment, network, account, packages, name, ports)
euzos_ports::choice::Choicethe Ports step without hardware: the switches, the safety rules, PORTS.TXT
crate::screen (kernel/src/server/screen.rs)framebuffer, fonts, pointer and on-screen keyboard for the installer
crate::server_setup_choice::choicecollects packages, name, network, language and ports from the screens
crate::server_setup_choice::network_setapplies the chosen static address or DHCP right away
crate::server_setup_choice::installwrites the disk (install::install_internal) and then registers
crate::server_setup_choice::registerPOST …/register with the PC token; maps the reason codes
crate::serverinstaller::{start, command, key, tick, work}the text installer in the console
euzos_install::server::{Installer, Step, PACKAGES, files}text installer logic; the files of the chosen packages
crate::workplace::keys_for_installationnew WPKEY.TXT / WPTLS.TXT for the new disk
euzos_ata::unlock_codethe confirmation code WIPE-<serial>

Config files

FileKeyValuesMeaning
\EOS\FW\INSTALL.TXT (stick)choice (legacy keuze)no (legacy nee)no choice screen when booting from USB
\EOS\FW\INSTALL.TXT (stick)automatic (legacy automatisch)yes (legacy ja)the desktop's installation stick; ignored by EUZOS Server (booting from USB always shows the server installer unless choice=no)
\EOS\FW\PROFILE.TXT (new disk)environment (legacy omgeving)sandbox / productionwritten in a test build after the Environment step
\EOS\FW\LANG.TXT (new disk)language (legacy taal)a language codethe language chosen in the installer
\EOS\FW\PORTS.TXT (new disk)network-off, usb-off, usb-class-offsee Portswhat was switched off on the Ports step
\EOS\FW\WORKPLC.TXT (new disk)see Packagesthe Workplace management role
\EOS\FW\WPKEY.TXT, WPTLS.TXT (new disk)–64 hexthe server's keys (secrets; never shown)
\EOS\FW\NETWORK.TXT (new disk)see Network and firewallstatic address, external address. The kernel also still reads the legacy NETWERK.TXT (that is what installers before 27-10-2026 wrote)

API endpoints

Called by the installer on the profile server (details in API):

MethodPathPurpose
POST/api/workplace/v1/register?token=<pc-token> (legacy /api/werkplek/v1/registreer)register the workplace server under the admin's organisation; admins only, rate-limited

The kernel currently calls the legacy path.

Protocol messages and formats

Registration request body (lines key=value, wire format, stays Dutch): sleutel=<public key, 64 hex>, naam=<name>, optional extern=<external address>. Reply: ok with werkplek=<id> and organisatie_naam= / organisatie=, or a failure with reden=<code> (geen_beheerder, kies_organisatie, al_geregistreerd, te_vaak, …).

See also