[ Applies to ] StorageGuard 9.2.7 and later / All supported target systems / Linux (Docker or Podman)
This article walks system administrators through deploying StorageGuard on a supported Linux distribution using Docker or Podman. Docker keeps the installation consistent across platforms, so the same steps apply whether you are on Ubuntu, Debian, RHEL or SLES.
In this article
Before you begin
Supported operating systems
- Ubuntu 22.04 LTS or later (recommended)
- Debian 11 or later
- Red Hat Enterprise Linux 9.x or later
- SUSE Linux Enterprise Server 15 SP3 or later
Container platform
Either of the following:
- Docker Engine 28 or later with Docker Compose 2.33 or later
- Podman Engine 5.4.0 or later with Podman Compose 1.4.0 or later
What you need in place
- Root or sudo access on the target system, and familiarity with the Linux command line.
- The following files from Core6, placed together in your installation directory:
-
cs-server.tar— the StorageGuard server image -
cs-pg-db.tar— the PostgreSQL database image -
dind.tar— the Docker-in-Docker image -
.env— environment configuration read by Compose -
docker-compose.yml— the service definitions
-
Contact your Core6 representative or open a support ticket to obtain the current versions of these files.
Note: If you are using Podman, substitute podman for docker in every command below, or create a shell alias that maps one to the other.
Load the container images
From your installation directory, load each image archive:
sudo docker load -i cs-server.tar
sudo docker load -i cs-pg-db.tar
sudo docker load -i dind.tar
Confirm all three are present:
sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nexus-repo:8085/cs-server 9.2.7 d8079d623762 42 minutes ago 2.36GB
nexus-repo:8085/cs-pg-db 9.2.7 029a1e0b193e 43 minutes ago 419MB
nexus-repo:8085/docker latest 685c71277697 5 weeks ago 415MB
Configure the .env file
Open .env and set the values marked below. Everything else is preconfigured for the bundled PostgreSQL container and should be left as it is.
| Variable | Set to |
|---|---|
PGUserPassword |
A password of your choosing for the StorageGuard database user. |
PGAdminPassword |
A password of your choosing for the database admin account. |
PGDBAUser |
The PostgreSQL superuser name. |
PGDBAPass |
The PostgreSQL superuser password. |
TZ |
Your timezone, for example Europe/Berlin. This determines the timestamps on scans and reports. |
PGDatabase, PGServer, PGPort, PGUsername
|
Leave unchanged when using the bundled PostgreSQL container. |
Debug, Suspend, BuildNumber
|
Leave unchanged. |
Caution: The .env file holds database credentials in plain text. Restrict it to the installing user (chmod 600 .env) and keep it out of version control.
Check the Compose file
Open docker-compose.yml and confirm the image tags match what you just loaded. The file defines three services and the named volumes they depend on:
services:
dind:
image: nexus-repo:8085/docker:latest
privileged: true
ports:
- "2376:2376"
restart: always
cs-pg-db:
image: nexus-repo:8085/cs-pg-db:9.2.7
restart: always
cs-server:
image: nexus-repo:8085/cs-server:9.2.7
env_file:
- .env
restart: always
networks:
- cs-network
depends_on:
- cs-pg-db
- dind
No edits are needed for a first-time install — you only change the tags when upgrading.
Start the services
sudo docker compose -p cs-backend up -d
[+] Running 4/4
✔ Network cs-backend_cs-network Created 0.1s
✔ Container cs-backend-cs-pg-db-1 Started 0.4s
✔ Container cs-backend-dind-1 Started 0.4s
✔ Container cs-backend-cs-server-1 Started 0.6s
Verify it worked
All three containers should report as running:
sudo docker compose -p cs-backend ps
Then open StorageGuard in a browser:
https://<docker-host-ip-or-hostname>:8443/CS/
The login page confirms the deployment succeeded. The server may take a minute or two to finish starting after the containers report as up.
Persistent volumes
Compose creates named volumes that hold your database, configuration and logs. They survive container recreation, which is what allows you to upgrade without losing data. List them with:
sudo docker volume ls | grep cs-backend
To find where a volume lives on disk, inspect it:
sudo docker volume inspect cs-backend_csplatform
The Mountpoint field in the output gives the host path, which you will need when configuring backups.
Caution: Never remove these volumes as part of troubleshooting. Deleting cs-backend_postgres_data destroys your StorageGuard database, and docker compose down -v removes all of them.
Troubleshooting
| Symptom | What to do |
|---|---|
A service is missing from docker images after loading.
|
Re-run the docker load for that archive and check for an error. A truncated .tar from an interrupted download is the usual cause. |
Containers start, then cs-server restarts repeatedly.
|
Check its logs with sudo docker logs cs-backend-cs-server-1. Database credentials that don't match the values in .env are the most common reason. |
| The browser can't reach port 8443. | Confirm the containers are up, then check the host firewall. On RHEL and SLES, port 8443 is closed by default. |
[ Still need help? ]
Open a ticket from the Core6 Support portal. Include your Linux distribution and version, your Docker or Podman version, and the output of sudo docker compose -p cs-backend ps.
Comments
0 comments
Please sign in to leave a comment.