# Debian adduser xormon # RedHat useradd xormonSet the "linger" property for the user so that containers can continue running even after logout
loginctl enable-linger xormonPerform all subsequent steps under the "xormon" user account
systemctl --user enable podman-restart.serviceCreate directories for persistent data
mkdir -p ~/xormon-ng/data ~/xormon-ng/filesCreate configuration file
cd ~/xormon-ng nano ./xormon-ng.envFile contents
APP_PORT=8443 TZ=<timezone> DB_HOST=timescaledb DB_PORT=5432 DB_USERNAME=postgres DB_PASSWORD=<db_password> DB_DATABASE=xormon APP_SECRET=<xormon-secret>Replace <variables> with values:
podman network create xoruxStart PG16/TimescaleDB container
source ~/xormon-ng/xormon-ng.env podman run --network xorux --init --restart=always --shm-size=4g -d \ -v ~/xormon-ng/data:/var/lib/postgresql/data \ --name timescaledb -e POSTGRES_PASSWORD=$DB_PASSWORD --env-file ~/xormon-ng/xormon-ng.env \ docker.io/timescale/timescaledb:latest-pg16Start XorMon container
podman run --network xorux --init --restart=always -d --name xormon --ulimit core=0 \ -p 8443:8443 -p 8162:8162 -p 2055:2055/udp -p 6343:6343/udp \ -v ~/xormon-ng/files:/app/server-nest/files \ --env-file ~/xormon-ng/xormon-ng.env \ docker.io/xorux/xormon-ng:latestNavigate to XorMon GUI
https://<podman_host_IP>:8443/Default login: xormon / xormon Notes:
podman stop xormon podman rm xormon podman pull docker.io/xorux/xormon-ng:latest podman run --network xorux --init --restart=always -d --name xormon --ulimit core=0 \ -p 8443:8443 -p 8162:8162 -p 2055:2055/udp -p 6343:6343/udp \ -v ~/xormon-ng/files:/app/server-nest/files \ --env-file ~/xormon-ng/xormon-ng.env \ docker.io/xorux/xormon-ng:latestUpgrade from downloaded image
podman stop xormon podman rm xormon podman load < xormon-ng-docker-x.y.z.tar.gz podman run --network xorux --init --restart=always -d --name xormon --ulimit core=0 \ -p 8443:8443 -p 8162:8162 -p 2055:2055/udp -p 6343:6343/udp \ -v ~/xormon-ng/files:/app/server-nest/files \ --env-file ~/xormon-ng/xormon-ng.env \ docker.io/library/xormon:x.y.z
mkdir -p /tmp/xormon-backupSave PostgreSQL and TimescaleDB version
podman exec timescaledb psql -U postgres -d xormon -c "SELECT current_setting('server_version') AS postgres, extversion AS timescaledb FROM pg_extension WHERE extname = 'timescaledb';" | tee /tmp/xormon-backup/db-version.txt
Stop XorMonpodman stop xormonBackup the database
podman exec timescaledb pg_dump -U postgres --format=custom -d xormon > /tmp/xormon-backup/xormon-database.dumpBackup XorMon configuration and files
cp ~/xormon-ng/xormon-ng.env /tmp/xormon-backup/ podman unshare tar --numeric-owner -cpzf /tmp/xormon-backup/xormon-files.tar.gz -C ~/xormon-ng/files .Start XorMon
podman start xormon
mkdir -p ~/xormon-ng/data ~/xormon-ng/filesRestore XorMon configuration file
cp /tmp/xormon-backup/xormon-ng.env ~/xormon-ngCreate network for containers
podman network create xoruxStart PostgreSQL/TimescaleDB container
cat /tmp/xormon-backup/db-version.txt
source ~/xormon-ng/xormon-ng.env podman run --network xorux --init --restart=always --shm-size=4g -d \ -v ~/xormon-ng/data:/var/lib/postgresql/data \ --name timescaledb -e POSTGRES_PASSWORD=$DB_PASSWORD --env-file ~/xormon-ng/xormon-ng.env \ docker.io/timescale/timescaledb:x.y.z-pg1XRestore the database
podman exec timescaledb psql -U postgres -c "DROP DATABASE IF EXISTS xormon;" -c "CREATE DATABASE xormon;" podman exec timescaledb psql -U postgres -d xormon -X -c 'CREATE EXTENSION IF NOT EXISTS "uuid-ossp";' podman exec timescaledb psql -U postgres -d xormon -X -c "SELECT timescaledb_pre_restore()" podman exec timescaledb psql -U postgres -d xormon -X -c "ALTER SYSTEM SET timescaledb.restoring = on;" podman exec -i timescaledb pg_restore -U postgres -d xormon --no-owner --role=postgres < /tmp/xormon-backup/xormon-database.dump podman exec timescaledb psql -U postgres -d xormon -X -c "SELECT timescaledb_post_restore()" podman exec timescaledb psql -U postgres -d xormon -X -c "ALTER SYSTEM SET timescaledb.restoring = off;" podman restart timescaledbRestore XorMon files
podman unshare tar --numeric-owner -xpzf /tmp/xormon-backup/xormon-files.tar.gz -C ~/xormon-ng/files/Start XorMon container
podman run --network xorux --init --restart=always -d --name xormon --ulimit core=0 \ -p 8443:8443 -p 8162:8162 -p 2055:2055/udp -p 6343:6343/udp \ -v ~/xormon-ng/files:/app/server-nest/files \ --env-file ~/xormon-ng/xormon-ng.env \ docker.io/xorux/xormon-ng:latestNavigate to XorMon GUI
https://<podman_host_IP>:8443/
podman exec timescaledb psql -U postgres -d xormon -c "SELECT current_setting('server_version') AS postgres, extversion AS timescaledb FROM pg_extension WHERE extname = 'timescaledb';"
Stop XorMonpodman stop xormonRemove TimescaleDB container
podman stop timescaledb podman rm timescaledbDeploy new TimescaleDB container
source ~/xormon-ng/xormon-ng.env podman pull docker.io/timescale/timescaledb:latest-pg1X podman run --network xorux --init --restart=always --shm-size=4g -d \ -v ~/xormon-ng/data:/var/lib/postgresql/data \ --name timescaledb -e POSTGRES_PASSWORD=$DB_PASSWORD --env-file ~/xormon-ng/xormon-ng.env \ docker.io/timescale/timescaledb:latest-pg1XUpdate TimescaleDB extension
podman exec timescaledb psql -U postgres -X -c "ALTER EXTENSION timescaledb UPDATE;" podman exec timescaledb psql -U postgres -d xormon -X -c "ALTER EXTENSION timescaledb UPDATE;"Display PostgreSQL and TimescaleDB version
podman exec timescaledb psql -U postgres -d xormon -c "SELECT current_setting('server_version') AS postgres, extversion AS timescaledb FROM pg_extension WHERE extname = 'timescaledb';"
Restart TimescaleDB containerpodman restart timescaledbStart XorMon
podman start xormon
podman stop xormonBack up the database
docker stop timescaledb docker rm timescaledbDelete the directory containing the database data
podman unshare rm -rf ~/xormon-ng/dataCreate a new directory for the database data
mkdir ~/xormon-ng/dataRestore database to a new container
podman start xormon
docker load < xormon-ng-docker-<version>.tar.gz
image: xorux/xormon-ng:latestto this:
image: xormon:<version>Note: It is important that you keep the formatting of the .yml file the same as original, otherwise it won't work.
docker compose up -d
docker compose version).
mkdir -p /var/xormon-ng/data /var/xormon-ng/filesCreate configuration file
cd /var/xormon-ng nano ./.envFile contents
APP_PORT=8443 TZ=<timezone> DB_HOST=timescaledb DB_PORT=5432 DB_USERNAME=postgres DB_PASSWORD=<db_password> DB_DATABASE=xormon APP_SECRET=<xormon-secret>Replace <variables> with values:
cd /var/xormon-ng nano ./docker-compose.ymlFile contents
services:
timescaledb:
image: timescale/timescaledb:latest-pg16
init: true
restart: unless-stopped
shm_size: '4gb'
environment:
- POSTGRES_USER=${DB_USERNAME}
- POSTGRES_PASSWORD=${DB_PASSWORD}
- TZ=${TZ}
volumes:
- ./data:/var/lib/postgresql/data
xormon:
image: xorux/xormon-ng:latest
init: true
restart: unless-stopped
ulimits:
core: 0
depends_on:
- timescaledb
env_file: .env
volumes:
- ./files:/app/server-nest/files
ports:
- ${APP_PORT}:${APP_PORT}
- 8162:8162
- 2055:2055/udp
- 6343:6343/udp
The YAML indentation must be preserved exactly.cd /var/xormon-ng docker compose up -dNavigate to XorMon GUI
https://<docker_host_IP>:8443/Default login: xormon / xormon Notes:
grep 'image:' /var/xormon-ng/docker-compose.yml
image: xorux/xormon-ng:latest
cd /var/xormon-ng docker compose pull xormon docker compose up -dUpgrade from downloaded image
docker load < xormon-ng-docker-x.y.z.tar.gzSet the image of the xormon service in /var/xormon-ng/docker-compose.yml to the loaded version:
image: xormon:x.y.zRecreate the container:
cd /var/xormon-ng docker compose up -d
mkdir -p /tmp/xormon-backupSave PostgreSQL and TimescaleDB version
cd /var/xormon-ng
docker compose exec -T timescaledb psql -U postgres -d xormon -c "SELECT current_setting('server_version') AS postgres, extversion AS timescaledb FROM pg_extension WHERE extname = 'timescaledb';" | tee /tmp/xormon-backup/db-version.txt
Stop XorMondocker compose stop xormonBackup the database
docker compose exec -T timescaledb pg_dump -U postgres --format=custom -d xormon > /tmp/xormon-backup/xormon-database.dumpBackup XorMon configuration and files
cp /var/xormon-ng/.env /var/xormon-ng/docker-compose.yml /tmp/xormon-backup/ tar --numeric-owner -cpzf /tmp/xormon-backup/xormon-files.tar.gz -C /var/xormon-ng/files .Start XorMon
docker compose start xormon
mkdir -p /var/xormon-ng/data /var/xormon-ng/filesRestore XorMon configuration files
cp /tmp/xormon-backup/.env /tmp/xormon-backup/docker-compose.yml /var/xormon-ng/Start PostgreSQL/TimescaleDB container
cat /tmp/xormon-backup/db-version.txtSet the image of the timescaledb service in /var/xormon-ng/docker-compose.yml accordingly:
image: timescale/timescaledb:x.y.z-pg1XStart only the database container:
cd /var/xormon-ng docker compose up -d timescaledbRestore the database
cd /var/xormon-ng docker compose exec -T timescaledb psql -U postgres -c "DROP DATABASE IF EXISTS xormon;" -c "CREATE DATABASE xormon;" docker compose exec -T timescaledb psql -U postgres -d xormon -X -c 'CREATE EXTENSION IF NOT EXISTS "uuid-ossp";' docker compose exec -T timescaledb psql -U postgres -d xormon -X -c "SELECT timescaledb_pre_restore()" docker compose exec -T timescaledb psql -U postgres -d xormon -X -c "ALTER SYSTEM SET timescaledb.restoring = on;" docker compose exec -T timescaledb pg_restore -U postgres -d xormon --no-owner --role=postgres < /tmp/xormon-backup/xormon-database.dump docker compose exec -T timescaledb psql -U postgres -d xormon -X -c "SELECT timescaledb_post_restore()" docker compose exec -T timescaledb psql -U postgres -d xormon -X -c "ALTER SYSTEM SET timescaledb.restoring = off;" docker compose restart timescaledbRestore XorMon files
tar --numeric-owner -xpzf /tmp/xormon-backup/xormon-files.tar.gz -C /var/xormon-ng/files/Start XorMon container
cd /var/xormon-ng docker compose up -dNavigate to XorMon GUI
https://<docker_host_IP>:8443/
cd /var/xormon-ng
docker compose exec -T timescaledb psql -U postgres -d xormon -c "SELECT current_setting('server_version') AS postgres, extversion AS timescaledb FROM pg_extension WHERE extname = 'timescaledb';"
Stop XorMondocker compose stop xormonDeploy new TimescaleDB container
image: timescale/timescaledb:latest-pg1XPull the new image and recreate the container:
cd /var/xormon-ng docker compose pull timescaledb docker compose up -d timescaledbUpdate TimescaleDB extension
docker compose exec -T timescaledb psql -U postgres -X -c "ALTER EXTENSION timescaledb UPDATE;" docker compose exec -T timescaledb psql -U postgres -d xormon -X -c "ALTER EXTENSION timescaledb UPDATE;"Display PostgreSQL and TimescaleDB version
docker compose exec -T timescaledb psql -U postgres -d xormon -c "SELECT current_setting('server_version') AS postgres, extversion AS timescaledb FROM pg_extension WHERE extname = 'timescaledb';"
Restart TimescaleDB containerdocker compose restart timescaledbStart XorMon
docker compose start xormon
cd /var/xormon-ng docker compose stop xormonBack up the database
docker compose downDelete the directory containing the database data
rm -rf /var/xormon-ng/dataCreate a new directory for the database data
mkdir /var/xormon-ng/dataRestore database to a new container
docker compose up -d
mkdir -p /var/xormon-ng/data /var/xormon-ng/filesCreate configuration file
cd /var/xormon-ng nano ./xormon-ng.envFile contents
APP_PORT=8443 TZ=<timezone> DB_HOST=timescaledb DB_PORT=5432 DB_USERNAME=postgres DB_PASSWORD=<db_password> DB_DATABASE=xormon APP_SECRET=<xormon-secret>Replace <variables> with values:
docker network create xoruxStart PG16/TimescaleDB container
source /var/xormon-ng/xormon-ng.env docker run --network xorux --init --shm-size=4g -d --restart unless-stopped \ -v /var/xormon-ng/data:/var/lib/postgresql/data \ --name timescaledb -e POSTGRES_PASSWORD=$DB_PASSWORD --env-file /var/xormon-ng/xormon-ng.env \ timescale/timescaledb:latest-pg16Start XorMon container
docker run --network xorux --init -d --restart unless-stopped --name xormon --ulimit core=0 \ -p 8443:8443 -p 8162:8162 -p 2055:2055/udp -p 6343:6343/udp \ -v /var/xormon-ng/files:/app/server-nest/files \ --env-file /var/xormon-ng/xormon-ng.env \ xorux/xormon-ng:latestNavigate to XorMon GUI
https://<docker_host_IP>:8443/Default login: xormon / xormon Notes:
docker pull xorux/xormon-ng:latest docker stop xormon docker rm xormon docker run --network xorux --init -d --restart unless-stopped --name xormon --ulimit core=0 \ -p 8443:8443 -p 8162:8162 -p 2055:2055/udp -p 6343:6343/udp \ -v /var/xormon-ng/files:/app/server-nest/files \ --env-file /var/xormon-ng/xormon-ng.env \ xorux/xormon-ng:latestUpgrade from downloaded image
docker stop xormon docker rm xormon docker load < xormon-ng-docker-x.y.z.tar.gz docker run --network xorux --init -d --restart unless-stopped --name xormon --ulimit core=0 \ -p 8443:8443 -p 8162:8162 -p 2055:2055/udp -p 6343:6343/udp \ -v /var/xormon-ng/files:/app/server-nest/files \ --env-file /var/xormon-ng/xormon-ng.env \ xormon:x.y.z
mkdir -p /tmp/xormon-backupSave PostgreSQL and TimescaleDB version
docker exec timescaledb psql -U postgres -d xormon -c "SELECT current_setting('server_version') AS postgres, extversion AS timescaledb FROM pg_extension WHERE extname = 'timescaledb';" | tee /tmp/xormon-backup/db-version.txt
Stop XorMondocker stop xormonBackup the database
docker exec timescaledb pg_dump -U postgres --format=custom -d xormon > /tmp/xormon-backup/xormon-database.dumpBackup XorMon configuration and files
cp /var/xormon-ng/xormon-ng.env /tmp/xormon-backup/ tar --numeric-owner -cpzf /tmp/xormon-backup/xormon-files.tar.gz -C /var/xormon-ng/files .Start XorMon
docker start xormon
mkdir -p /var/xormon-ng/data /var/xormon-ng/filesRestore XorMon configuration file
cp /tmp/xormon-backup/xormon-ng.env /var/xormon-ng/Create network for containers
docker network create xoruxStart PostgreSQL/TimescaleDB container
cat /tmp/xormon-backup/db-version.txt
source /var/xormon-ng/xormon-ng.env docker run --network xorux --init --shm-size=4g -d --restart unless-stopped \ -v /var/xormon-ng/data:/var/lib/postgresql/data \ --name timescaledb -e POSTGRES_PASSWORD=$DB_PASSWORD --env-file /var/xormon-ng/xormon-ng.env \ timescale/timescaledb:x.y.z-pg1XRestore the database
docker exec timescaledb psql -U postgres -c "DROP DATABASE IF EXISTS xormon;" -c "CREATE DATABASE xormon;" docker exec timescaledb psql -U postgres -d xormon -X -c 'CREATE EXTENSION IF NOT EXISTS "uuid-ossp";' docker exec timescaledb psql -U postgres -d xormon -X -c "SELECT timescaledb_pre_restore()" docker exec timescaledb psql -U postgres -d xormon -X -c "ALTER SYSTEM SET timescaledb.restoring = on;" docker exec -i timescaledb pg_restore -U postgres -d xormon --no-owner --role=postgres < /tmp/xormon-backup/xormon-database.dump docker exec timescaledb psql -U postgres -d xormon -X -c "SELECT timescaledb_post_restore()" docker exec timescaledb psql -U postgres -d xormon -X -c "ALTER SYSTEM SET timescaledb.restoring = off;" docker restart timescaledbRestore XorMon files
tar --numeric-owner -xpzf /tmp/xormon-backup/xormon-files.tar.gz -C /var/xormon-ng/files/Start XorMon container
docker run --network xorux --init -d --restart unless-stopped --name xormon --ulimit core=0 \ -p 8443:8443 -p 8162:8162 -p 2055:2055/udp -p 6343:6343/udp \ -v /var/xormon-ng/files:/app/server-nest/files \ --env-file /var/xormon-ng/xormon-ng.env \ xorux/xormon-ng:latestNavigate to XorMon GUI
https://<docker_host_IP>:8443/
docker exec timescaledb psql -U postgres -d xormon -c "SELECT current_setting('server_version') AS postgres, extversion AS timescaledb FROM pg_extension WHERE extname = 'timescaledb';"
Stop XorMondocker stop xormonRemove TimescaleDB container
docker stop timescaledb docker rm timescaledbDeploy new TimescaleDB container
source /var/xormon-ng/xormon-ng.env docker pull timescale/timescaledb:latest-pg1X docker run --network xorux --init --shm-size=4g -d --restart unless-stopped \ -v /var/xormon-ng/data:/var/lib/postgresql/data \ --name timescaledb -e POSTGRES_PASSWORD=$DB_PASSWORD --env-file /var/xormon-ng/xormon-ng.env \ timescale/timescaledb:latest-pg1XUpdate TimescaleDB extension
docker exec timescaledb psql -U postgres -X -c "ALTER EXTENSION timescaledb UPDATE;" docker exec timescaledb psql -U postgres -d xormon -X -c "ALTER EXTENSION timescaledb UPDATE;"Display PostgreSQL and TimescaleDB version
docker exec timescaledb psql -U postgres -d xormon -c "SELECT current_setting('server_version') AS postgres, extversion AS timescaledb FROM pg_extension WHERE extname = 'timescaledb';"
Restart TimescaleDB containerdocker restart timescaledbStart XorMon
docker start xormon
docker stop xormonBack up the database
docker stop timescaledb docker rm timescaledbDelete the directory containing the database data
rm -rf /var/xormon-ng/dataCreate a new directory for the database data
mkdir /var/xormon-ng/dataRestore database to a new container
docker start xormon
Dernière mise à jour :