Automated deployment with installer

Deployment of the Edge node using the automated installer

Edge Node deployment process overview

Following the steps below will allow you to clone the automated installer, populate the environment file (.env), and then run the installer for a smooth setup of the DKG Edge Node on a Linux server.

These instructions cover the following:

  1. Populate the installer's .env file with:

    • Your forked repository URLs

    • Edge node names for each supported blockchain

    • Edge Node wallet keys

    • Publishing wallet keys

    • OpenAI or Anthropic API key

  2. Run the installer

System Requirements

In order to successfully deploy your Edge node solution, you will need a clean Linux instance as described below

  • OS: Linux

  • RAM: At least 8 GB

  • CPU: 4

  • Storage: At least 20 GB of available space

  • Network: Stable internet connection

Please note that the automated installer currently supports Ubuntu versions 20.04, 22.04, and 24.04.

Edge node deployment preparation

1. Software Dependencies:

  • Git – Required for cloning the installer repository to the server.

2. Edge Node keys (wallets):

The Edge Node requires three types of keys (wallets):

  • Management keys

  • Operational keys

  • Publishing keys

Before deploying to a server, ensure your custom Edge Node project has already been developed and that you are familiar with the wallet preparation process outlined in the Funding Your Keys section of the Get started with the Edge Node boilerplate project.

While the boilerplate offers helpful guidance, it is intended as a starting point for development, not a deployment-ready solution.

Useful documentation:

  • A list of exchanges where TRAC tokens can be acquired is available on our official website.

  • TRAC Teleport to Neuroweb is explained here.

  • Bridging TRAC to Base is explained here.

  • Bridging TRAC to Gnosis is explained here.

  • Neuroweb mainnet explorer is available here.

  • Neuroweb testnet explorer is available here.

  • Base Sepolia explorer is available here.

  • Base mainnet explorer is available here.

  • Gnosis Chiado explorer is available here.

  • Gnosis mainnet explorer is available here.

3. LLM functionality:

Edge Node components require a Large Language Model (LLM) to operate. To ensure full functionality, you must provide at least one of the supported external API keys below:

  • OpenAI API Key – Used to access OpenAI’s GPT models. Example: sk-4hsR2exampleXv29NSHtDyzt0NlFgk1LXj6zS7...

  • Anthropic API Key – Used to access Anthropic’s Claude models. Example: claude-56a8e5eexamplef27b5b6e47b1...

Deployment guide (step by step)

With all prerequisites in place, you can proceed to clone the installer repository, prepare the .env file with the required parameters, and deploy your Edge Node solution by following the steps below.

1. Cloning the installer

Once all requirements are prepared, SSH into your Linux server and clone the installer repository using the commands provided below:

git clone https://github.com/OriginTrail/edge-node-installer.git && cd edge-node-installer

1.1 - Create .env file

Based on the .env.example file create your .env which will be used by the automated installer for the deployment of your Edge Node.

cp .env.example .env

2. Configure your Edge Node

You are now ready to populate the .env file and configure the installer with the necessary parameters.

2.1 - Deployment mode

This field determines how the Edge Node services are handled post-installation. You can choose between two options:

  • development – Installs all required services as systemd units, but does not enable or start them automatically.

  • production – Installs the services as systemd units, and automatically enables and starts them once the installation is complete. This is the recommended option for live environments where the node should be operational immediately.

2.2 - Blockchain environment

Choose between mainnet or testnet.

2.3 - Default publish blockchain

Specify the blockchain that will be used for publishing Knowledge Assets. Enter one of the currently supported options: neuroweb, base, or gnosis.

2.4 - Publishing Keys (wallets)

You must provide public and private key pairs for up to three wallets that will be used for publishing Knowledge Assets to the selected blockchain (DEFAULT_PUBLISH_BLOCKCHAIN). The keys should be funded with both the TRAC token and the native token of the blockchain passed via "DEFAULT_PUBLISH_BLOCKCHAIN" parameter in .env.

  • PUBLISH_WALLET_01_PUBLIC_KEY: Public key for the first publishing wallet. [mandatory]

  • PUBLISH_WALLET_01_PRIVATE_KEY: Private key for the first publishing wallet. [mandatory]

  • PUBLISH_WALLET_02_PUBLIC_KEY: Public key for the second publishing wallet.

  • PUBLISH_WALLET_02_PRIVATE_KEY: Private key for the second publishing wallet.

  • PUBLISH_WALLET_03_PUBLIC_KEY: Public key for the third publishing wallet.

  • PUBLISH_WALLET_03_PRIVATE_KEY: Private key for the third publishing wallet.

2.5 - Node Engine configuration (ot-node service)

Neuroweb:

  • NEUROWEB_NODE_NAME: Name of your node on Neuroweb.

  • NEUROWEB_OPERATOR_FEE: The operator fee for your Neuroweb node. Set to 0 if no fee is required.

  • NEUROWEB_MANAGEMENT_KEY_PUBLIC_ADDRESS: Public address of your Neuroweb management key.

  • NEUROWEB_OPERATIONAL_KEY_PUBLIC_ADDRESS: Public address of your Neuroweb operational key.

  • NEUROWEB_OPERATIONAL_KEY_PRIVATE_ADDRESS: Private address of your Neuroweb operational key.

Base:

  • BASE_NODE_NAME: Name of your node on Base.

  • BASE_OPERATOR_FEE: The operator fee for your Base node.

  • BASE_MANAGEMENT_KEY_PUBLIC_ADDRESS: Public address of your Base management key.

  • BASE_OPERATIONAL_KEY_PUBLIC_ADDRESS: Public address of your Base operational key.

  • BASE_OPERATIONAL_KEY_PRIVATE_ADDRESS: Private address of your Base operational key.

Gnosis:

  • GNOSIS_NODE_NAME: Name of your node on Gnosis.

  • GNOSIS_OPERATOR_FEE: The operator fee for your Gnosis node. Set to 0 if no fee is required.

  • GNOSIS_MANAGEMENT_KEY_PUBLIC_ADDRESS: Public address of your Gnosis management key.

  • GNOSIS_OPERATIONAL_KEY_PUBLIC_ADDRESS: Public address of your Gnosis operational key.

  • GNOSIS_OPERATIONAL_KEY_PRIVATE_ADDRESS: Private address of your Gnosis operational key.

  • Keys (wallets) provided in this section will not be used for publishing operations.

  • Parameters for at least one blockchain are required for the node to be deployed sucessfully.

  • If the operational keys are not funded with the native token on the blockchain of choice, Node Engine will fail to create its blockchain profile.

2.6 - MySQL password

During the deployment process, the password you provide via DB_PASSWORD parameter will be set as the root password for the MySQL database. By default, the password is set to otnodedb but you can change it as you like.

🔐 This root password is critical for accessing and managing your Edge node’s database. Do not share it or lose it.

2.7 - GitHub Credentials

To deploy private GitHub repositories, you will need to provide a valid GitHub personal access token (PAT). This token grants the access to your private repositories, allowing deployment of your custom Edge Node services.

  • REPOSITORY_USER: Your GitHub username.

  • REPOSITORY_AUTH: Your GitHub personal access token (token with appropriate scopes such as repo).

The token must be valid and have the necessary permissions to access your private repositories.

Ensure the token includes the repo scope, which provides access to private repositories and other related features.

Token example: ghp_1234abcd5678efgh9012ijklmnop34567890

2.8 - Edge node services (your forked repository URLs)

If you're deploying customized or forked versions of the Edge Node services, you can provide the URLs to your private repositories via parameters presented below. The installer will use these links to clone and deploy the services.

  • EDGE_NODE_KNOWLEDGE_MINING_REPO: Link to your fork of the knowledge mining service repository.

  • EDGE_NODE_DRAG_REPO: Link to your fork of the DRAG service repository.

  • EDGE_NODE_API_REPO: Link to your fork of the Edge Node API repository.

  • EDGE_NODE_UI_REPO: Link to your fork of the Edge Node user interface repository.

  • EDGE_NODE_AUTH_SERVICE_REPO: Link to your fork of the authentication service repository.

🔐 Make sure your GitHub access token has the repo scope and is valid for cloning private repositories. Use the same token and username in the form fields provided above.

2.9 - OpenAI or Anthropic API keys

Edge Node components require a large language model (LLM) to operate. To ensure full functionality, you must provide at least one of the supported external API keys below:

  • OpenAI API Key (OPENAI_API_KEY) – Used to access OpenAI’s GPT models. Example: sk-4hsR2exampleXv29NSHtDyzt0NlFgk1LXj6zS7

  • Anthropic API Key (ANTHROPIC_API_KEY) – Used to access Anthropic’s Claude models. Example: claude-56a8e5eexamplef27b5b6e47b1

[OPTIONAL] Additional Edge node features

The Edge Node supports additional external services and tools that can be configured via the .env file before running the installer. Below is a list of supported services represented as configuration parameters:

3. Deployment

Once all configuration parameters have been populated inside the .env correctly, you can proceed with deploying your Edge Node solution by running the edge-node-installer with the command below:

bash edge-node-installer.sh

4. Monitor the deployment process

To monitor the installation progress, SSH into your server using new terminal tab, cd into edge-node-installer directory and run the following command:

bash service-status.sh

This script will display the installation progress and current status of each Edge Node service.

While services are still being installed, a loading spinner will be shown for each one (as shown on the image below).

Installation in progress

Once all services are marked as "Active", your Edge Node is fully operational and ready to use.

Edge node deployment finalized

5. Access your Edge node interface

Upon successful installation, the Edge Node user interface will be accessible at http://<your-server-ip>/login. Replace <your-server-ip> with the actual public IP address of your deployed server.

Default login credentials:

  • Username: my_edge_node

  • Password: edge_node_pass

6. Control and Manage Edge Node Services

Below is a list of the deployed services and how to manage them using systemd. All Edge Node services are deployed as systemd units, making them easy to manage.

List of Services:

  1. Edge Node API - edge-node-api.service

  2. Authentication Serviceauth-service.service

  3. Knowledge Mining APIka-mining-api.service

  4. DRAG APIdrag-api.service.service

  5. OTNodeotnode.service

Managing Services:

For each service, you can perform the following actions using the respective systemd commands:

  • Check service status: systemctl status <service-name>

  • Start a service (if it is not already running): systemctl start <service-name>

  • Stop a service: systemctl stop <service-name>

  • Restart a service: systemctl restart <service-name>

  • View Service Logs: journalctl -f -u <service-name>

Need assistance?

In case any of the services show an 'Inactive' status, you can contact our developers for assistance. Please reach out via Discord or email us at [email protected]. Be sure to include the installation log file (installation_process.log), which can be found in the /root/edge-node-installer/log/ directory.

Last updated

Was this helpful?