Files
Samsara/README.md

4.9 KiB

Samsara

Source repository: oceans2alaska/Samsara.

Windows Server and Red Hat Enterprise Linux retirement assessment. Collect inventory, review dependencies and risks, and save evidence-based reports. Python 3.11+ and PySide6.

Get started

python3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt
python -m samsara.main

On Windows, create the environment with py -3 -m venv .venv and activate .venv\Scripts\activate. Run from the project root in a desktop session.

Linux desktop compatibility includes Mint. Debian-based desktops may need python3-venv libegl1 libopengl0 libxcb-cursor0 libxkbcommon-x11-0 installed through their package manager. If Qt reports a missing xcb cursor library, install the package providing libxcb-cursor.so.0.

Analyze

  1. Open Analyze. Leave Assessment source → This computer and Operating system → Auto-detect selected.
  2. Click Analyze. The app identifies the local OS, runs its available read-only collector and prepares the assessment report.
  3. The Summary page opens automatically with a retirement risk estimate, OS type/version, important software and enabled scheduled jobs/scripts. Higher scores mean more retirement concerns; the score is not retirement approval.
  4. Open detailed tabs for Networking, Software, Tasks, Dependencies, Services, Storage, Roles, Certificates, Risk findings, Collection checks and System. Tables are searchable and sortable.
  5. Click Save HTML report, or use Reports to export HTML/JSON. History reopens assessments from this session.

Explicit profiles include Windows Server 2016, 2019, 2022 and 2025; RHEL 7 (legacy), 8, 9 and 10; and RHEL-compatible Linux. A local profile must match the detected OS. Auto-detect also allows local testing on other Linux distributions. Profile choices do not imply that every live collector is implemented or every release is validated.

Choose Saved inventory file to analyze existing JSON; the recorded OS is displayed without probing another computer. Windows Server sample and RHEL sample provide clearly labeled synthetic examples. No synthetic results are loaded into history automatically.

Current availability

Local Linux collection and offline reporting are implemented. Live Windows and remote collection are not yet available; the UI reports that limitation explicitly. Windows desktops can use saved inventories and samples, but Windows desktop execution still requires platform validation. No server is contacted automatically.

The Linux collector observes OS/kernel/boot information, addresses, loaded systemd services and timers (including available calendar/next-run metadata), readable system cron entries, TCP snapshots, RPM or dpkg software and mounted filesystems. Missing commands or restricted permissions produce visible failed checks. Service accounts, user crontabs/timers, anacron/periodic-script configuration, certificate locations, share exports, disk capacity/free space and directory integration remain incomplete or uncollected. Results reflect the execution process's namespace and permissions. Remote mounts are not accessed.

Collection is read-only, requires no sudo and does not restart services, configure remoting, install software or read private keys, secret-bearing command lines or environment variables. Cancel stops the active collector and retains the previous assessment. Commands have time and output limits.

The summary highlights name-matched server software and running application services; this is not a complete application classifier. Scheduled entries show configured work, not confirmed execution, and cron timezones are unverified. Full inventory and collection limitations remain available in the tabs and exported report.

Risk is a preliminary heuristic requiring administrator review. Missing connections do not prove non-use, and the tool never declares a server safe for retirement. Review exported hostnames, paths and addresses before sharing.

Headless Linux inventory

The standard-library-only collector can export local inventory without Qt:

python3 -m samsara.collectors.linux --output /tmp/server-inventory.json

Use a new filename; existing files are not overwritten. Open the result using Saved inventory file on either desktop. Imported check assertions are not independently verified. Import validates the v1 schema, limits input to 10 MiB, removes external diagnostic details and service/task command fields, and recalculates risk.

Development

python -m unittest discover -s tests -v

Qt tests run offscreen. See platform support, architecture and plan and developer guide. Run from source; Windows packaging and production collector validation remain pending.