Deploying a New DaDesktop Server
Deploying a DD Node on a GTHost or Hetzner Server
These notes are here to guide you through deploying a DaDesktop node (server) on bare metal Linux servers from providers like GTHost, Hetzner, or similar. Keep in mind they may evolve as the installation and deployment scripts get updated.
This assumes you've already purchased a server and will install Ubuntu Jammy 22.04 on it. If you have multiple disks and plenty of space, consider using RAID0 (striping) to speed up disk reads and writes. On Hetzner, you'll configure this through the 'installimage' process while in Rescue mode.
Preparing and Installing the OS on GTHost / Hetzner Server

-
Start by ssh'ing in with the given root credentials. Run
apt update, thenapt upgradeto bring everything current, and finish withapt autoremoveto clean out any outdated packages before you upgrade. - If you're on Hetzner, you'll boot into rescue mode first, so you'll need to specify the distro settings — software RAID with mdm, xfs for the filesystem, IPv4, and so on — before rebooting and upgrading. Typically, go with the defaults for the small /boot and /boot/esp partitions (using ext4, not xfs) and skip the swap partition since it's not needed. Let the root / partition use xfs and claim the remaining disk space.
- For LeaseWeb or other providers, you'll need to convert the main / filesystem to xfs (instead of ext4 or btrfs). The notes below are a rough guide; however, ensuring the root partition uses xfs is trickier than simply setting up a /bigdisk with xfs, because you can't safely alter the / filesystem type while it's mounted — any changes must happen from outside the live OS.
-
To create the xfs filesystem, use your provider's tool if one is available — it's far simpler. Otherwise, from the rescue system run something like:
mkfs.xfs -f /dev/mdx(this formats the partition as xfs; the -f flag forces an overwrite).
A quick note: we no longer set up a separate /bigdisk partition; it's now just a directory under /. -
Mount the xfs filesystem with
mount -t xfs /dev/mdX /from outside the OS, or use the provider's portal to handle this. -
If you do still use a /bigdisk partition (which isn't common now), add
defaults,nofail 0 0in /etc/fstab so the system boots even if that separate partition fails to mount. -
Run
systemctl daemon-reloadto let systemd pick up the changes in /etc/fstab. -
Then
mount -ato mount everything according to fstab, and verify withdf -T. -
Then reboot.
Running the DaDesktop Installation Script
-
SSH into the server, e.g.,
svr@xxxxxxxxx. - Install using the DaDesktop install script:
-
curl http://npg.io/d > d - Now, you'll want to upgrade the base OS from 22.04 to the newest Ubuntu release — currently Ubuntu 23.10 (Mantic Minotaur), with 24.04 (Noble Numbat) on the horizon.
-
The easiest way is to use the
update-osscript found in/apps/dadesktop_npnode_deploy/modules/00-upgrade-os. It's smoother than performing the dist-upgrade manually; it swaps the apt sources from 'jammy' to 'mantic' (and later 'noble') so you can jump in one go rather than stepping through each release. Just a heads-up: while skipping releases is generally frowned upon, the small package set installed here makes it perfectly safe. -
If DNS stops working during the upgrade (we've seen this happen once), fix it with:
rm /etc/resolv.conf ; echo "nameserver 8.8.8.8" > /etc/resolv.conf -
You can optionally set the hostname, like
lo33uk.npg.io, especially if you're reusing a name from a previous setup. A reboot may be needed to apply the new hostname. -
Then, execute the main script to install the DD node. To avoid disconnection issues, you might want to use
tmuxfirst. From the directory where you saved the script, runbash d. - Watch the on-screen logs for errors. During the script, your server's IP gets added to the NP access list automatically, but the whitelist cron takes a couple of minutes to refresh — you might need to wait before the next steps.
- Keep an eye on the script's progress and fix (or report) any snags.
-
Run the cleanup script at
/apps/dadesktop_npnode_deploy/modules/00-cleanup. It strips out a ton of unnecessary packages and rolls back a few others. -
Run
/apps/zabbix-agent/services/test-all.shto catch any lingering problems. -
If you spot any unmaintained packages, get rid of them with
apt purge, and clear out any broken symlinks. -
Finally, reboot and test that everything works.
Testing the DD Node After Installation
- Verify the new DD server appears and test it using TPAPI and other checks in the DaDesktop GUI.
- Set start and expiry dates for the server in DaDesktop, and assign it to a datacenter if needed.
- Check the server's status in Zabbix and tidy up any alerts or issues.
- Test by deploying a Standalone environment on the server and running it.
- If needed, add the server to the relevant datacenter.
- Optionally, set up billing rules for the new server.
- Copy OS templates to the server if you'll be using them.
- If the server is destined for a specific course, let the trainer or coordinator know.
Enjoy!