Skip to content

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

Sicura Console container images are available from our container registry. You can pull the latest stable release using:

registry.customers.sicura.us/products/sicura-console:latest

For specific versions, use the version tag (current version is 2025.5.0):

registry.customers.sicura.us/products/sicura-console: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:

  1. Install PostgreSQL.

    yum -y install postgresql-server
    

  2. Initialize the database.

    postgresql-setup initdb
    

  3. Enable password authentication for localhost.

    sed -i \
        -e '/^host\s*all\s*all\s*[0-9:./]*\s*ident$/ s|ident|md5|' \
        /var/lib/pgsql/data/pg_hba.conf
    

  4. Enable and start the database service.

    systemctl enable postgresql --now
    

  5. Create a database and user for Sicura Console.

    runuser -l postgres -c "psql" <<END
    CREATE DATABASE sicura_console;
    CREATE USER sicura_console WITH ENCRYPTED PASSWORD 'your-secure-password';
    GRANT ALL PRIVILEGES ON DATABASE sicura_console TO sicura_console;
    END
    

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 settings
  • SICURA_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 User
  • DB_PASSWORD: Postgres Database Password
  • DB_HOST: Postgres Database Host
  • DB_PORT: Postgres Database Port
  • DB_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:

docker-compose up -d