jokneemo/unimus

By jokneemo

Updated 5 days ago

Lightweight Docker container for Unimus, a network automation and configuration management solution.

Image
Networking
Security
Monitoring & observability
0

1.8K

jokneemo/unimus repository overview

Unimus Docker

Auto Release Dev Server Build Dev Core Build

Lightweight Docker container for Unimus, a network automation and configuration management solution.

Available on:

Docker Compose

Unimus Server
name: unimus-server
services:
    unimus:
        image: jokneemo/unimus:latest # Docker Hub
        #image: ghcr.io/jokneemo/unimus:latest # GitHub Container Registry
        restart: unless-stopped
        ports:
            - "8085:8085" # Unimus Web UI
            - "5509:5509" # Unimus Core
        environment:
            TZ: America/New_York
            
            # Application Settings
            PROP_LICENSE_KEY: your-license-key
            PROP_DATABASE_ENCRYPTION_KEY: secure-encryption-key-string
            
            # Database Settings
            PROP_DATABASE_TYPE: POSTGRESQL
            PROP_DATABASE_HOST: postgres
            PROP_DATABASE_PORT: 5432
            PROP_DATABASE_NAME: unimus
            PROP_DATABASE_USER: unimus
            PROP_DATABASE_PASSWORD: database-password

    postgres:
        image: postgres:17-alpine
        restart: unless-stopped
        environment:
            POSTGRES_USER: unimus
            POSTGRES_PASSWORD: database-password
            POSTGRES_DB: unimus
        volumes:
            - ./postgres:/var/lib/postgresql/data
Unimus Core
name: unimus-core
services:
    unimus-core:
        image: jokneemo/unimus-core:latest # Docker Hub
        #image: ghcr.io/jokneemo/unimus-core:latest # GitHub Container Registry
        restart: unless-stopped
        volumes:
            - /usr/share/zoneinfo/America/New_York:/etc/localtime:ro
        environment:
          TZ: America/New_York

          # Unimus Props (/etc/unimus-core/unimus-core.properties)
          PROP_UNIMUS_ADDRESS: 10.10.10.58
          PROP_UNIMUS_PORT: 5509
          PROP_UNIMUS_ACCESS_KEY: really_long_access_key_from_the_zone_of_this_core

          # Java Settings
          #JAVA_XMS: 512m
          #JAVA_XMX: 1024m
          #JAVA_OPTS:

Configuration Variables

Unimus Server Properties

Any setting in unimus.properties can be set via environment variables prefixed with PROP_. The container startup script automatically converts these variables:

  1. Removes the PROP_ prefix.
  2. Converts to lowercase.
  3. Replaces underscores _ with dots ..

Example: PROP_DATABASE_HOST becomes database.host.

VariablePropertyDescription
PROP_LICENSE_KEYlicense.keyRequired. Your Unimus license key.
PROP_DATABASE_ENCRYPTION_KEYdatabase.encryption.keyRequired. Key used to encrypt sensitive data in the database.
PROP_DATABASE_TYPEdatabase.typeDatabase type. Values: HSQL, MARIADB, MSSQL, MYSQL, POSTGRESQL.
PROP_DATABASE_HOSTdatabase.hostDatabase hostname.
PROP_DATABASE_PORTdatabase.portDatabase port (e.g., 5432).
PROP_DATABASE_NAMEdatabase.nameDatabase name.
PROP_DATABASE_USERdatabase.userDatabase username.
PROP_DATABASE_PASSWORDdatabase.passwordDatabase password.
PROP_LOGGING_FILE_SIZElogging.file.sizeLog file size in MB (1-2047). Default: 50.
PROP_LOGGING_FILE_COUNTlogging.file.countMax number of log files. Default: 9.
PROP_CORE_CONNECTION_SERVER_PORTcore.connection.server.portCore connection port. Default: 5509.

For a full list of available properties, see the Unimus Wiki.

Unimus Core Properties

Any setting in unimus-core.properties can be set via environment variables prefixed with PROP_. The container startup script automatically converts these variables:

  1. Removes the PROP_ prefix.
  2. Converts to lowercase.
  3. Replaces underscores _ with dots ..

Example: PROP_UNIMUS_ADDRESS becomes unimus.address.

VariablePropertyDescription
PROP_UNIMUS_ADDRESSunimus.addressRequired. The IP address or hostname of the Unimus server.
PROP_UNIMUS_PORTunimus.portRequired. The port number of the Unimus server.
PROP_UNIMUS_ACCESS_KEYunimus.access.keyRequired. The access key for the Unimus server.

For a full list of available properties, see the Unimus Wiki.

Java Configuration
VariableDescriptionDefault
JAVA_XMSInitial Java heap size.128m (Unimus default)
JAVA_XMXMaximum Java heap size.1024m (Unimus default)
JAVA_OPTSAdditional arguments passed to the Java runtime.-
System Configuration
VariableDescription
TZSets the container timezone (e.g., America/New_York).
Unimus Server Defaults (Advanced)

You can configure system defaults (found in /etc/default/unimus) using environment variables prefixed with DEFAULT_. The conversion logic is the same as PROP_ variables:

  1. Removes DEFAULT_ prefix.
  2. Converts to lowercase.
  3. Replaces underscores _ with dots ..

Important: For properties containing hyphens (e.g. discovery-disabled), you must use a hyphen in the environment variable name. This works in Docker Compose but may not be supported by all shells if running manually.

Disabling Unimus Server Features

Common use cases for disabling specific Unimus Server features:

VariablePropertyDescription
DEFAULT_UNIMUS_CORE_DISCOVERY-DISABLEDunimus.core.discovery-disabledDisable discovery jobs.
DEFAULT_UNIMUS_CORE_BACKUP-DISABLEDunimus.core.backup-disabledDisable backup jobs.
DEFAULT_UNIMUS_CORE_PUSH-DISABLEDunimus.core.push-disabledDisable config push jobs.
DEFAULT_UNIMUS_CORE_SCAN-DISABLEDunimus.core.scan-disabledDisable network scan jobs.
DEFAULT_UNIMUS_CORE_DEVICE-CLI-DISABLEDunimus.core.device-cli-disabledDisable device CLI access.
DEFAULT_UNIMUS_SERVER_CORE_LISTENER-DISABLEDunimus.server.core.listener-disabledDisable the remote core listener (port 5509).
Unimus Server Address
VariablePropertyDescription
DEFAULT_SERVER_ADDRESSserver.addressBind address. Default: 0.0.0.0
DEFAULT_SERVER_PORTserver.portWeb UI Port. Default: 8085
File Generation

The container automatically generates configuration files at startup based on your environment variables. You can disable this behavior if you prefer to mount your own configuration files.

VariableDefaultDescription
MAKE_PROPERTIEStrueIf true, generates /etc/unimus/unimus.properties or /etc/unimus-core/unimus-core.properties from PROP_ variables.
MAKE_DEFAULTStrueIf true, generates /etc/default/unimus from DEFAULT_ variables. (Server only)

Development Builds

Development builds of Unimus Server and Core are available by using the dev image tag.

image: jokneemo/unimus:dev
image: jokneemo/unimus-core:dev

These images are built automatically when a new public development build is available.

Tag summary

Content type

Image

Digest

sha256:c9dbca21b

Size

212.2 MB

Last updated

5 days ago

docker pull jokneemo/unimus:dev