Update guide
Updating to Roxy-WI 9.1
Before upgrading, finish active operations and back up the database, application storage and existing secrets. Keep the credential encryption key; generating a replacement during an ordinary update makes stored credentials unreadable.
- Update the application and its Python requirements using your installation method. Stop application writers and apply migrations before restarting them.
- Configure and supervise Web, one Scheduler, Service Events and Operations with RabbitMQ. All roles need the same database, encryption key and saved configuration storage. Check the role reference and health probes.
- If the old installation used cron for filesystem/S3 backups, follow the backup schedule migration on every source cron host before enabling the new schedules.
- If it used cron-managed Let's Encrypt renewals, follow the certificate migration on the original host and its standalone issuers. These two migration commands handle different jobs; one does not replace the other.
- Check process readiness, next backup/certificate runs and interrupted operations. Existing service log formats are preserved; JSON traffic logs are the default for fresh HAProxy/NGINX installations.
For Compose and Kubernetes, use the deployment and update procedures. Container lifecycle is managed by the orchestrator. Read the updated Change Center task workflow and log viewer guide for the 9.1 interface changes.
checker_master.py, metrics_master.py, port_scanner.py and per-target subprocess
model is no longer used. Existing monitoring selections are converted into durable assignments by the Roxy-WI scheduler.
- Back up the Roxy-WI database,
/etc/roxy-wi/roxy-wi.cfgand/var/lib/roxy-wi/keys. - Install and configure RabbitMQ. All Roxy-WI instances and workers must use the same host, port and virtual host; credentials may be shared or service-specific.
- Make every monitored server address and statistics endpoint reachable from the worker hosts. A remote worker cannot use
127.0.0.1to reach another server.
sudo dnf upgrade --refresh roxy-wisudo dnf install roxy-wi-checker roxy-wi-metrics roxy-wi-portscanner roxy-wi-socketsudo systemctl enable --now roxy-wi-scheduler roxy-wi-service-eventssudo systemctl enable --now roxy-wi-checker roxy-wi-metrics roxy-wi-portscanner roxy-wi-socket
sudo apt updatesudo apt install --only-upgrade roxy-wisudo apt install roxy-wi-checker roxy-wi-metrics roxy-wi-portscanner roxy-wi-socketsudo systemctl enable --now roxy-wi-scheduler roxy-wi-service-eventssudo systemctl enable --now roxy-wi-checker roxy-wi-metrics roxy-wi-portscanner roxy-wi-socket
Package upgrades preserve the service environment files and replace the legacy master processes. Do not start the removed
master scripts manually. Packages no longer require Roxy-WI on the same host. The default auto mode reuses the
local Roxy-WI RabbitMQ settings when available; on a worker-only host set
*_USE_ROXYWI_RABBITMQ_SETTINGS=0 and configure *_RABBITMQ_* in the service env-file before starting it.
On a standalone worker host, install only the required service package. A fresh standalone package is enabled but is not
started until you configure its env-file. After saving the RabbitMQ settings, run
systemctl enable --now roxy-wi-checker, roxy-wi-metrics, roxy-wi-portscanner or
roxy-wi-socket as appropriate.
- Prepare the container environment files and persistent databases first.
- Stop the package units to prevent duplicate worker identities and a Socket port conflict.
- Pull and start the pinned container versions with Compose or your Kubernetes deployment.
sudo systemctl disable --now roxy-wi-checker roxy-wi-metrics roxy-wi-portscanner roxy-wi-socketdocker compose pulldocker compose up -d
Use ghcr.io/roxy-wi/roxy-wi-checker:5.0.0,
ghcr.io/roxy-wi/roxy-wi-metrics:4.0.0,
ghcr.io/roxy-wi/roxy-wi-portscanner:2.0.0 and
ghcr.io/roxy-wi/roxy-wi-socket:2.0.0. Pin exact versions in production. Checker, Metrics and Port Scanner may use
SQLite with one replica; two or more replicas must share their own MySQL/MariaDB database. Every worker database and the
Roxy-WI application database must use separate schemas.
Package-installed services can still be updated from Admin area => Update. Container and Kubernetes deployments are updated by changing the image tag and performing a Compose or Kubernetes rollout; Roxy-WI does not replace those images itself.
systemctl status roxy-wi-scheduler roxy-wi-service-eventssystemctl status roxy-wi-checker roxy-wi-metrics roxy-wi-portscanner roxy-wi-socket# or, for containers:docker ps --filter name=roxy-wi
Within approximately one minute, the workers and their active assignment counts must appear on Overview and Admin area => Tools. Checker incidents remain available in Checker history, Metrics samples continue to feed the existing graphs, and Port Scanner changes remain available in Port Scanner history.
- haproxy-wi-checker
- haproxy-wi-smon
- haproxy-wi-metrics
- haproxy-wi-checker
- haproxy-wi-portscanner
- haproxy-wi-keep_alive
- roxy-wi-checker
- roxy-wi-smon
- roxy-wi-metrics
- roxy-wi-checker
- roxy-wi-portscanner
- roxy-wi-keep_alive
- roxy-wi-metrics
- roxy-wi-checker
- roxy-wi-smon
- roxy-wi-keep_alive
- roxy-wi-socket
- roxy-wi-portscanner
- roxy-wi-prometheus-exporter
Also check the configuration file at /etc/roxy-wi/roxy-wi.cfg:
- Open the Admin area => Servers page and select No slave in the Slave for dropdown.
- Open the HA cluster page.
- Click Create high availability cluster.
- Create a new HA cluster according to your configuration.
- Click Save.
- Add an additional VIP if necessary.
- Add an extra virtual server if needed.
- If you would like to reconfigure your cluster according to HA cluster settings, click Edit on the cluster you wish to reconfigure. In the opened window, click Next, and then Apply.
rpm -e --nodeps python3-mod_wsgi ansible-collection-community-general ansible ansible-core
yum install python3.11-mod_wsgi
ssh-keygen -t rsa -b 4096 -m pem -f /var/lib/roxy-wi/keys/roxy-wi-key -C "Roxy-WI JWT KEY. DO NOT DELETE IT!" -P ""
For EL:
chown apache:apache /var/lib/roxy-wi/keys/* -R
systemctl reload httpd
For Ubuntu:
chown www-data:www-data /var/lib/roxy-wi/keys/* -R
systemctl reload apache2
cd /var/www/haproxy-wi/app
For EL:
python3.11 update_db_to_v8.py
systemctl reload httpd
For Ubuntu:
python3 update_db_to_v8.py
systemctl reload apache2