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 (for example, 2026.6.0):

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

SSL

To have the Console serve HTTPS directly (as an alternative to terminating SSL in a reverse proxy), the key and certificate can be provided with:

  • SICURA_SSL_KEY: The SSL private key contents. Written to /etc/sicura/ssl.key inside the container.
  • SICURA_SSL_CERT: The SSL certificate contents. Written to /etc/sicura/ssl.cert inside the container.

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 80:80 --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" \
  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 80:80 -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:
      - "80:80"
    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