Skip to content

Docker

We publish official Docker images for each release. Sirveo is designed to run well in containerized environments. Configuration is typically provided via environment variables, instead of a configuration file.

Regarding Licensing

See the licensing reference for how to configure a license. Without a valid license, the server will start in restricted mode. You can obtain a free evaluation licenses here.

Note that our official Docker images have SIRVEO_EULA_ACCEPT configured to no. Change this setting to yes if you agree to the terms of Sirveo’s EULA.

Public Docker Repo

Sirveo publishes official images on Docker Hub. These images are based on amd64 Linux. Images for arm64 Linux are not available yet. See below for building your own.

Terminal window
docker pull sirveo/sirveo:stable

Custom Docker Images

  1. Obtain a Sirveo binary here.

  2. Official images are built with a dockerfile similar to this:

    FROM alpine:latest
    WORKDIR /usr/bin
    COPY /path/to/sirveo-amd64-linux ./sirveo
    # config: general
    ARG SIRVEO_LOG_LEVEL=INFO
    # config: license
    ARG SIRVEO_EULA_ACCEPT="no"
    ARG SIRVEO_LICENSE=""
    # config: database
    ARG SIRVEO_DB_TYPE=postgres
    ARG SIRVEO_DB_HOST=localhost
    ARG SIRVEO_DB_PORT=5432
    ARG SIRVEO_DB_NAME=sirveo
    ARG SIRVEO_DB_USER=changeme
    ARG SIRVEO_DB_PASSWORD=changeme
    ARG SIRVEO_DB_SSLMODE=prefer
    # config: default user
    ARG SIRVEO_CREATE_DEFAULT_USER=false
    ARG SIRVEO_DEFAULT_USERNAME=admin
    ARG SIRVEO_DEFAULT_PASSWORD=sirveoadmin
    # config: networking
    ARG SIRVEO_LISTEN_ADDRESS_ADMIN=0.0.0.0:7001
    ARG SIRVEO_LISTEN_ADDRESS_INBOUND=0.0.0.0:7005
    ARG SIRVEO_URL_ADMIN="http://localhost:7001"
    ARG SIRVEO_URL_INBOUND="http://localhost:7005"
    ARG SIRVEO_IP_HEADER_ADMIN=""
    ARG SIRVEO_IP_HEADER_INBOUND=""
    ARG SIRVEO_ENABLE_CORS=false
    # config: API authentication
    ARG SIRVEO_JWT_SIGNING_SECRET=""
    ARG SIRVEO_JWT_EXPIRY="4h"
    # config: data retention
    ARG SIRVEO_RETENTION_PERIOD_SCHEDULES="24h"
    ARG SIRVEO_RETENTION_PERIOD_EVENTS="720h"
    # config: telemetry
    ARG SIRVEO_TELEMETRY_MODE=disabled
    # config: other
    ARG SIRVEO_DATA_DIR=""
    EXPOSE 7001 7005
    CMD ["/usr/bin/sirveo", "server"]
  3. Customize the default configuration as appropriate, or override at runtime.

Docker Compose

Running Sirveo with Docker compose is useful for local testing environments.

The following Docker compose file is based on the official image. You can use it as-is, apart from configuring a license.

# sirveo.io
version: "3.1"
services:
# ============================================ postgres
db:
image: "postgres"
restart: "always"
environment:
POSTGRES_DB: "sirveo_app"
POSTGRES_USER: "sirveo_user"
POSTGRES_PASSWORD: "sirveo_pass"
# ============================================ sirveo
sirveo:
image: "sirveo/sirveo:stable"
restart: "always"
ports:
- "7001:7001"
- "7005:7005"
environment:
# config: general
SIRVEO_LOG_LEVEL: "INFO"
# config: license
SIRVEO_EULA_ACCEPT: "no"
SIRVEO_LICENSE: ""
# config: db
SIRVEO_DB_TYPE: "postgres"
SIRVEO_DB_HOST: "db"
SIRVEO_DB_PORT: 5432
SIRVEO_DB_NAME: "sirveo_app"
SIRVEO_DB_USER: "sirveo_user"
SIRVEO_DB_PASSWORD: "sirveo_pass"
SIRVEO_DB_SSLMODE: "prefer"
# config: default user
SIRVEO_CREATE_DEFAULT_USER: "true"
SIRVEO_DEFAULT_USERNAME: "admin"
SIRVEO_DEFAULT_PASSWORD: "sirveoadmin"
# config: networking
SIRVEO_LISTEN_ADDRESS_ADMIN: "0.0.0.0:7001"
SIRVEO_LISTEN_ADDRESS_INBOUND: "0.0.0.0:7005"
SIRVEO_URL_ADMIN: "http://localhost:7001"
SIRVEO_URL_INBOUND: "http://localhost:7005"
SIRVEO_IP_HEADER_ADMIN: ""
SIRVEO_IP_HEADER_INBOUND: ""
SIRVEO_ENABLE_CORS: "false"
# config: API authentication
SIRVEO_JWT_SIGNING_SECRET: ""
SIRVEO_JWT_EXPIRY: "4h"
# config: data retention
SIRVEO_RETENTION_PERIOD_SCHEDULES: "24h"
SIRVEO_RETENTION_PERIOD_EVENTS: "720h"
# config: telemetry
SIRVEO_TELEMETRY_MODE: "disabled"
# config: other
SIRVEO_DATA_DIR: ""