Installing Synnax
Install the Synnax core components.
The first step to getting started with Synnax is to install two key components: the Console and Cluster.
Install the Console
The console is our primary user interface for interacting with a Synnax deployment. We can set up visualizations to observe data, integrate and configure data acquisition devices, and manually control actuators on our system. Here’s the link to download the latest version of the console for your OS:
After downloading and running the installer, you’ll see a splash screen that looks like this:
Plotting Demo Data
To make sure everything is working correctly, we’ll plot some live data. Our team has
a demo cluster running in the cloud that we can connect to. Head to the cluster
dropdown in the bottom left corner, and select the cluster named Demo
.
You’ll see the connection status badge on the right turn blue, indicating that the connection is healthy.
Next, click on the workspace selector in the top right corner of the screen. This will open a dropdown menu where we can select the workspace we want to use. Choose the “Demo” workspace. You’ll see the console automatically re-configure its layout to match the workspace, and a new plot will appear with a live stream of data.
Installing the Cluster
Now that the Console is up and running, we’ll install our own Synnax cluster locally. The cluster is the core of every Synnax deployment. It’s where all sensor and actuator data is stored, and it serves as a central hub where all of our devices, operator consoles, and control sequences will communicate.
Using Docker
A Synnax cluster within a container has an isolated runtime, which means that it’s not currently able to access devices attached to the host machine. If you’re interested in connecting data acquisition devices using our built-in drivers, we recommend installing Synnax directly on the host OS using one of the other installation methods.
The simplest way to start a single node cluster is by using the
synnaxlabs/synnax
Docker image, simply run:
docker run -p 9090:9090 synnaxlabs/synnax --listen=localhost:9090 --mem --insecure
This will pull the latest version of Synnax from Docker Hub and start a single node cluster with the following parameters:
-p 9090:9090
- This maps port 9090 on the host to port 9090 in the container.
This allows access to the Synnax node from the host machine.
--listen=localhost:9090
- This sets the address that the node will listen on.
This is the reachable adress of the node, and is also the address that other
nodes will use to connect when deploying a multi-node cluster.
--mem
- Tells the node to store all data in memory, which is useful for
learning and development.
--insecure
- Tells the node to run without TLS.
If you’re interested in more details on these flags, see the CLI Reference.
To stop the node, simply press Ctrl+C
in the terminal.
Using Linux
To start a single node cluster on Linux, first download the latest Synnax binary by running:
curl -LO github.com/synnaxlabs/synnax/releases/download/synnax-v0.37.0/synnax-v0.37.0-linux
Then, move the binary to /usr/local/bin
:
sudo mv synnax-v0.37.0-linux /usr/local/bin/synnax
Next, give execution permissions to the binary:
chmod +x /usr/local/bin/synnax
You’ll need to make sure that /usr/local/bin
is in your PATH
environment variable.
You can do this temporarily by running export PATH=$PATH:/usr/local/bin
.
Finally, start the node:
synnax start --listen=localhost:9090 --mem --insecure
This will start a single node cluster with the following parameters:
--listen=localhost:9090
- This sets the address that the node will listen on.
This is the reachable address of the node, and is also the address that other
nodes will use to connect when deploying a multi-node cluster.
--mem
- Tells the node to store all data in memory, which is useful for
learning and development.
--insecure
- Tells the node to run without TLS.
If you’re interested in more details on these flags, see the CLI Reference.
To stop the node, simply press Ctrl+C
in the terminal.
Using MacOS
To start a single node cluster on macOS, first download the latest Synnax binary by running:
curl -LO github.com/synnaxlabs/synnax/releases/download/synnax-v0.37.0/synnax-v0.37.0-macos
Next, move the binary to usr/local/bin
:
sudo mv synnax-v0.37.0-macos /usr/local/bin/synnax
Then, give execution permissions to the binary:
chmod +x /usr/local/bin/synnax
You’ll need to make sure that /usr/local/bin
is in your PATH
environment variable.
You can do this temporarily by running export PATH=$PATH:/usr/local/bin
.
Finally, start the node:
synnax start --listen=localhost:9090 --mem --insecure
This will start a single node cluster with the following parameters:
--listen=localhost:9090
- This sets the address that the node will listen on.
This is the reachable adress of the node, and is also the address that other
nodes will use to connect when deploying a multi-node cluster.
--mem
- Tells the node to store all data in memory, which is useful for
learning and development.
--insecure
- Tells the node to run without TLS.
If you’re interested in more details on these flags, see the CLI Reference.
To stop the node, simply press Ctrl+C
in the terminal.
Using Windows
To start a local cluster on Windows, use the following command in a PowerShell terminal to download the latest Synnax cluster.
$ErrorActionPreference="Stop"; [Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; $ProgressPreference='SilentlyContinue'; $null=New-Item -Type Directory -Force $env:appdata/synnax; Invoke-WebRequest -Uri github.com/synnaxlabs/synnax/releases/download/synnax-v0.37.0/synnax-v0.37.0-windows -OutFile synnax.exe; Copy-Item -Force "synnax.exe" -Destination $env:appdata/synnax; if (-not [Environment]::GetEnvironmentVariable("Path", "User").Contains("%APPDATA%synnax")) { [Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable("Path", "User") + ";%APPDATA%synnax", "User"); }; $env:PATH += ";$env:appdatasynnax"
Explanation of this command
This command is intimidating, so here’s a breakdown of what it does:
-
Set Error Handling:
$ErrorActionPreference="Stop";
- Configures PowerShell to stop execution immediately when an error is encountered.
-
Set Security Protocol:
[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12;
- Ensures that the TLS 1.2 protocol is used for secure connections, which is a modern and secure standard.
-
Disable Progress Display:
$ProgressPreference='SilentlyContinue';
- Suppresses the display of progress bars during script execution.
-
Create Directory for Synnax:
$null=New-Item -Type Directory -Force $env:appdata/synnax;
- Creates a directory named
synnax
in the%APPDATA%
folder (user’s application data folder). The-Force
flag ensures the directory is created even if it already exists.
-
Download the Synnax Executable:
Invoke-WebRequest -Uri github.com/synnaxlabs/synnax/releases/download/synnax-v0.37.0/synnax-v0.37.0-windows -OutFile synnax.exe;
- Downloads the
synnax-v0.37.0-windows
executable file from the specified GitHub URL and saves it assynnax.exe
in the current directory.
-
Copy Executable to AppData:
Copy-Item -Force "synnax.exe" -Destination $env:appdata/synnax;
- Copies the downloaded
synnax.exe
file to the newly created%APPDATA%\synnax
directory. The-Force
flag overwrites any existing file with the same name.
-
Update the User PATH Variable:
if (-not [Environment]::GetEnvironmentVariable("Path", "User").Contains("%APPDATA%synnax")) { [Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable("Path", "User") + ";%APPDATA%synnax", "User"); };
- Checks if the
%APPDATA%\synnax
directory is already in the user’s PATH environment variable. If not, appends it to the PATH.
-
Update Current Session PATH:
$env:PATH += ";$env:appdatasynnax"
- Updates the current PowerShell session’s PATH variable to include
%APPDATA%\synnax
, allowing the Synnax executable to be run without restarting the session.
To start the node, run this:
synnax start --listen=localhost:9090 --mem --insecure
This will start a single node cluster with the following parameters:
--listen=localhost:9090
- This sets the address that the node will listen on.
This is the reachable address of the node, and is also the address that other
nodes will use to connect when deploying a multi-node cluster.
--mem
- Tells the node to store all data in memory, which is useful for
learning and development.
--insecure
- Tells the node to run without TLS.
If you’re interested in more details on these flags, see the CLI Reference.
To stop the node, simply press Ctrl+C
in the terminal.
Connecting the Console to the Cluster
Now that we have a local cluster running, we’ll disconnect the console from the demo
cluster and connect it to our own. We’ve pre-populated the console with a connection
for the default admin user on a local cluster. To connect, head to the cluster dropdown
in the bottom right corner of the console and select the cluster named Local
.
Again, you’ll see the connection status badge on the right turn blue, indicating that the connection is healthy. If you’ve changed the username or password, or removed the connection, you’ll need to re-add it. Here are the connection details:
Host | localhost |
---|---|
Port | 9090 |
Username | synnax |
Password | seldon |
Secure | false |
Next Steps
Now that we have a local cluster running, it’s time to start acquiring data from a device. Check out our Device Drivers to start integrating your own hardware.