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 (for example, 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:
-
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.
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.keyinside the container.SICURA_SSL_CERT: The SSL certificate contents. Written to/etc/sicura/ssl.certinside 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: