Building and running Signomix locally

In all documents relating to the development environment, it is assumed that all Git repositories are cloned to this common folder , e.g. /home/developer1/workspace.

NOTE!

All examples of commands and configuration files are given for Linux (Ubuntu distribution). For any other operating system, the examples given should be modified accordingly.

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

Required software

Java 17 JDK

Java is required to compile the code. For an example of how to install: 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 initiating new services using 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

Perform the installation according to: https://docs.docker.com/engine/install/ubuntu/

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

Once properly installed, you can check if everything works by running the hello-world test image one by one, then 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 the 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/ # check what version of Docker Compose docker compose version Docker Compose version v2.26.1

Preparing the environment

Working folder

In this document, the name working folder means a subfolder of the user's home folder. All required repositories of the Signomix platform will be cloned into the working folder. In all sample commands included in this document, the <WORKSPACE> designation should be replaced with the name of your choice.

# create a sample workspace folder in the user's home folder 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 not done before, clone all required repositories to the <WORKSPACE> working folder . This is facilitated by the init-dev-environment.sh script in the signomix repository. This script clones the required repositories and creates the folders that must be mounted as volumens for the 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 logins, passwords or API tokens. Signomix uses two Docker Compose mechanisms to solve this problem:

  • Docker Compose Secrets - https://docs.docker.com/compose/how-tos/use-secrets/
  • docker Compose' s 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 settings 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 development version

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

In case there are no local code changes, you can download the latest code versions from the repositories before calling the above command. This is facilitated by the pull-repositories.sh script

./pull-repositories.sh

Running the development version

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

The running platform is available at:

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

Predefined accounts:

AccountLoginPassword
Administratoradmintest123
Usertester1test123

Stopping the running version

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