Self-hosting

Overview

DDM on your own servers – what it consists of, what you need and how it stays connected to us.

With an Enterprise contract you can run DDM on your own servers instead of using it with us. Your documents, your database and your sign-ins then stay entirely with you. These pages describe how to set up, update and back up such an installation.

What an installation consists of

An installation consists of four services, each in its own container:

ServiceJob
cmsThe CMS for managing content, the interfaces for all other services and systems, and sign-in. Applies new database migrations when it starts.
clientThe reader app in the browser and the target of the mobile and desktop app.
render-workerReads the text of uploaded documents, creates thumbnails and converts Office files to PDF.
postgresThe database, with the German dictionary DDM uses for search.

The CMS and the reader app run under two host names, for example cms.company.com and app.company.com, each with its own TLS certificate. The documents live on a volume or in an S3-compatible bucket (MinIO, Ceph or a cloud provider's bucket).

What you get from us

  • A deploy token for our container registry. Your servers use it to pull the images: registry.gitlab.com/iq-me/new-ddm-images/cms, client, render-worker and postgres.
  • A licence – a text that starts with ddm1.. It names your plan and how many seats and organisations the installation may have.

How the installation stays connected to us

Once a day the installation contacts us to renew its licence. It only sends numbers: how many seats and organisations it uses and which version it runs – no names, no documents. The answer tells it whether there is a new version.

In addition, feature requests and bug reports that somebody sends in your installation go straight to the DDM team. You carry on the conversation about them as usual under My reports.

If your server may not access the internet, you renew the licence by hand – see Licence.

What you need

  • A Linux server with Docker Engine 25 or later and Docker Compose v2 – or a Kubernetes cluster from version 1.27.
  • At least 4 cores and 8 GB of memory. Most of it goes to the render worker: LibreOffice takes about 0.5 GB per document being converted at the same time, and several GB for a very large file.
  • Disk space for your documents and their previews, plus three database backups.
  • Two DNS names pointing to the server, and TLS certificates for them. With the bundled Caddy, the server fetches them from Let's Encrypt itself.
  • A mail server through which DDM sends invitations, password links and notifications.
  • Outgoing HTTPS to registry.gitlab.com (images) and cms.documentdistributionmanager.com (licence, updates, feature requests) – through a proxy if necessary. Every rule is listed under Firewall.

Who looks after the installation

An installation has no operators from us. The owners and administrators of your organisations look after it: they see the licence under Settings › Licence, get the e-mails when it is about to run out or a new version comes out, and can still sign in after the licence has run out.

Next: Set up with Docker Compose or with Kubernetes.