Warning

Nightly releases are generated automatically from the latest source code and are intended for experimental purposes only. These builds may contain incomplete or untested features, bugs, or security vulnerabilities, and as such, are not for production use. Users should be aware that nightly releases may cause unexpected behavior, data loss, or system instability. Use of these releases is at the user's own risk, and it is advised to have adequate backups before testing. The software is provided as is with no guarantees or support.

Air-Gapped License Server

Read First

Note

We highly recommend only using the air-gapped license server if no other option is available.

This guide is intended for users who need to run the instant3Dhub license server in an air-gapped environment. If you have internet access, we recommend just providing a license key to the instant3Dhub installation to automatically handle usage reporting.

The instant3Dhub License Server needs to be accessible by the servers instant3Dhub is running on. The License Server cannot be run in container environments as it is bound to a host machine. There are two options for storing data (you need to use PostgreSQL 14):

We recommend an externally managed PostgreSQL in order to avoid data loss.

Installation

First start by installing and setting up PostgresSQL and obtain a connection string.

Using local PostgreSQL instance

We recommend PostgreSQL version 14, but require a minimum version of 13. The minimum version may change in the future, so we recommend installing the highest version available in order to avoid time consuming upgrades.

For RedHat based systems, we recommend using the official PostgreSQL repository to download packages. This guide will exemplify the installation using RedHat.

First, add the official PostgreSQL repository to the package manager:

yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum -y update

Next, install PostgreSQL 14:

yum install -y postgresql14
yum install -y postgresql14-server
yum install -y postgresql14-contrib

Initialize and check the PostgreSQL-service (must be active and running):

/usr/pgsql-14/bin/postgresql-14-setup initdb
systemctl start postgresql-14
systemctl enable postgresql-14
systemctl status postgresql-14

Warning

If Postgres-service cannot be launched then set the correct permissions for PostgreSQL from 0755 to 2777:

sed -i 's/postgresql 0755 postgres postgres - -/postgresql 2777 postgres postgres - -/g' /usr/lib/tmpfiles.d/postgresql-14.conf

Now you may configure a connection string or use the default (for details see Configuration of Postgres connection string).

Using remote PostgreSQL instance

In case you have a PostgreSQL instance that is running on a different machine or provisioned externally, all you need is to configure the License Server to use the remote PostgreSQL instance by providing a connection string (see Configuration of Postgres connection string). The License Server will setup or migrate required tables on startup. To start the server, make sure to use the systemd unit file which does not depend on a local postgres instance:

systemctl start instant3DhubLicenseServerRemoteDB.service
systemctl status instant3DhubLicenseServerRemoteDB.service

Configuration of Postgres connection string

Initially Postgres service sets up a database postgres with a username postgres and a password postgres, which is being used as the default connection by the License Server as follows postgresql://postgres:postgres@localhost:5432/postgres?sslmode=disable (see License Server configuration). You may configure a new connection according to the pattern postgres://{NEW_USER}:{PASSWORD}@{NEW_HOSTNAME}:{PORT}/{NEW_DATABASE}?sslmode={disable/disable} (described here). To create a new database with a new user please refer to the official.

Install the License Server

The instant3Dhub License Server is installed from RPM files. The installation requires the OS dependent License Server package:

  • CentOS 7 : instant3Dhub-licenseServer-CentOS-Linux-7-x64*.rpm

  • SLES-12.3 : instant3Dhub-licenseServer-SLES-12.3-x64*.rpm

  • Fedora 23 : instant3Dhub-licenseServer-Fedora-23-x64*.rpm

  • Fedora 29 : instant3Dhub-licenseServer-Fedora-29-x64*.rpm

  • RHEL 8 : instant3Dhub-licenseServer-RHEL-8-x64*.rpm

  • Rocky 8 : instant3Dhub-licenseServer-Rocky-8-x64*.rpm

The latest installation files and a changelog can be found here.

Note

We currently do not provide packages for Debian-based operating systems. However, there exist workarounds to re-use the packages for theses systems, please refer to guide below for more information.

First download the latest version of the License Server for your OS, for example:

wget https://repo.threedy.io/licenseserver/23.1/instant3Dhub-licenseServer-CentOS-Linux-7-x64.24.2.rpm

And install the package:

yum install -y ./instant3Dhub-licenseServer-CentOS-Linux-7-x64.24.2.rpm

Debian-based systems

Threedy does not provide Debian packages, but the RPM packages can be converted to DEB format. Below is an example of how to install the License Server on Ubuntu.

Install PostgreSQL (we suggest to install version 14):

apt install -y postgresql-14 postgresql-contrib

Initialize and check the PostgreSQL-service (must be active and running):

systemctl restart postgresql
systemctl enable postgresql
systemctl status postgresql
Install

Download the desired version of the License Server package for CentOS:

wget https://repo.threedy.io/licenseserver/23.1/instant3Dhub-licenseServer-CentOS-Linux-7-x64.x.x.rpm

Convert the RPM-package to DEB-format:

alien /root/source_files/license_server_ubuntu/instant3Dhub-licenseServer-CentOS-Linux-7-x64.x.x.rpm

Install the package:

dpkg -i /root/source_files/license_server_ubuntu/instant3dhub-licenseserver-centos-linux-7-x64_x.x-2_amd64.deb

The License Server can be launched (must be active and running):

systemctl restart instant3DhubLicenseServer{RemoteDB}.service
systemctl status instant3DhubLicenseServer{RemoteDB}.service

Warning

If the License Server cannot be launched then add the user instant3dhub with permissions as follows:

adduser -u 901 --gecos "" --disabled-password instant3dhub

License Server configuration

Before starting the license server it must be properly configured. Configuration is provided by creating a configuration file at the /opt/instant3Dhub.custom/license_config.yml.

The only required value is the license key as part of serial-key. Below is a sample file with available options and their defaults if these are not provided.

# whether to use the BIOS ID of the current machine when performing host checks
use-bios-uuid: false

# license key to use
serial-key: YOUR_LICENSE_KEY_HERE

# interface and port to listen on
address: 0.0.0.0:8200

# log level to use. options: fatal panic error warning info debug trace
log-level: warning

# location of the license file
licenseFile: /opt/instant3Dhub.custom/license.xml

# location of tls certificate
tls-cert:

# location of tls private key
tls-key:

# postgres backend options
postgres:
  # connection string describing the postgres location and user. the given
  # user must have permissions to create schemas, tables and stored procedures.
  # expected format is the URI format described here: https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING
  connection-string: postgresql://postgres:postgres@localhost:5432/postgres?sslmode=disable

  # user to use once migrations are complete. this user also receives table write permissions during migrations
  # by default the user from the connection string is also used during runtime.
  runtime-user:

  # password for the runtime user to allow switching to this user once migrations are complete
  # this value must be given if a runtime user is also provided
  runtime-password:

Note

You may configure your connection instead of using the default one (for details see Configuration of Postgres connection string).

Start the License Server

systemctl restart instant3DhubLicenseServer{RemoteDB}.service
systemctl status instant3DhubLicenseServer{RemoteDB}.service

The status should now be active.

In default configuration this service exposes port 8200.

The address to the License Server must be provided during the installation of your instant3Dhub deployment.

Acquire License

Licenses are bound to a single host when running in offline mode. We require a HostID and initial usage export to generate a new license.

This can be acquired via either the command line or the web interface:

  • Command line: curl http://localhost:8200/usage/export -o i3dh-usage-export.zip

  • Web interface: http://your.license.server:8200/usage/export

Please provide your Threedy contact or if you have no valid license agreement yet sales@threedy.io with this output to start the license key acquisition process. In return a license file will be provided to you.

Warning

The hostID depends on the hardware configuration of your machine such as the network adapter and hard drive. In some virtualized environments, the hardware configuration can be dynamic by default and it might changes when restarting a VM. Please ensure your VM is bound to a static hardware configuration or the license will be invalidated.

License file placement

A received license file must be placed to:

/opt/instant3Dhub.custom/license.xml

When using this method, please restart the license server to apply the new license.

Alternatively it can also be uploaded via the web interface of the license server, in which case a restart is not necessary.