Deploy on your own server Last updated: February 10, 2025 21:33

Information on this page is intended for server administrator who wants to know what are the requirements of and how to install Dwarfguard SW.

HW requirements - Server / VM

Before installation, you may need to consider how much performance on the server/VM you need based on the number of devices you want to manage - especially when installing Dwarfguard on a scaled-down VM or embedded server.

In case you are going to use a dedicated server for Dwarfguard, keep in mind that something like 8 GiB Memory and 4 CPU threads can handle any number of devices (up to 65000 which is a hardcoded limit for version 1.0) using standard timing.

Also, if you need to manage 1000 or lower number of devices, you don't need any more consideration than checking the minimal HW requirements below.

When you plan to use weaker HW or VM than mentioned above, take a look at Dwarfguard Performance page.

Minimal HW requirements

  • RAM: 512 MiB
  • CPU: 1 single-thread core, 512 MHz
  • Storage:
    • 1 GiB for installation
    • 200 KiB storage per managed device

SW Requirements

The installation package is written to be installed on Debian GNU/Linux. It relies on Debian packaging system, particular package naming and configuration style. While the steps may be manually reproduced on a different OS, the deployment process consists of many steps and the space for introducing an error when trying to manually reproduce the installer steps is very large and so Dwarf Technologies supports only installations on Debian GNU/Linux.

Requirements for default mode (self-signed HTTPS certificates are auto-generated during install):

  • Debian GNU/Linux 12 (for Dwarfguard version 1.0)
  • Install must be performed using root account
  • UTF-8 based locale must be configure on server (e.g. cs_CZ.UTF-8)
  • Systemd init daemon configured and running
  • Standard Debian mirror is reachable (other Debian packages are installed during deployment unless you pre-install them manually)
  • Apache2 webserver is installed during deployment (if not installed already) and must be the only webserver on the installation machine

Additional requirements for non self-signed HTTPS certificates:

  • When you have your own HTTPS certificate management for Apache (out of Dwarfguard scope):
    • fill in certificate paths into Apache2 configuration files after the deployment is done, restart apache2 webserver
  • When using reverse-proxy (potentially with automated certificate renewal for your server):
    • Install Dwarfguard in HTTP mode (as the SSL layer is handled by your reverse proxy (e.g. WebCaddy, Nginx)

Installation instructions

  1. Change directory to where the install package (e.g. dwarfg_release_1.0.0.tgz) is located
  2. Uncompress the archive (e.g. tar xzf dwarfg_release_1.0.0.tgz)
    • NEVER reuse uncompressed installation tree for another installation as during installation, the data are modified. When e.g. attempting to reinstall (e.g. error during firt install attempt), remove the attempted install tree and uncompress again from the archive.
  3. During install you need to specify the address your devices will use to contact the server. Usually, that's the fully qualified domain name of your server. It needs to match the HTTPS certificate. Examples:
    • ./install.sh --domain my.dns.fqdn.domain
    • ./install.sh --domain 10.10.10.10
  4. Other usefull options:
    • --help ... prints supported options and their description and exits.
    • --nossl ... install in HTTP mode - use when you have reverse proxy configured for your server
    • --admname <administrator_login_email> ... specify web interface login name (e-mail) for Dwarfguard admin
    • --admpwd <password> ... specify web interface password for Dwarfguard admin
    • --servsshport <ssh-port> ... if you intend to use webtunnels functionality and your ssh server runs on a different port than 22 you need to specify it
    • --opername <operator_login_email> ... specify web interface login name (e-mail) for Dwarfguard operator (optional user - if you want to use operator account you need to enable it after installation using the web interface logged in as admin user)
    • --operpwd <password> ... specify web interface password for Dwarfguard operator

Once started, expect the installation process to take a while. You can see the progressing commands output in the terminal. Most of the time is usually taken be downloading and installing the dependency packages. You can review the required package names by looking into the appdir/machine_install.sh file if curious.

Once Dwarfguard is deployed, it is started automatically. You may want to continue with:

  1. Run mass installation of agents on your devices
  2. Replacing the package-bundled (free) license with your commercial license (if you have one)
  3. Getting familiar with admin CLI commands - how to get information, perform backup etc.
  4. Getting familiar with deployment structure - where are logs etc.

Further information

For futher information on how to manage your deployment, please refer to the Server Administration Doc section