Container Installation¶
This guide provides comprehensive instructions for installing and running the Sicura Console as a container. The documentation is organized into logical sections:
- Container Images - Information on available container images
- PostgreSQL Setup - Options for setting up the required database
- Configuration - Required and optional container configuration
- Running the Container - Different deployment options
Container Images¶
Sicura Console container images are available from our container registry. You can pull the latest stable release using:
For specific versions, use the version tag (current version is 2025.5.0):
Requirements¶
PostgreSQL Server¶
A PostgreSQL server (version 15 or higher) is required in order to run the Console. A production implementation of PostgreSQL is recommended.
IMPORTANT: The 2025.5.0 release requires a new, fresh database installation. Migrating data from previous versions or RPM-based installations is not currently supported. If you're upgrading from a previous version, you'll need to create a new database and reconfigure your environment.
Option 1: Using an existing PostgreSQL server¶
If you have an existing PostgreSQL server, create a new database and user for Sicura Console:
# Connect to your PostgreSQL server
psql -U postgres
# Create a new database and user
CREATE DATABASE sicura_console;
CREATE USER sicura_console WITH ENCRYPTED PASSWORD 'your-secure-password';
GRANT ALL PRIVILEGES ON DATABASE sicura_console TO sicura_console;
Option 2: Installing PostgreSQL on RHEL/CentOS¶
To install PostgreSQL on a Red Hat/CentOS server:
-
Install PostgreSQL.
-
Initialize the database.
-
Enable password authentication for localhost.
-
Enable and start the database service.
-
Create a database and user for Sicura Console.
Option 3: Using PostgreSQL in a container¶
Alternatively, you can run PostgreSQL in a container:
docker run --name postgres \
-p 5432:5432 \
-e POSTGRES_USER=sicura_console \
-e POSTGRES_PASSWORD=your-secure-password \
-e POSTGRES_DB=sicura_console \
-v postgres_data:/var/lib/postgresql/data \
--restart unless-stopped \
-d postgres:17
Console Environment Variables¶
Environment variables are used to customize the Console.
Required¶
License Key¶
A valid License Key needs to be set with one of the following variables:
SICURA_LICENSE_KEY: A valid Sicura License Key as a String.SICURA_LICENSE_KEY_FILE: A path to a valid Sicura License Key. File must be mounted during run.
Config¶
A valid Config needs to be set with one of the following variables:
SICURA_CONFIG: A YAML parseable Hash containing other Console config settingsSICURA_CONFIG_FILE: A path for a Console config file. File must be mounted during run.
Database¶
The Postgresql Server database information from above is required to be set using the following variables:
DB_USER: Postgres Database UserDB_PASSWORD: Postgres Database PasswordDB_HOST: Postgres Database HostDB_PORT: Postgres Database PortDB_DATABASE: Postgres Database Name
Optional¶
Directory Services¶
Directory Services can be set with one of the following variables:
SICURA_DIRECTORY_SERVICES: A YAML parseable Hash containing Directory Services settings.SICURA_DIRECTORY_SERVICES_FILE: A file path containing Directory Services settings. File must be mounted during run.
Running the Console Container¶
This section provides different options for running the Sicura Console container based on your deployment needs.
Option 1: Basic Container Deployment¶
The simplest way to start the Sicura Console container:
docker run --name sicura-console -p 6468:6468 --rm -d \
-e SICURA_LICENSE_KEY="your-license-key-here" \
-e DB_USER="sicura_console" \
-e DB_PASSWORD="your-secure-password" \
-e DB_HOST="your-db-host" \
-e DB_PORT="5432" \
-e DB_DATABASE="sicura_console" \
-e SICURA_CONFIG="{main: {port: 6468}}" \
registry.customers.sicura.us/products/sicura-console:latest
Option 2: Using Volume Mounts for Configuration and Data¶
For a more persistent deployment with configuration files:
# Create configuration directory
mkdir -p /path/to/config
# Create or copy your license key and config files
echo "your-license-key" > /path/to/config/license.key
# Create sicura-console.yaml with your configuration
# Run container with mounted volumes
docker run --name sicura-console -p 6468:6468 -d \
-v /path/to/config:/etc/sicura/config \
-v /path/to/data:/var/lib/sicura \
-e SICURA_LICENSE_KEY_FILE=/etc/sicura/config/license.key \
-e SICURA_CONFIG_FILE=/etc/sicura/config/sicura-console.yaml \
-e DB_USER="sicura_console" \
-e DB_PASSWORD="your-secure-password" \
-e DB_HOST="your-db-host" \
-e DB_PORT="5432" \
-e DB_DATABASE="sicura_console" \
--restart unless-stopped \
registry.customers.sicura.us/products/sicura-console:latest
Option 3: Using Docker Compose¶
For more complex deployments integrating both PostgreSQL and Sicura Console, Docker Compose is recommended:
version: '3'
services:
db:
image: postgres:17
environment:
POSTGRES_USER: sicura_console
POSTGRES_PASSWORD: your-secure-password
POSTGRES_DB: sicura_console
volumes:
- postgres_data:/var/lib/postgresql/data
restart: unless-stopped
console:
image: registry.customers.sicura.us/products/sicura-console:latest
ports:
- "6468:6468"
environment:
SICURA_LICENSE_KEY: "${SICURA_LICENSE_KEY}"
# Alternatively, you can use:
# SICURA_LICENSE_KEY_FILE: "/etc/sicura/config/license.key"
# SICURA_CONFIG_FILE: "/etc/sicura/config/sicura-console.yaml"
DB_USER: "sicura_console"
DB_PASSWORD: "your-secure-password"
DB_HOST: "db"
DB_PORT: "5432"
DB_DATABASE: "sicura_console"
volumes:
- console_config:/etc/sicura/config
- console_data:/var/lib/sicura
depends_on:
- db
restart: unless-stopped
volumes:
postgres_data:
console_config:
console_data:
Save this as docker-compose.yml and run: