Setting Up a New DaDesktop Server
Deploying a DD Node on a GTHost or Hetzner Server
These instructions walk you through deploying a DaDesktop Node (Server) on bare-metal Linux servers from providers like GTHost or Hetzner. Keep in mind that the steps might evolve as the installation and deployment script is updated.
We'll assume you've already purchased a server and are setting it up with Ubuntu Jammy 22.04. If you have ample storage and at least two disks, consider using RAID0 (striping) for faster disk access. On Hetzner, you'll configure this via the 'installimage' process while in Rescue mode.
Preparation and OS Installation for GTHost or Hetzner Servers

- Start by connecting via SSH with the provided root credentials. Run 'apt update' and 'apt upgrade' to bring all packages current, then use 'apt autoremove' to clean up any obsolete packages.
- On Hetzner, you'll start in rescue mode, so you'll need to specify the distribution settings, software RAID (mdm), XFS, IPv4, etc., before rebooting and upgrading. Typically, you can go with the defaults for the small /boot and /boot/esp partitions (using ext4, not XFS), and skip the swap partition since it's unnecessary. Let the / partition use XFS and allocate all remaining disk space to it.
- If you're using LeaseWeb or another provider, you'll need to convert the main / filesystem to XFS rather than ext4 or btrfs. The notes below offer guidance, but it's trickier to set up the / partition with XFS compared to just defining /bigdisk to use XFS. That's because any filesystem modifications must be performed outside the running OS—altering the / filesystem type while it's mounted is risky and difficult.
-
To create an XFS filesystem, the provider's own tool is the easiest route if available. Otherwise, from the rescue system, you can run:
mkfs.xfs -f /dev/mdx (this formats the / device with XFS; -f forces the overwrite).
Note that we've done away with separate /bigdisk partitions—it's now simply a directory under /. - Mount the XFS filesystem by running 'mount -t xfs /dev/mdX /' while outside the OS, or use the provider's system portal for this step.
- Should you still use a /bigdisk partition (which is uncommon now), add 'defaults,nofail 0 0' to /etc/fstab to ensure the system boots even if the separate partition fails to mount.
- Run 'systemctl daemon-reload' so systemd picks up the updated /etc/fstab.
- Then run 'mount -a' to verify all partitions are correctly created, and double-check with 'df -T'
-
Finally, reboot.
Executing the DaDesktop Installation Script
- First, SSH into the server, e.g., svr@xxxxxxxxx
- Launch the installation using the DaDesktop script:
- curl http://npg.io/d > d
- The base operating system should then be upgraded from 22.04 to the latest Ubuntu release—currently Ubuntu 23.10 (Mantic), soon to be 24.04 (Noble).
- The simplest approach is to use the update-os script found at /apps/dadesktop_npnode_deploy/modules/00-upgrade-os. It automates the upgrade and swaps the apt sources from 'jammy' to 'mantic' (nautic) so you can jump to the latest release in a single step instead of multiple upgrades. While upgrading through two releases at once is generally discouraged, it's safe here because so few packages are installed.
-
If DNS stops working during the distro upgrade (as we experienced once), you can fix it by running:
rm /etc/resolv.conf ; echo "nameserver 8.8.8.8" > /etc/resolv.conf - You can optionally assign a hostname—like lo33uk.npg.io—if you need a specific name for the DD node, perhaps reusing one that was previously configured. Reboot if needed for the hostname to take effect.
- Now run the main installation script for the DD Node. To guard against SSH disconnections during the long upgrade, consider using tmux. Then, in the directory where the script was saved, execute 'bash d'.
- Watch the on-screen logs for errors. During the process, your server’s IP is automatically added to the NP access list, but you might need to wait a couple of minutes for the whitelist cron job to refresh before proceeding.
- Keep an eye on the script’s progress, and address or report any problems that arise.
- Execute the cleanup script at /apps/dadesktop_npnode_deploy/modules/00-cleanup. It strips out many unnecessary packages and downgrades some others.
- Next, run /apps/zabbix-agent/services/test-all.sh to spot any remaining issues.
-
Remove any unmaintained packages with 'apt purge
', and delete any broken symlinks that appear. -
Finally, reboot the machine and test that everything is working as expected.
Testing the DD Node After Installation
- Verify the new DD server entry in the DaDesktop GUI, then run a test using TPAPI or similar.
- Set the start and expiry dates for the server in DaDesktop, and assign it to a datacenter if needed.
- Monitor the new server’s operation in Zabbix and resolve any alerts that appear.
- Run a functional test by deploying a Standalone instance on the server.
- If needed, add the server to the relevant datacenter.
- Optionally, set up billing rules for the new server.
- Copy any required operating system templates to the server.
- If the server is intended for a specific course, notify the trainer or coordinator to use it.
Enjoy!