Setup

SimpleDMS can be installed on all operating systems via Docker. However, officially it gets only tested on Linux. Native builds for other operating systems should be possible, but may need some adjustments.

If you are looking for a step-by-step guide, check out «How to setup SimpleDMS locally with Docker Compose».

System Requirements

  • S3 Storage for storing files
  • Apache Tika for OCR
  • Gotenberg (optional) for PDF previews of supported HTML, Markdown, and office files
  • Mailserver or mailbox for sending transactional mails

If you don't have S3 Storage or don't want to use it, you can store the files on the local file system by using the Versity S3 Gateway.

Apache Tika can run in a Docker container and Mailpit can provide a mailbox for local single-user testing.

Docker Images

The Docker images are available on GitHub and DockerHub. Currently the images are distributed on both platforms, but this could change in the future. If in doubt, use the GitHub Registry for the moment.

There are three tags available: stable, unstable and latest. For production, you should always use stable. latest always points to the latest build and unstable is intended for development and testing.

Paid distribution channels for versions with long-term support (LTS) are available on request.

Encryption

Please note that all files are encrypted by default. SimpleDMS generates one application identity and one identity per tenant with age. The application identity and the encrypted tenant identities are stored in the main database.

An administrator can protect the application identity with a passphrase. A protected installation must be unlocked in a browser or through the unlock API after every restart.

Please make sure you backup the encryption keys carefully. Without the encryption keys, you can loose access to your files.

Disable File Encryption

If you want to disable file encryption, you can set the environment variable SIMPLEDMS_DISABLE_FILE_ENCRYPTION to true. This must be done before the initial setup of the app. Changing the value later could lead to data lass.

Configuration

The initial configuration is done via environment variables. During the initialization of the app, most values are saved in the database and can later be modified directly in the app.

If you want to override the values in the database with values from environment variables after initialization, you can set SIMPLEDMS_OVERRIDE_DB_CONFIG to true.

You can find an sample .env file in the main repository on GitHub.

Public Origin & Reverse Proxy

Set SIMPLEDMS_PUBLIC_ORIGIN to the canonical public origin of every deployment:

SIMPLEDMS_PUBLIC_ORIGIN=https://dms.example.com

Use the origin that browsers and devices use to access SimpleDMS, including a non-standard port when applicable. Do not include a trailing slash or path. SimpleDMS uses this value to enforce the canonical host in authentication flows and build absolute links in emails. It also derives the WebAuthn relying party ID from this origin when SIMPLEDMS_WEBAUTHN_RP_ID is empty.

When a reverse proxy terminates TLS before forwarding requests to SimpleDMS, also set its trusted address:

SIMPLEDMS_TRUSTED_PROXY_CIDRS=192.0.2.10/32

SIMPLEDMS_TRUSTED_PROXY_CIDRS accepts comma-separated IPv4 or IPv6 CIDR prefixes. Use /32 for one IPv4 address and /128 for one IPv6 address. Trust only the immediate reverse proxy or its dedicated network. Do not use 0.0.0.0/0 or ::/0.

SimpleDMS accepts X-Forwarded-Proto and X-Forwarded-For only from a trusted proxy. Configure the public-facing proxy to replace these headers instead of passing through client-supplied values. A trusted X-Forwarded-Proto: https header lets SimpleDMS recognize sign-in and WebDAV requests as secure even when the proxy connects to SimpleDMS over HTTP.

Keep SIMPLEDMS_ALLOW_INSECURE_COOKIES set to false behind an HTTPS reverse proxy. The browser receives secure session cookies over the public HTTPS connection regardless of whether the internal proxy connection uses HTTP. Enable insecure cookies only when accessing SimpleDMS directly over HTTP outside localhost.

See Reverse Proxy Troubleshooting for configuration examples and checks.

Docker Compose

The easiest way to run SimpleDMS is with Docker Compose. You can use the sample compose file in the main repository as the basis for your setup. It contains Tika, Gotenberg, and Versity Gateway as services.

Gotenberg is optional. To enable PDF previews, set SIMPLEDMS_GOTENBERG_URL to the address of your Gotenberg service. In the sample Compose stack, SimpleDMS uses http://gotenberg:3000.

With the Versity Gateway your files are stored in a Docker volume. With a bind mount you can also configure it the store the files directly on your file system.

You can use the sample compose file together with the sample .env file and then spin up everything with docker compose up -d or docker-compose up -d for older Docker versions that don't include Compose yet.

If you run SimpleDMS locally, you might want to change the port.

Initialization

Once your started SimpleDMS, it will initialize itself and create an account as well as a tenant with the defined environmental variables.

A mail with the temporary password for the admin account will be send to the email address defined as SIMPLEDMS_INITIAL_ACCOUNT_EMAIL. You have to change the password after the first login as it will expire otherwise.

First Steps

When you are logged in, you can create additional users or follow the First Steps guide.