From b9802a9f4d222299bbbf9a2fb3c5e2e5818246f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Lachowski?= Date: Thu, 18 Jun 2026 13:02:55 +0200 Subject: [PATCH] RDBTC-221 Migrate Technical Guides: RDBTC-56 Setting Up RavenDB with Docker and HTTPS --- docs/authors.json | 7 + ...ing-up-ravendb-with-docker-and-https1.webp | Bin 0 -> 27930 bytes ...tting-up-ravendb-with-docker-and-https.mdx | 249 +++++++++++++++++- 3 files changed, 252 insertions(+), 4 deletions(-) create mode 100644 guides/assets/setting-up-ravendb-with-docker-and-https1.webp diff --git a/docs/authors.json b/docs/authors.json index a2d2028227..82c003805b 100644 --- a/docs/authors.json +++ b/docs/authors.json @@ -26,5 +26,12 @@ "url": null, "image_url": "https://ravendb.net/wp-content/uploads/2021/01/egor_shamanaev.jpg", "socials": {} + }, + "Bartosz Piekarski": { + "name": "Bartosz Piekarski", + "job_title": "Software Developer", + "url": null, + "image_url": "https://ravendb.net/wp-content/uploads/2022/01/Bartosz.jpg", + "socials": {} } } diff --git a/guides/assets/setting-up-ravendb-with-docker-and-https1.webp b/guides/assets/setting-up-ravendb-with-docker-and-https1.webp new file mode 100644 index 0000000000000000000000000000000000000000..b1847103d219051094108c446cdf700084835a28 GIT binary patch literal 27930 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 HM~nVHRy-{_ literal 0 HcmV?d00001 diff --git a/guides/setting-up-ravendb-with-docker-and-https.mdx b/guides/setting-up-ravendb-with-docker-and-https.mdx index 6af2dc93ef..001f115540 100644 --- a/guides/setting-up-ravendb-with-docker-and-https.mdx +++ b/guides/setting-up-ravendb-with-docker-and-https.mdx @@ -1,9 +1,250 @@ --- title: "Setting up RavenDB with Docker and HTTPS" -tags: [deployment, getting-started, docker, containers] -description: "Read about Setting up RavenDB with Docker and HTTPS on the RavenDB.net news section" -external_url: "https://ravendb.net/articles/setting-up-ravendb-with-docker-and-https" -published_at: 2024-12-06 +tags: [deployment, getting-started, docker, containers, security] icon: "docker" +description: "Learn how to run RavenDB in Docker with a self-signed TLS certificate using Docker Compose, including cert generation, volume setup, and environment variable configuration." +published_at: 2024-12-06 +author: "Paweł Lachowski" +see_also: + - title: "Docker Containers - General Guide" + link: "start/containers/general-guide" + source: "docs" + path: "Start > Containers" + - title: "Certificate Configuration" + link: "server/security/authentication/certificate-configuration" + source: "docs" + path: "Server > Security > Authentication" + - title: "Configuration Options" + link: "server/configuration/configuration-options" + source: "docs" + path: "Server > Configuration" proficiency_level: "Beginner" --- + +import Admonition from '@theme/Admonition'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import CodeBlock from '@theme/CodeBlock'; +import LanguageSwitcher from "@site/src/components/LanguageSwitcher"; +import LanguageContent from "@site/src/components/LanguageContent"; +import Image from "@theme/IdealImage"; + +## What you will learn + +* How to run RavenDB with HTTPS certificate on Docker +* How to generate self-signed certificates + +## Introduction + +Running applications in Docker containers offers numerous advantages over installing them directly on a system. Docker ensures isolation and consistency by encapsulating an application and its dependencies, preventing conflicts, and guaranteeing the same behavior across different environments. Its portability allows containers to run on any system that has Linux kernel to be shared, simplifying the movement of applications between environments and eliminating dependency conflicts. + +RavenDB provides official Docker images that can be pulled from Docker Hub. These images support both Linux and Windows containers, ensuring broad compatibility across different systems. The images are available in two repositories: + +- [https://hub.docker.com/r/ravendb/ravendb](https://hub.docker.com/r/ravendb/ravendb) + Contains images of stable releases. +- [https://hub.docker.com/r/ravendb/ravendb-nightly](https://hub.docker.com/r/ravendb/ravendb-nightly) + Contains images of nightly development builds. + +These Docker images support a variety of architectures, including: + +- Linux: arm32, arm64, and amd64 +- Windows: amd64 + +In this tutorial, we are going to use the multi-platform image ravendb/ravendb:latest. + +## Prerequisites + +Before running RavenDB, we need to prepare an environment. +First of all, we need a place to keep all the files created by the RavenDB server. + +```bash +mkdir -p ~/ravendb/data +``` + +In order to have a secure connection with the server it's recommended to use HTTPS protocol. To do that we will need a DNS entry pointing to the server and server certificate. It's best to use automated tools like certbot for certificate generation and for example AWS Route 53 as DNS service. +For the purpose of this tutorial, to simplify the setup, we will use a self-generated certificate and entry in /etc/hosts. Using self-signed certificates is **not recommended** for public-facing websites and services. Those are not trusted by default by the OS and must be added as root in the certificate store on every server and client machines that want to communicate. A recommended approach is to use certificates from a certificate authority like *Let's Encrypt*, *ZeroSSL,* or any other well-known certificate issuer. There is also an option to use [RavenDB initial setup](/7.2/start/installation/setup-wizard/choose-security-option) to get a certificate. + +```bash +mkdir -p ~/ravendb/certs +cd ~/ravendb/certs +``` + +Specify url: + +```bash +url="my-test.instance" +``` + +Generate private key and server certificate: + +```bash +openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes -keyout my-test.instance.key -out my-test.instance.crt -subj "/CN=$url" -extensions v3_req -config <(printf +"[v3_req]\nkeyUsage=digitalSignature,keyEncipherment\nextendedKeyUsage=serverAuth,clientAuth\nsubjectAltName=DNS:$url") +``` + +Generate pfx from private key and server certificate: + +```bash +openssl pkcs12 -export -out my-test.instance.pfx -inkey my-test.instance.key -in my-test.instance.crt +``` + +Remember to save the pfx certificate on your local machine and install it in the root certificate store. You will need it to connect to the RavenDB server for the first time. + +When running applications inside Docker containers, like RavenDB, it's common to manage file permissions on the host system that must be accessible to the container. In Linux, every user and group is associated with a unique identifier known as a User ID (UID) and a Group ID (GID), respectively. These numerical identifiers are crucial for managing file ownership and permissions. The container's processes may run under a user with a specific UID and GID, which can differ from those on the host system. In the case of RavenDB, it uses 999 as both the UID and GID for its internal user. This means files on the host system that are mounted into the container must be accessible by the user with these identifiers. Without this adjustment, the container might not have the necessary permissions to read or write to the mounted files, leading to potential errors or malfunctioning of the application. + +In summary, while human-readable names are convenient on a single system, UIDs and GIDs ensure consistency across different environments, especially in containerized applications like those running in Docker. Therefore, using numerical identifiers is essential when managing permissions between the host and the Docker container to ensure seamless operation. + +Here is the command to change file permissions: + +```bash +sudo chown -R 999:999 ~/ravendb/ +``` + +The last step is to obtain a license from [https://ravendb.net/buy#developer](https://ravendb.net/buy#developer). There is a free developer license available. + +## Setup + +With the environment prepared we can start building our docker compose. To keep everything in one place let's create docker-compose.yml file in ~/ravendb directory. + +```bash +touch ~/ravendb/docker-compose.yml +``` + +We can start writing docker compose file with our favorite editor. It starts the same as always with specifying services, naming containers, and selecting Docker image. As mentioned before we will be using RavenDB's multi-platform image: + +```yaml +services: + ravendb: + container_name: ravendb + image: ravendb/ravendb:latest +``` + +Now we can mount the directories prepared earlier. RavenDB by default keeps the data in /var/lib/ravendb/data. The folder with certificate can be mounted anywhere within the container. We will specify a path to it in the next step. Replace the `{username}` with your linux username. + +```yaml + volumes: + - type: bind + source: /home/{username}/ravendb/data + target: /var/lib/ravendb/data + - type: bind + source: /home/{username}/ravendb/certs + target: /certs +``` + +We would like to be able to access the server. Port binding will help us with that. I'm going to use the default port for the HTTPS protocol. There is also a second port needed for inter-node communication (replication) or data subscription processing. The default used by RavenDB is 38888, so that's what I'm going to use here as well. + +```yaml + ports: + - 443:443 + - 38888:38888 +``` + +Based on values set in previous steps we can configure RavenDB server with environment variables. Several key environment variables ensure that the server runs correctly and securely: + +| Variable | Example value | Purpose | +|---|---|---| +| `RAVEN_Setup_Mode` | `None` | Disables the setup wizard. RavenDB assumes all configuration is provided through environment variables or config files, which is ideal for automated deployments. | +| `RAVEN_License_Eula_Accepted` | `true` | Accepts the EULA. Required to run the server without manual intervention. | +| `RAVEN_ServerUrl` | `https://0.0.0.0` | The URL RavenDB binds to for incoming connections. `0.0.0.0` is a wildcard that accepts connections on any network interface. | +| `RAVEN_PublicServerUrl` | `https://my-test.instance` | The public URL clients use to connect. Replace with the actual domain accessible to clients. | +| `RAVEN_ServerUrl_Tcp` | `tcp://0.0.0.0:38888` | Listens on all interfaces for TCP connections (replication, subscriptions) on port 38888. | +| `RAVEN_PublicServerUrl_Tcp` | `tcp://my-test.instance:38888` | The public TCP address clients use. Replace with the actual public address and port. | +| `RAVEN_Security_Certificate_Path` | `/certs/my-test.instance.pfx` | Path to the PFX certificate file. Must include both the certificate and private key to secure HTTPS and TCP connections. | +| `RAVEN_License` | `'{Put your license here}'` | The RavenDB license string. Required to activate the server. | + +There are other options to pass certificates to RavenDB, especially useful in containerization scenarios, where the certificate comes from and is renewed by an external facility. You might want to use approach described [in the certificate configuration docs](/7.2/server/security/authentication/certificate-configuration#with-logic-foreign-to-ravendb-or-external-certificate-storage). +Also you might have to recreate the container on certificate renewal, unless you configured the renewal process with RAVEN\_Security.Certificate.Renew.Exec environment variable. + +For more detailed guidance, refer to the [RavenDB configuration options](/7.2/server/configuration/configuration-options) documentation. + +```yaml + environment: + - RAVEN_Setup_Mode=None + - RAVEN_License_Eula_Accepted=true + - RAVEN_ServerUrl=https://0.0.0.0 + - RAVEN_PublicServerUrl=https://my-test.instance + - RAVEN_ServerUrl_Tcp=tcp://0.0.0.0:38888 + - RAVEN_PublicServerUrl_Tcp=tcp://my-test.instance:38888 + - RAVEN_Security_Certificate_Path=/certs/my-test.instance.pfx +``` + +In my case there is one more step required. Because I don't have any public DNS entry RavenDB server won't be able to resolve the hostname I used. Therefore, I have to tell docker that my-test.instance is its own address: + +```yaml + extra_hosts: + - "my-test.instance:127.0.0.1" +``` + +## Final docker-compose.yml + +The final version of docker-compose.yml should look like this: + +```yaml +services: + ravendb: + container_name: ravendb + image: ravendb/ravendb:latest + volumes: + - type: bind + source: /home/{username}/ravendb/data + target: /var/lib/ravendb/data + - type: bind + source: /home/{username}/ravendb/certs + target: /certs + ports: + - 443:443 + - 38888:38888 + environment: + - RAVEN_Setup_Mode=None + - RAVEN_License_Eula_Accepted=true + - RAVEN_ServerUrl=https://0.0.0.0 + - RAVEN_PublicServerUrl=https://my-test.instance + - RAVEN_ServerUrl_Tcp=tcp://0.0.0.0:38888 + - RAVEN_PublicServerUrl_Tcp=tcp://my-test.instance:38888 + - RAVEN_Security_Certificate_Path=/certs/my-test.instance.pfx + - RAVEN_License='{Put your license here}' + extra_hosts: + - "my-test.instance:127.0.0.1" +``` + +The only thing left to do is to start the container: + +```bash +docker compose -f ~/ravendb/docker-compose.yml up -d --force-recreate --wait +``` + +## Validation + +Because `my-test.instance` is not a real DNS name, we also need to add it to the local hosts file so the browser can find it: + +```bash +echo "127.0.0.1 my-test.instance" | sudo tee -a /etc/hosts +``` + +We can now check if the container is running: + +```bash +docker compose ls +``` + +The output should look like this: + +``` +NAME STATUS CONFIG FILES +ravendb running(1) ~/ravendb/docker-compose.yml +``` + +Let's try connecting to the RavenDB server using the URL and certificate that were both created in the prerequisites. In my case it's https://my-test.instance + +RavenDB Studio login page after connecting via HTTPS + +You can now set up your node. + +## Summary + +This guide walked through running RavenDB in Docker with HTTPS using a self-signed certificate, Docker Compose volume mounts, and environment variable configuration. + +- Self-signed certificates work for local development but must be installed as trusted root certificates on every machine that connects; for production, use Let's Encrypt, ZeroSSL, or another public CA instead. +- RavenDB's internal user runs as UID/GID 999, so host directories mounted into the container must be owned by that numeric ID or the server will fail to read or write its data files. +- Setting RAVEN_Setup_Mode=None bypasses the interactive setup wizard entirely, which is the correct approach for automated or containerized deployments driven by environment variables. +- When your hostname is not registered in public DNS, add it to the container's extra_hosts so RavenDB can resolve its own public URL during startup validation.