Deploy Devolutions Server with Docker
This article shows how to deploy Devolutions Server using Docker.
For the sake of simplicity, Devolutions Server's Docker image version is written 20XX.X in the code blocks of this article. Change this variable to the version you wish to use.
Prerequisites
Docker version
20.10.Xor later. On macOS ARM64, use--platform linux/amd64during the initialization phase due to assembly compatibility. The runtime mode runs natively on ARM64.An SQL Server instance properly set up for Devolutions Server.
The minimum system requirements to run Devolutions Server.
Devolutions Server first time setup
Create a dedicated login and database using an admin account (for example,
saor an Azure SQL admin). Grant least-privilege access to Devolutions Server.Pull the latest Devolutions Server Docker image:
docker pull devolutions/devolutions-server:release-20XX.XRun Devolutions Server in initialization mode to create the database schema and its first administrator, generate encryption keys, and configure HTTPS with a self-signed certificate. Save
App_Dataso the encryption configuration is retrievable for the next step.
docker volume create dvls-init-data
docker run --rm `
-e DATABASE_HOST=your-sql-server.database.windows.net `
-e DATABASE_NAME=dvls `
-e DATABASE_USERNAME=dvls_user `
-e DATABASE_PASSWORD='YourSecurePassword!' `
-e HOSTNAME=localhost `
-e WEB_SCHEME=https `
-e PORT=5000 `
-e DVLS_INIT=true `
-v dvls-init-data:/opt/devolutions/dvls/App_Data `
-p 5000:5000 `
devolutions/devolutions-server:release-20XX.XExtract
encryption.configfrom the initialization volume:Convert the extracted file to base64 and store it securely as it will be needed for every runtime start:
Start Devolutions Server using the base64 encryption configuration. Once this is done, use the
docker psanddocker logs dvls-servercommands to make sure everything is in working order.Access the web interface by opening
https://localhost:5000in your browser. Go past the self-signed certificate security warning by clicking Advanced – Proceed. You can mount a custom TSL certificate later.Log in by using
dvls-adminfor both the username and password.
Immediately after login, change the default password by heading to Administration – Users, clicking on the vertical ellipsis button of the dvls-admin user, and selecting Change password.
Make sure that Devolutions Server is running with
DVLS_ENCRYPTION_CONFIG_B64, its web interface is accessible, andencryption.config.b64is saved in a secure location (it is needed for every restart and redeployment). Once this is done, the temporary initialization volume can be safely removed:
Operating modes
DVLS Docker container operates in three distinct modes:
Runtime (default)
No special variables
Normal operation
Starts web server and keeps running.
Initialization
DVLS_INIT=true
First-time setup
Creates database schema, administrator user, then exits.
Update
DVLS_UPDATE_MODE=true
Database upgrade
Backs up configuration files, migrates database, then exits.
Initialization and Update modes are mutually exclusive.
Custom port
Change the port Devolutions Server listens on by setting the PORT environment variable, e.g., with the 8080 port as in the example below:
Mount a custom TSL certificate
Mount your own certificate files instead of using the auto-generated self-signed certificate:
Container management
docker start dvls-server
Starts the container.
docker stop dvls-server
Stops the container.
docker rm dvls-server
Remove the container.
Removing the container is safe as long as you have the encryption.config.b64 file, access to your SQL Server database, and your environment variables documented.
Devolutions Server first time setup
Create a dedicated login and database using an admin account (for example,
saor an Azure SQL admin). Grant least-privilege access to Devolutions Server.Pull the latest Devolutions Server Docker image:
Run Devolutions Server in initialization mode to create the database schema and its first administrator, generate encryption keys, and configure HTTPS with a self-signed certificate. Save
App_Dataso the encryption configuration is retrievable for the next step.
On macOS, this is where to add --platform linux/amd64.
Extract
encryption.configfrom the initialization volume:Convert the extracted file to base64 and store it securely as it will be needed for every runtime start:
Start Devolutions Server using the base64 encryption configuration. Once this is done, use the
docker psanddocker logs dvls-servercommands to make sure everything is in working order:Access the web interface by opening
https://localhost:5000in your browser. Go past the self-signed certificate security warning by clicking Advanced – Proceed. You can mount a custom TSL certificate later.Log in by using
dvls-adminfor both the username and password.
Immediately after login, change the default password by heading to Administration – Users, clicking on the vertical ellipsis button of the dvls-admin user, and selecting Change password.
Make sure that Devolutions Server is running with
DVLS_ENCRYPTION_CONFIG_B64, its web interface is accessible, andencryption.config.b64is saved in a secure location (it is needed for every restart and redeployment). Once this is done, the temporary initialization volume can be safely removed:
Operating modes
DVLS Docker container operates in three distinct modes:
Runtime (default)
No special variables
Normal operation
Starts web server and keeps running.
Initialization
DVLS_INIT=true
First-time setup
Creates database schema, administrator user, then exits.
Update
DVLS_UPDATE_MODE=true
Database upgrade
Backs up configuration files, migrates database, then exits.
Initialization and Update modes are mutually exclusive.
Custom port
Change the port Devolutions Server listens on by setting the PORT environment variable, e.g., with the 8080 port as in the example below:
Mount a custom TSL certificate
Mount your own certificate files instead of using the auto-generated self-signed certificate:
Container management
docker start dvls-server
Starts the container.
docker stop dvls-server
Stops the container.
docker rm dvls-server
Remove the container.
Removing the container is safe as long as you have the encryption.config.b64 file, access to your SQL Server database, and your environment variables documented.
Devolutions Server first time setup
Create a dedicated login and database using an admin account (for example,
saor an Azure SQL admin). Grant least-privilege access to Devolutions Server.Pull the latest Devolutions Server Docker image:
Run Devolutions Server in initialization mode to create the database schema and its first administrator, generate encryption keys, and configure HTTPS with a self-signed certificate. Save
App_Dataso the encryption configuration is retrievable for the next step.
Extract
encryption.configfrom the initialization volume:Convert the extracted file to base64 and store it securely as it will be needed for every runtime start:
Start Devolutions Server using the base64 encryption configuration. Once this is done, use the
docker psanddocker logs dvls-servercommands to make sure everything is in working order:Access the web interface by opening
https://localhost:5000in your browser. Go past the self-signed certificate security warning by clicking Advanced – Proceed. You can mount a custom TSL certificate later.Log in by using
dvls-adminfor both the username and password.
Immediately after login, change the default password by heading to Administration – Users, clicking on the vertical ellipsis button of the dvls-admin user, and selecting Change password.
Make sure that Devolutions Server is running with
DVLS_ENCRYPTION_CONFIG_B64, its web interface is accessible, andencryption.config.b64is saved in a secure location (it is needed for every restart and redeployment). Once this is done, the temporary initialization volume can be safely removed:
Operating modes
DVLS Docker container operates in three distinct modes:
Runtime (default)
No special variables
Normal operation
Starts web server and keeps running.
Initialization
DVLS_INIT=true
First-time setup
Creates database schema, administrator user, then exits.
Update
DVLS_UPDATE_MODE=true
Database upgrade
Backs up configuration files, migrates database, then exits.
Initialization and Update modes are mutually exclusive.
Custom port
Change the port Devolutions Server listens on by setting the PORT environment variable, e.g., with the 8080 port as in the example below:
Mount a custom TSL certificate
Mount your own certificate files instead of using the auto-generated self-signed certificate:
Container management
docker start dvls-server
Starts the container.
docker stop dvls-server
Stops the container.
docker rm dvls-server
Remove the container.
Removing the container is safe as long as you have the encryption.config.b64 file, access to your SQL Server database, and your environment variables documented.
See also
Last updated
Was this helpful?