DVLS 2026.3 Docker image: DATABASE_TYPE=PostgreSQL found in the binary, but not documented - please confirm usage
Hello together,
DVLS 2026.3 added PostgreSQL as a database backend (release notes 2026.3.5.0, and the blog post "Run Devolutions Server on PostgreSQL" of Oct 14, 2026, which also mentions Linux and Docker deployments). The documentation has not been updated for the Docker image yet:
- "Advanced Docker configuration for Devolutions Server" still lists only SQL Server variables (DATABASE_HOST, DATABASE_PORT with default 1433, DATABASE_ENCRYPT, DATABASE_TRUST_SERVER_CERTIFICATE, AZURE_SQL_*) and describes the "SQL Server connection string".
- "Deploy Devolutions Server with Docker" lists an SQL Server instance as the only prerequisite.
- "Install Devolutions Server for Linux" still uses the SQL Server flow.
- "System requirements" only says "PostgreSQL is supported", without supported versions.
I inspected the image devolutions/devolutions-server:release-2026.3 (digest sha256:755c87a8...) without starting it:
- It ships Npgsql.dll and Npgsql.EntityFrameworkCore.PostgreSQL.dll.
- The entrypoint is the DVLS binary itself (--container-entrypoint), so there is no script that shows the variables.
- Devolutions.Server.dll contains a new variable DATABASE_TYPE and the error message "DATABASE_TYPE must be 'SqlServer', 'PostgreSQL', or 'SQLite'". It also contains DATABASE_PATH, DVLS_PG_DUMP_PATH, DVLS_PG_RESTORE_PATH and DVLS_DATABASE_UPGRADE_ON_STARTUP, plus an embedded PostgreSqlBaseline.sql.
My assumption is that the container is configured like this, but I have not confirmed it:
-e DATABASE_TYPE=PostgreSQL
-e DATABASE_HOST=<host> -e DATABASE_PORT=5432
-e DATABASE_NAME=<db> -e DATABASE_USERNAME=<user> -e DATABASE_PASSWORD=<password>
Questions:
1. Is DATABASE_TYPE=PostgreSQL officially supported with the Docker image? What are the exact accepted values (SqlServer / PostgreSQL / SQLite)?
2. How are DATABASE_ENCRYPT and DATABASE_TRUST_SERVER_CERTIFICATE mapped for PostgreSQL (SSL mode)? Are there PostgreSQL-specific variables?
3. Does the database have to exist before DVLS_INIT=true, or is it created automatically like on SQL Server?
4. DVLS_UPDATE_MODE creates a backup: does this need pg_dump / pg_restore (DVLS_PG_DUMP_PATH, DVLS_PG_RESTORE_PATH), and are these tools included in the image or do I have to provide them?
5. Which PostgreSQL versions are supported?
6. Is there an ETA for updating the Docker and Linux documentation?
Environment: Docker (current version) on a Linux x86_64 host, DVLS release-2026.3 (existing SQL Server instance on 2026.3.10.0, PostgreSQL planned only for a new test installation, no migration).
Thanks!
Best regards,
Alex
Hi Alex,
Thanks for the detailed report. Your reading of the binary is correct, and the Docker and Linux documentation is behind. Here are the answers:
1. DATABASE_TYPE
Yes, DATABASE_TYPE=PostgreSQL is supported in Docker. Accepted values are SqlServer (default), PostgreSQL and SQLite, case-insensitive. MSSQL and Postgres also work as aliases. Your assumed configuration is right:
-e DATABASE_TYPE=PostgreSQL
-e DATABASE_HOST=pg.example.com
-e DATABASE_PORT=5432 # optional, defaults to 5432 for PostgreSQL
-e DATABASE_NAME=dvls
-e DATABASE_USERNAME=dvls_user
-e DATABASE_PASSWORD='...' # or DATABASE_PASSWORD_FILE
2. SSL
There are no PostgreSQL-specific variables. The existing ones map to the Npgsql SSL Mode:
- DATABASE_ENCRYPT=false (default): no SSL Mode is set, so the Npgsql default Prefer applies.
- DATABASE_ENCRYPT=true and DATABASE_TRUST_SERVER_CERTIFICATE=true: Require (encrypted, certificate not validated).
- DATABASE_ENCRYPT=true and DATABASE_TRUST_SERVER_CERTIFICATE=false: VerifyFull (certificate and host name validated).
3. Database creation
You don't need to create it first. With DVLS_INIT=true, DVLS connects to the postgres maintenance database and creates the target database if it's missing, so the role needs CREATEDB. Otherwise, create the database beforehand with that role as owner. Only a single owner role is supported for now.
4. pg_dump / pg_restore
These tools are not included in the image, so the built-in PostgreSQL database backup won't work out of the box. I've opened an internal ticket to close this gap. Until it's fixed, build a derived image that installs postgresql-client with a major version equal to or newer than your server's. You can also mount the binaries and point DVLS_PG_DUMP_PATH / DVLS_PG_RESTORE_PATH at them.
5. Supported versions
PostgreSQL 14 or later, self-hosted or managed.
6. Documentation
We've reported the gap to the documentation team so the Docker and Linux guides get updated.
Also note that the Linux image applies pending schema upgrades at startup by default (DVLS_DATABASE_UPGRADE_ON_STARTUP=true).
Best regards,
Best regards,
Jérémie Perreault
Hi,
thank you very much for the quick and detailed reply, and for opening the internal ticket for the pg_dump / pg_restore gap and passing the documentation gap on to the docs team. This answers all my questions.
I will probably test it this Sunday (October 25) on a separate test installation, not on my production instance, and report back here with the results.
Best regards,
Alex