Installation
Linux Knowledge Required
Installation requires an admin familiar with Linux. You will need to enter the commands in a terminal. The instructions here assumes you have common utilities likecurl
, tar
, nano
installed.Step 1: Install Docker Compose
Make sure Docker Engine (with docker-compose-plugin
) is installed on your system.
See System Requirements for more details.
Step 2: Download the Docker-Compose and Other Files
Go to the directory you want to CDM-Server run from, and execute:
curl -s https://get.apis.de/cdm.sh | bash
curl -s https://get.apis.de/cdm.sh | bash -s v1.1.1
# Available versions: v1.1.0, v1.0.1, v1.0.0
# Full list is available in Changelogs page
curl -s https://get.apis.de/cdm.sh | bash -s version_string_here
CDM-Server changelogs are available here.
If you want to do it manually, you can get the docker-compose file from the following link: https://get.apis.de/cdm/latest.tar.gz
#!/bin/bash
# Exit immediately if any command fails
set -e
# Check if version argument is provided
if [ -z "$1" ]; then
version="latest"
else
version="$1"
fi
# URL of the tar.gz file, using the provided version or defaulting to 'latest'
url="https://get.apis.de/cdm/$version.tar.gz"
filename="$version.tar.gz"
# Download the tar.gz file
# --fail: Don't create an empty file on failure
curl -O --fail "$url"
# Check if the download was successful
if [ $? -ne 0 ]; then
echo "Download failed. Please check the version and URL."
exit 1
fi
echo "Downloaded $filename"
# Extract the tar.gz file
echo "Extracting $filename (without dummy certs)..."
# Step 1: Extract all files except the PFX files
tar --exclude="cdm-ldaps.pfx" --exclude="cdm-server.pfx" -xzvf "$filename"
# Replace :latest with version if needed in docker compose file
services=("db" "app" "web")
file="docker-compose.yml"
# Remove the 'v' prefix from the version
label="${version#v}"
if [ "$version" != "latest" ]; then
echo "Updating docker-compose.yml with version $label"
for service in "${services[@]}"; do
sed -i "s|/$service:latest|/$service:$label|g" "$file"
done
fi
# Step 2: Extract the PFX files only if they do not exist
echo "Extracting dummy certs if needed..."
for file in "cdm-ldaps.pfx" "cdm-server.pfx"; do
if [ ! -f "$file" ]; then
tar -xzvf "$filename" --wildcards --no-anchored "$file"
fi
done
# Optional: Remove the tar.gz file after extraction
rm "$filename"
# Make the scripts executable
echo "Ensuring scripts are executable..."
chmod +x download
chmod +x start
chmod +x stop
[ -f backup ] && chmod +x backup
[ -f restore ] && chmod +x restore
[ -f pfx_to_pem.sh ] && chmod +x pfx_to_pem.sh
echo "CDM setup for version $version has been downloaded and extracted. Please follow the installation guide here: https://get.apis.de/docs/server/install/"
Step 3: Create the DotEnv
Files
To use the server, you need to provide some data in the form of two DotEnv
files:
.env
.env.idp
Create new DotEnv
files, copy the contents of the example files, and update the values with your own configuration.
.env
File
Example: .env.example
cp .env.example .env && nano .env
.env.idp
File
Example: IdP (ID Provider) specific DotEnv
files:
.env.idp.azure.example
.env.idp.ldaps.example
.env.idp.local.example
cp .env.idp.local.example .env.idp && nano .env.idp
cp .env.idp.azure.example .env.idp && nano .env.idp
cp .env.idp.ldaps.example .env.idp && nano .env.idp
Detailed DotEnv Guide
More details here: Setting Up DotEnv FilesStep 4: Login and Download CDM-Server Images
Use the following command to login and download the CDM-Server images
. You’ll be asked to enter username and password.
APIS CDM-Server Account
You need to have a valid account to download the images. If you don’t have one yet, please contact customer service through Support Pagesudo ./download
Step 5. Start the CDM-Server Services
sudo ./start
How to Stop
In case, you need to stop CDM-Server services:
sudo ./stop
Step 6. Access CDM-Server
Please see Login for more information.