Installation

Prerequisites

Before installing the SSI Agent, ensure your system meets the following requirements:

RequirementHow to Check
Linux with systemdsystemctl --version
Python 3.12+python3 --version
python3-venvpython3 -c 'import venv'
pippip3 --version or python3 -m pip --version
setfacl (ACL tools)which setfacl
gcc (recommended)which gcc

Installing Prerequisites (Debian/Ubuntu)

bash
1sudo apt update
2sudo apt install python3 python3-venv python3-pip acl build-essential

Installing Prerequisites (RHEL/CentOS/Fedora)

bash
1sudo dnf install python3 python3-pip acl gcc

Installation

Quick Install

Clone the repository and run the install script:

bash
1git clone https://github.com/RemiZlatinis/ssi-agent.git
2cd ssi-agent
3sudo ./install.sh

What the Installer Does

  1. Checks system requirements — Verifies Python, systemd, and dependencies
  2. Creates system userssi-agent user for running the daemon
  3. Creates directories:
    • /opt/ssi-agent/ — Application files
    • /opt/ssi-agent/venv/ — Python virtual environment
    • /opt/ssi-agent/bin/ — Entry point scripts
    • /opt/ssi-agent/scripts/ — Enabled service-scripts
    • /etc/ssi-agent/ — Configuration files
    • /var/log/ssi-agent/ — Log files
  4. Sets up Python virtual environment — Isolated Python environment
  5. Installs systemd service — Daemon service file
  6. Creates CLI symlinkssi command available system-wide
  7. Starts the daemon — Agent begins running

Post-Installation

After installation, verify the agent is running:

bash
1# Check service status
2systemctl status ssi-agent
3
4# Verify CLI is available
5ssi --help

Register the Agent

To connect the agent to your SSI backend:

bash
1ssi register

This will display a 6-digit code. Enter this code in an SSI client to complete registration.

Directory Structure

After installation, the following directories are created:

Rendering diagram...

Configuration

The default configuration file is created at /etc/ssi-agent/config.json:

json
1{
2  "backend_url": "https://api.service-status-indicator.com/",
3  "log_level": "INFO",
4  "log_dir": "/var/log/ssi-agent",
5  "config_dir": "/etc/ssi-agent"
6}

To change the backend URL:

bash
1ssi set-backend https://your-backend-url.com/

Uninstallation

To completely remove the SSI Agent:

bash
1cd ssi-agent
2sudo ./install.sh --remove

Or use the --uninstall flag:

bash
1sudo ./install.sh --uninstall

The uninstaller will:

  • Stop and disable the systemd service
  • Remove application files
  • Remove configuration (optional)
  • Remove log files (prompts for confirmation)
  • Remove the system user

Upgrading

To upgrade the agent, simply re-run the installer:

bash
1cd ssi-agent
2git pull
3sudo ./install.sh

The installer preserves your existing configuration.

Troubleshooting Installation

"systemd is required but not found"

The SSI Agent only works on systemd-based Linux distributions. Distributions without systemd (e.g., Alpine, Devuan) are not supported.

"Python 3.12 or higher is required"

Install a newer Python version:

bash
1# Ubuntu/Debian with deadsnakes PPA
2sudo add-apt-repository ppa:deadsnakes/ppa
3sudo apt install python3.12 python3.12-venv

"setfacl is required but not found"

Install the ACL utilities:

bash
1# Debian/Ubuntu
2sudo apt install acl
3
4# RHEL/CentOS
5sudo dnf install acl

Permission Denied Errors

Ensure you're running the installer with sudo:

bash
1sudo ./install.sh