This project hosts the Containerfile and the required scripts to build a OpenVoxDB container image.
For compose file see: CRAFTY
The OpenVoxDB container requires a working postgres container or other suitably configured PostgreSQL database. For a Compose example see the CRAFTY OSS Demo compose.yaml
You can change configuration settings by mounting volumes containing configuration files or by using this image as a base image. For the defaults, see the Containerfiles and supporting folders.
Before updating to a newer version of your container, you should check the migration document
Images are published to ghcr.io/openvoxproject/openvoxdb and
docker.io/voxpupuli/openvoxdb. Ubuntu is the default image variant and
therefore has no operating system suffix. Alpine images use the -alpine
suffix.
| Tag | Example | Description |
|---|---|---|
<openvoxdb.version>-v<container.version> |
8.13.0-v1.2.3 |
Immutable Ubuntu container release |
<openvoxdb.version>-v<container.version>-alpine |
8.13.0-v1.2.3-alpine |
Immutable Alpine container release |
<openvoxdb.version> |
8.13.0 |
Latest build for an OpenVoxDB version, using Ubuntu |
<openvoxdb.version>-alpine |
8.13.0-alpine |
Latest Alpine build for an OpenVoxDB version |
<openvoxdb.major> |
8 |
Latest build for an OpenVoxDB major version, using Ubuntu |
<openvoxdb.major>-alpine |
8-alpine |
Latest Alpine build for an OpenVoxDB major version |
latest |
latest |
Latest Ubuntu build from the main branch |
latest-alpine |
latest-alpine |
Latest Alpine build from the main branch |
Builds from the main branch are additionally tagged as
<openvoxdb.version>-main and <openvoxdb.version>-main-alpine.
Example using an immutable container release:
podman pull ghcr.io/openvoxproject/openvoxdb:8.13.0-v1.2.3The OpenVoxDB version describes the database version contained in the image. The container version follows semantic versioning and describes changes to the container image independently of the OpenVoxDB version.
The image runs with GID 0 and supports any runtime UID. GID 0 is what allows file access.
Volumes can be adjusted to it via:
chgrp -R 0 <dir> && chmod -R g+rwX <dir>| Name | Usage / Default |
|---|---|
| CERTNAME | The DNS name used on this services SSL certificateopenvoxdb |
| DNS_ALT_NAMES | Additional DNS names to add to the services SSL certificate Unset |
| LOGDIR | Path of the log directory/opt/puppetlabs/server/data/puppetdb/logs |
| OPENVOXDB_CERTIFICATE_ALLOWLIST | Set to a comma seaprated list of allowed certnames."" |
| OPENVOXDB_JAVA_ARGS | Arguments passed directly to the JVM when starting the service-Djava.net.preferIPv4Stack=true -Xms256m -Xmx256m -XX:+UseParallelGC -Xlog:gc*:file=$LOGDIR/openvoxdb_gc.log -Djdk.tls.ephemeralDHKeySize=2048 |
| OPENVOXDB_NODE_PURGE_TTL | Automatically delete nodes that have been deactivated or expired for the specified amount of time14d |
| OPENVOXDB_NODE_TTL | Mark as ‘expired’ nodes that haven’t seen any activity (no new catalogs, facts, or reports) in the specified amount of time7d |
| OPENVOXDB_POSTGRES_DATABASE | The name of the openvoxdb database in postgresopenvoxdb |
| OPENVOXDB_POSTGRES_HOSTNAME | The DNS hostname of the postgres servicepostgres |
| OPENVOXDB_POSTGRES_PASSWORD | The openvoxdb database passwordopenvoxdb |
| OPENVOXDB_POSTGRES_PORT | The port for postgres5432 |
| OPENVOXDB_POSTGRES_USER | The openvoxdb database useropenvoxdb |
| OPENVOXDB_REPORT_TTL | Automatically delete reports that are older than the specified amount of time14d |
| OPENVOXDB_WAITFORHEALTH_SECONDS | Number of seconds to wait for OpenVoxDB to be healthy360 |
| OPENVOXDB_WAITFORHOST_SECONDS | Number of seconds to wait for OpenVoxDB to be available30 |
| OPENVOXDB_WAITFORPOSTGRES_SECONDS | Number of seconds to wait for postgres to be available60 |
| OPENVOXSERVER_HOSTNAME | The DNS hostname of the OpenVox serverpuppet |
| OPENVOXSERVER_PORT | The port of the OpenVox server8140 |
| SSLDIR | Path of the SSL directory/opt/puppetlabs/server/data/puppetdb/certs |
| USE_OPENVOXSERVER | Set to false to skip acquiring SSL certificates from a OpenVox Server.true |
| WAITFORCERT | Number of seconds to wait for certificate to be signed120 |
The directory structure follows the following conventions. The full path is always available inside the container as the environment variable $SSLDIR
-
'ssl-ca-cert'
/opt/puppetlabs/server/data/puppetdb/certs/certs/ca.pem -
'ssl-cert'
/opt/puppetlabs/server/data/puppetdb/certs/certs/<certname>.pem -
'ssl-key'
/opt/puppetlabs/server/data/puppetdb/certs/private_keys/<certname>.pem
If you would like to do additional initialization, add a directory called /container-custom-entrypoint.d/ and fill it with .sh scripts.
These scripts will be executed at the end of the entrypoint script, before the service is run.