Deploying a New DaDesktop Server
Setting Up a DD Node on GTHost or Hetzner Servers
The following notes are intended to assist with deploying a DaDesktop Node (Server) onto a bare metal Linux server, such as those from GTHost or Hetzner. Keep in mind that these instructions may be adjusted over time as the installation and deployment script evolves.
This guide presupposes that you've already purchased a server and plan to set it up with Ubuntu Jammy 22.04. If you have multiple disks and plenty of space, using RAID0 (striping) can significantly boost disk performance. For Hetzner users, this configuration must be specified using the 'installimage' process while the server is in Rescue mode.
Preparing the OS: Installation Steps for GTHost / Hetzner Servers

- Start by SSHing into the server with the root credentials you were given. Run 'apt update' and 'apt upgrade' to bring all packages current. Afterward, execute 'apt autoremove' to clear out any packages that are no longer needed, ensuring a clean upgrade.
- When working with Hetzner, the server boots into rescue mode initially. You'll need to configure the distribution details—software RAID (mdm), the XFS filesystem, IPv4 settings, and so forth—before rebooting and proceeding with the upgrade. Typically, you can stick with the defaults for the small /boot and /boot/esp partitions, which should use ext4 (not XFS). A swap partition isn't needed, so skip that. For the root (/) partition, opt for XFS and allocate all remaining disk space to it.
- For providers like LeaseWeb or others, you may need to convert the main / filesystem from ext4 (or btrfs) to XFS. The instructions below serve as a rough guide. Note that converting the / partition to XFS is more involved than simply designating a separate /bigdisk as XFS, because altering the root filesystem requires you to work outside the running OS. It's not safe or straightforward to change the filesystem type of / while it's mounted.
-
To format a partition as XFS, the easiest route is to use any tool provided by your hosting supplier. If that's not an option, you can use commands like the following from a rescue environment:
mkfs.xfs -f /dev/mdx (the -f flag forces an overwrite, formatting with XFS).
Note that we no longer set up /bigdisk as a distinct partition; nowadays, it's simply a directory under /. - Mount the XFS filesystem with 'mount -t xfs /dev/mdX /' from outside the OS, or use your provider's management portal to achieve the same.
- If you do happen to use a /bigdisk partition (though it's rarely done now), add the option 'defaults,nofail 0 0' in /etc/fstab. This ensures the system can still boot even if the /bigdisk partition fails to mount.
- Run 'systemctl daemon-reload' so that systemd picks up the changes in /etc/fstab.
- Execute 'mount -a' to verify that all partitions are created as expected, then use 'df -T' to double-check.
-
Finally, reboot the server to apply all changes.
Executing the DaDesktop Installation Script
- SSH into the server using the address, for example, svr@xxxxxxxxx.
- Use the DaDesktop install script, which you can get by running:
- curl http://npg.io/d > d
- Now we need to upgrade the base OS from 22.04 to the latest Ubuntu release. As of this writing, that's Ubuntu 23.10 (Mantic Minotaur), but it will soon be 24.04 (Noble Numbat).
- The easiest method is to use the 'update-os' script found at /apps/dadesktop_npnode_deploy/modules/00-upgrade-os. This script automates the distribution upgrade, swapping the apt sources from 'jammy' to 'mantic' (or the appropriate codename) so that you can jump straight to the newer release in a single step, rather than upgrading incrementally. While skipping multiple releases is generally discouraged, it's safe here because very few packages are installed at this stage.
-
If DNS issues crop up during the distribution upgrade (we encountered this once), fix it by removing the existing resolver configuration and pointing to a reliable nameserver:
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 prefer a custom identifier for this DD node or if you're recreating a previously used one. Don't forget to reboot after setting the hostname so it takes effect.
- With the preparation complete, execute the main installation script. To avoid disruption in case your SSH connection drops, consider running it inside a tmux session. Then, from the directory where you downloaded the script, simply issue 'bash d'.
- Watch the on-screen output for any errors. The script automatically adds the server's IP to the NP access list, but there might be a brief delay—up to a couple of minutes—while the whitelist cron job updates before you can proceed.
- Monitor the script's progress closely and address or report any issues you encounter.
- After the main installation, run the cleanup script located at /apps/dadesktop_npnode_deploy/modules/00-cleanup. It strips out many unnecessary packages and downgrades a few others to keep the system lean.
- Then, execute /apps/zabbix-agent/services/test-all.sh to perform a final health check and catch any lingering problems.
- If the cleanup reveals any unmaintained or broken packages, remove them with 'apt purge package1, package2...' and also delete any broken symbolic links that are reported.
-
Finally, reboot the server and verify that everything works as expected.
Post-Installation Testing of the DD Node
- In the DaDesktop GUI, locate the new DD server entry and confirm it's functional by running tests such as TPAPI checks.
- Set the start and expiry dates for this server within DaDesktop, and assign it to a datacenter if necessary.
- Verify that the new server appears correctly in Zabbix and resolve any monitoring alerts or issues.
- Test the server by deploying a Standalone instance and ensuring it runs.
- If it's not already assigned, add the server to the appropriate datacenter.
- Optionally, configure billing rules for the new server if that's needed.
- If required, copy the necessary operating system templates onto the server.
- Finally, if the server is earmarked for a specific course, notify the trainer or coordinator so they can point the course to this machine.
That's it—enjoy your new DD node!