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.
docker pull sirveo/sirveo:stable
Custom Docker Images
-
Obtain a Sirveo binary here.
-
Official images are built with a dockerfile similar to this:
FROM alpine:latestWORKDIR /usr/binCOPY /path/to/sirveo-amd64-linux ./sirveo# config: generalARG SIRVEO_LOG_LEVEL=INFO# config: licenseARG SIRVEO_EULA_ACCEPT="no"ARG SIRVEO_LICENSE=""# config: databaseARG SIRVEO_DB_TYPE=postgresARG SIRVEO_DB_HOST=localhostARG SIRVEO_DB_PORT=5432ARG SIRVEO_DB_NAME=sirveoARG SIRVEO_DB_USER=changemeARG SIRVEO_DB_PASSWORD=changemeARG SIRVEO_DB_SSLMODE=prefer# config: default userARG SIRVEO_CREATE_DEFAULT_USER=falseARG SIRVEO_DEFAULT_USERNAME=adminARG SIRVEO_DEFAULT_PASSWORD=sirveoadmin# config: networkingARG SIRVEO_LISTEN_ADDRESS_ADMIN=0.0.0.0:7001ARG SIRVEO_LISTEN_ADDRESS_INBOUND=0.0.0.0:7005ARG 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 authenticationARG SIRVEO_JWT_SIGNING_SECRET=""ARG SIRVEO_JWT_EXPIRY="4h"# config: data retentionARG SIRVEO_RETENTION_PERIOD_SCHEDULES="24h"ARG SIRVEO_RETENTION_PERIOD_EVENTS="720h"# config: telemetryARG SIRVEO_TELEMETRY_MODE=disabled# config: otherARG SIRVEO_DATA_DIR=""EXPOSE 7001 7005CMD ["/usr/bin/sirveo", "server"] -
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: ""