Skip to content

informigados/revivax

Repository files navigation

RevivaX Icon

RevivaX

Professional read-only data recovery system for Windows

License Python 3.8+ Windows 10/11 Flask Security Policy Contributing

🧭 Overview

RevivaX is a Windows-first file recovery system focused on safe, read-only inspection of drives, folders, and raw disk images. It combines a Flask-based local dashboard with a Python recovery engine that can scan by file signatures, estimate recoverability, inspect SMART health data, and carve matching files to a separate output directory.

The current implementation is designed for local execution only. The web interface binds to 127.0.0.1, the scanner avoids writes to scanned devices, and recovery output is written only to explicitly selected destinations.

The default interface language is Portuguese (Brazil). Active translations are also available for English, Portuguese (Portugal), and Spanish.

✨ Features

  • πŸ”Ž Quick Scan and Deep Scan for signature-based file discovery.
  • πŸ’½ Raw device access on Windows for low-level disk inspection when running with administrator privileges.
  • πŸ“ Folder scan mode for safer validation, triage, and demo workflows.
  • 🧠 SMART health monitoring with smartctl integration and PowerShell fallback.
  • ♻️ Selective recovery of discovered files to a separate output directory.
  • πŸ“Š Local dashboard with scan progress, results, logs, and system status.
  • 🌐 Multilingual interface with Portuguese (Brazil) as default plus English, Portuguese (Portugal), and Spanish.
  • πŸ”’ Read-only scanning policy for the source device.
  • πŸ“¦ PyInstaller build for generating the Windows executable.
  • 🧰 Inno Setup installer script for packaging the distribution folder into a Windows installer.

πŸš€ Which .bat file should you use?

There are now three .bat files in the repository, each with a clear purpose:

  • RevivaX.bat The official launcher for running the system on Windows. It:

    • requests administrator elevation when needed,
    • checks whether Python is available,
    • verifies required dependencies,
    • installs only runtime dependencies if missing,
    • starts main.py.
  • build.bat The build script for packaging RevivaX with PyInstaller. It generates dist\RevivaX\RevivaX.exe.

  • build-installer.bat The installer build script for packaging the PyInstaller output with Inno Setup. It generates dist\installer\RevivaX-Setup.exe.

βš™οΈ Runtime behavior

When you launch the application through RevivaX.bat, the startup flow is:

  1. Elevate to administrator if needed.
  2. Check Python availability.
  3. Verify core dependencies.
  4. Install missing runtime dependencies.
  5. Start main.py.

Inside main.py, RevivaX also:

  • prepares required directories,
  • initializes the recovery and SMART managers,
  • checks smartctl availability,
  • binds to 127.0.0.1,
  • finds the first available port starting from 5000,
  • opens the browser automatically unless disabled.

Persistent restoration of the last scan is disabled by default to avoid mixing old state into a new session. If needed for diagnostics, enable it explicitly with:

set REVIVAX_RESTORE_LAST_JOB=1
python main.py

Other supported environment variables:

  • REVIVAX_RESTORE_LAST_JOB Enables automatic restoration of the last saved recovery job when set to 1, true, yes, or on.
  • REVIVAX_ALLOWED_ORIGINS Optional comma-separated allowlist for local cross-origin API access. Example:
set REVIVAX_ALLOWED_ORIGINS=http://localhost:5000,http://127.0.0.1:5000
python main.py

πŸ› οΈ Requirements

  • Windows 10 or Windows 11
  • Python 3.8+
  • Administrator privileges for physical/raw disk access
  • Internet access on first run if dependencies or smartctl need to be fetched

Optional:

  • smartmontools installed globally, although RevivaX can also use a local tools/smartctl.exe and has a Windows PowerShell fallback for SMART summaries
  • Inno Setup 6, only if you want to generate the Windows installer

▢️ Quick Start

Recommended: Windows launcher

RevivaX.bat

This is the simplest and official way to start the project on Windows.

Manual start

python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
python main.py

Then open the local URL printed by the app, typically:

http://127.0.0.1:5000

If port 5000 is already in use, RevivaX automatically selects the next available local port.

πŸ§ͺ Validation

The current project includes smoke coverage for the most important flows:

pip install -r requirements-dev.txt
python -m pytest -q

Covered scenarios include:

  • raw image file scanning,
  • API-based scan flow,
  • recovery flow,
  • export flow.

πŸ“¦ Packaging

Build the executable with PyInstaller

build.bat

This uses the official RevivaX.spec and produces:

dist\RevivaX\RevivaX.exe

Packaging details:

  • static and template assets are bundled,
  • the local tools directory is bundled when present,
  • the executable is marked to request administrator elevation,
  • writable runtime data is redirected to a user-writable application directory when running as a packaged app.

Build the installer with Inno Setup

build-installer.bat

This requires ISCC.exe from Inno Setup 6 and produces:

dist\installer\RevivaX-Setup.exe

The repository includes the installer script in installer.iss.

πŸ—οΈ Project Structure

revivax/
β”œβ”€β”€ core/
β”‚   β”œβ”€β”€ carver.py
β”‚   β”œβ”€β”€ recovery.py
β”‚   β”œβ”€β”€ scanner.py
β”‚   β”œβ”€β”€ smart_monitor.py
β”‚   └── smartctl_setup.py
β”œβ”€β”€ tests/
β”‚   └── test_smoke.py
β”œβ”€β”€ tools/
β”œβ”€β”€ web/
β”‚   β”œβ”€β”€ app.py
β”‚   β”œβ”€β”€ static/
β”‚   └── templates/
β”œβ”€β”€ build.bat
β”œβ”€β”€ build-installer.bat
β”œβ”€β”€ installer.iss
β”œβ”€β”€ RevivaX.bat
β”œβ”€β”€ RevivaX.spec
β”œβ”€β”€ main.py
β”œβ”€β”€ requirements.txt
β”œβ”€β”€ requirements-dev.txt
β”œβ”€β”€ CONTRIBUTING.md
β”œβ”€β”€ SECURITY.md
└── README.md

πŸ”’ Security Notes

  • RevivaX binds to localhost only (127.0.0.1).
  • Source scanning is intended to remain read-only.
  • Recovery output is written to a separate target directory.
  • Device and file inputs in the web layer are sanitized before sensitive operations.
  • Protected system directories are rejected as recovery destinations.

Please read SECURITY.md before reporting vulnerabilities.

πŸ—ΊοΈ Roadmap

  • Replace polling/SSE progress paths with a more unified real-time transport.
  • Add persistent recovery/session storage.
  • Expand file signature coverage.
  • Improve frontend asset packaging to remove runtime CDN dependencies.
  • Add broader automated coverage for SMART, logs, and CSV export.

πŸ“ Changelog

2026-03-20 (1.0.0)

  • Initial release.

🀝 Contributing

Contributions are welcome. Before opening a pull request, read CONTRIBUTING.md for the expected workflow, testing guidance, and project-specific constraints around read-only recovery behavior.

πŸ‘₯ Authors

πŸ“„ License

This project is licensed under the MIT License.

About

RevivaX is a Windows-first file recovery system focused on safe, read-only inspection of drives, folders, and raw disk images.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors