DMS software installation and setup

Steps to setup a DMS server

  1. Pick a machine to host DMS. Use your own server or preferred hosting provider, if you don't have one we recommend Hetzner. On a 1GB/1CPU machine DMS will happily serve at least 20 users.

  2. Point DNS to the IP address of this machine. You need to point a domain or sub-domain to the IP address of the machine hosting DMS.

  3. Connect a terminal to the machine. To run the install command, you must connect to the machine you're using with either SSH or a web-based cloud console.

  4. Install and run DMS. Follow the instuctions below.

  5. Setup your new DMS. Use your web-browser to navigate to the domain or sub-domain you assigned to the server. Setup your personal account, and adapt the application settings to your needs.

Install DMS

The DMS software requires a working Python installation with Python "pip" or a similar package installer. Python version 3.10 or later should work.

Use Python pip to install the software:

python3 -m pip install --upgrade 'https://nephics.com/releases/dms/dms-1.0.3-py3-none-any.whl'

Or you can start by creating a virtual environment and install DMS within this environment.

Run DMS

Start the DMS software from the server terminal using Python:

python3 -m dms --hostname="dms.example.com"

But replace dms.example.com with the sub-domain of your server.

The database file and data directories will be created in the current directory.

The relevant options that can be set by commandline arguments are:

--config path to a file with options (alternative to providing options as commandline arguments)

--database_path full path to the database file (default is "dms_db.sqlite", in the working directory)

--blob_path directory path to the blob storage (default is "dms_blobs", in the working directory)

--hostname the (sub-)domain of the server (default is localhost / 127.0.0.1)

--index_path directory path to the search index files (default is "dms_index", in the working directory)

--port the server port (default is 9911)

Make DMS available to your team

You can use any of the popular web servers, such as Caddy, Nginx or Apache, to make DMS available on the Internet by reverse proxying the server port.

Here is an example Caddyfile that will make DMS available on the Internet over an encrypted (HTTPS) connection:

dms.example.com {
    reverse_proxy localhost:9911
}

You can make DMS available within a VPN by exposing (i.e. not blocking with a firewall) the correct port of the server. Use the commandline argument --port to set a custom port number of the DMS server.

Create a systemd service

To make DMS start automatically after server reboots you can use the following template to create a systemd service file:

[Unit]
Description=DMS server
Wants=network-online.target
After=network-online.target

[Service]
WorkingDirectory=/home/dms
User=dms
ExecStart=/home/dms/v/bin/python -m dms --hostname="dms.example.com"
Restart=always
RestartSec=5s

[Install]
WantedBy=multi-user.target

This template assumes that DMS is installed in a virtual environment named "v" in the home directory of the "dms" user account, and that the sub-domain is "dms.example.com".

Buy a license

Use of the DMS software requires a valid license key, one for each installation. Use the link on the settings page, or note the Server ID and purchase a software license from this page.