Building and Running Signomix Locally

All documentation related to the development environment assumes that all Git repositories are cloned into this shared folder , e.g., /home/developer1/workspace.

NOTE!

All examples of commands and configuration files are provided for Linux (Ubuntu distribution). If you are using a different operating system, you must modify the examples accordingly.

It is assumed that all Git repositories are cloned into this shared folder <WORKSPACE>, e.g., /home/developer1/workspace.

Required Software

Java 17 JDK

Java is required to compile the code. Example installation instructions: https://www.itzgeek.com/how-tos/linux/ubuntu-how-tos/install-java-jdk-17-on-ubuntu-22-04.html?utm_content=cmp-true

sudo apt update
sudo apt install -y openjdk-17-jdk
java -version

Homepage: https://openjdk.org/

Git

sudo apt install git
git –version

Homepage: https://git-scm.com/

Maven

sudo apt install maven
mvn --version

Homepage: https://maven.apache.org/

Quarkus

Optional—useful for initializing new services that use the Quarkus framework

curl -Ls https://sh.jbang.dev | bash -s - trust add https://repo1.maven.org/maven2/io/quarkus/quarkus-cli/
curl -Ls https://sh.jbang.dev | bash -s - app install --fresh --force quarkus@quarkusio

Homepage: https://quarkus.io/get-started/

Docker

Follow the installation instructions at: https://docs.docker.com/engine/install/ubuntu/

Post-installation steps: https://docs.docker.com/engine/install/linux-postinstall/

Once successfully installed, you can verify that everything is working by running the hello-world test image first, followed by Docker Compose:

# Run hello-world
docker run hello-world

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image, which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

# Checking which version of Docker Compose you’re using
docker compose version
Docker Compose version v2.26.1

Setting up the environment

Working directory

In this document, the term “working directory” refers to a subfolder of the user’s home directory. All required Signomix platform repositories will be cloned into the workspace. In all example commands included in this document, replace <WORKSPACE> with the name of your choice.

# Create an example workspace in the user’s home directory
mkdir ~/workspace

Subdomain addresses

Modify the contents of the /etc/hosts file by adding the following lines:

# file /etc/hosts
127.0.0.1 localhost
127.0.0.1 app.localhost
127.0.0.1 www.localhost
127.0.0.1 view.localhost
127.0.0.1 cloud.localhost
127.0.0.1 documentation.localhost
127.0.0.1 telemetry.localhost
127.0.0.1 q1.localhost

Cloning Repositories

If you haven’t done so already, clone all required repositories into the <WORKSPACE> working directory. The init-dev-environment.sh script in the signomix repository makes this easier. This script clones the required repositories and creates the folders that must be mounted as volumes for Docker containers.

cd ~/<WORKSPACE>
git clone https://github.com/signomix/signomix
cd signomix
sh init-dev-environment.sh

Managing Configuration Secrets

Some configuration parameters should not be stored in publicly accessible repositories. This applies, for example, to usernames, passwords, or API tokens. Signomix uses two Docker Compose mechanisms to address this issue:

  • Docker Compose Secrets - https://docs.docker.com/compose/how-tos/use-secrets/
  • the Docker Compose ` env_file ` attribute - https://docs.docker.com/compose/how-tos/environment-variables/set-environment-variables/#use-the-env_file-attribute

The init-dev-environment.sh script copies a set of configuration files to the .secrets directory in the user’s home directory (see: init-runtime-environment.sh).

Before running Signomix, review the contents of the files in the ~/.secrets directory and replace the settings with your own.

Building the developer version

cd ~/<WORKSPACE>/signomix
./build-images.sh

If there are no local changes to the code, you can download the latest versions of the code from the repositories before running the command above. The pull-repositories.sh script makes this easier

./pull-repositories.sh

Running the developer version

cd ~/<WORKSPACE>/signomix
./runInDevEnvironment.sh up -d

The running platform is available at the following addresses:

  • http://www.localhost
  • http://cloud.localhost
  • http://view.localhost
  • http://documentation.localhost
  • http://telemetry.localhost
  • http://q1.localhost

Predefined accounts:

AccountUsernamePassword
Administratoradmintest123
Usertester1test123

Stopping the running instance

cd ~/<WORKSPACE>/signomix
./runInDevEnvironment.sh down
© 2023-2025 Grzegorz Skorupa