Installation #

XPro is distributed as pre-built binaries for Linux (amd64). Packages are available as RPM, DEB, and tarball from the xpro-free GitHub repository.

Prerequisites #

  • OS: Linux (amd64) — RHEL 8+, Ubuntu 18.04+, Debian 10+, or compatible
  • libxml2: Version 2.9 or later (required by the processor for XSD validation)
  • systemd: For service management (included in most modern Linux distributions)

Download #

Download the latest release from github.com/bluefunda/xpro-free/releases.

Three package formats are available:

FormatFileUse Case
DEBxpro-free-<version>-1.amd64.debUbuntu, Debian
RPMxpro-free-<version>-1.amd64.rpmRHEL, CentOS, Rocky, Fedora
Tarballxpro-free_<version>_linux_amd64.tar.gzManual installation

Install via DEB (Ubuntu/Debian) #

sudo dpkg -i xpro-free-1.0.13-1.amd64.deb
sudo apt-get install -f   # resolve dependencies if needed

Install via RPM (RHEL/CentOS/Rocky) #

sudo dnf install xpro-free-1.0.13-1.amd64.rpm

Install via Tarball (Manual) #

tar xzf xpro-free_1.0.13_linux_amd64.tar.gz
cd xpro-free_1.0.13_linux_amd64
sudo cp xpro processor file-watcher xmlgen /usr/local/bin/

For the tarball method, you will need to manually create the directory structure and system user. See FHS Layout below.

Verify Installation #

xpro version

What Gets Installed #

The RPM and DEB packages install the following:

Binaries #

BinaryDescription
xproUnified CLI entry point
processorXML processing engine
file-watcherDirectory monitoring daemon
xmlgenXML test file generator

Directory Layout #

XPro follows the Filesystem Hierarchy Standard (FHS):

/opt/xpro/
├── bin/                    # Executables
├── etc/                    # Configuration files
   ├── config.yml          # Processor configuration
   ├── watcher-config.yml  # File watcher configuration
   ├── xpro.env            # Environment variables
   └── license.key         # License file (if applicable)
├── share/
   ├── doc/                # Documentation
   ├── man/man1/           # Man pages
   └── schemas/            # XSD validation schemas
└── var/
    ├── log/                # Application logs
    ├── run/                # PID files, runtime state
    └── data/               # Processing state, metrics, audit logs

The packages create standard symlinks so XPro integrates with your system:

SymlinkTarget
/usr/bin/xpro/opt/xpro/bin/xpro
/etc/xpro/opt/xpro/etc
/var/log/xpro/opt/xpro/var/log
/usr/share/man/man1/xpro.1/opt/xpro/share/man/man1/xpro.1

System User #

The package creates a dedicated xpro system user and group with:

  • No login shell (/sbin/nologin)
  • Restricted file permissions (0640 for config, 0750 for runtime directories)

Systemd Services #

Four service units are installed and enabled (but not started):

ServiceDescription
xpro-processor.serviceXML processing daemon
xpro-file-watcher.serviceFile watcher daemon
xpro-status-tracker.serviceProcessing state tracker
xpro-retry-processor.serviceFailed file retry service

Post-Installation #

After installing, configure your database credentials and start the services:

# Edit configuration
sudo vi /etc/xpro/config.yml

# Set database credentials in environment file
sudo vi /etc/xpro/xpro.env

# Start services
sudo systemctl start xpro-file-watcher
sudo systemctl start xpro-processor

# Check status
sudo systemctl status xpro-processor

Verify Checksum #

Each release includes a checksums.txt file with SHA256 hashes:

sha256sum -c checksums.txt

Uninstall #

# DEB
sudo dpkg -r xpro-free

# RPM
sudo dnf remove xpro-free

Next Steps #