Professional read-only data recovery system for Windows
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.
- π 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
smartctlintegration 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.
There are now three .bat files in the repository, each with a clear purpose:
-
RevivaX.batThe 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.batThe build script for packaging RevivaX with PyInstaller. It generatesdist\RevivaX\RevivaX.exe. -
build-installer.batThe installer build script for packaging the PyInstaller output with Inno Setup. It generatesdist\installer\RevivaX-Setup.exe.
When you launch the application through RevivaX.bat, the startup flow is:
- Elevate to administrator if needed.
- Check Python availability.
- Verify core dependencies.
- Install missing runtime dependencies.
- Start
main.py.
Inside main.py, RevivaX also:
- prepares required directories,
- initializes the recovery and SMART managers,
- checks
smartctlavailability, - 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.pyOther supported environment variables:
REVIVAX_RESTORE_LAST_JOBEnables automatic restoration of the last saved recovery job when set to1,true,yes, oron.REVIVAX_ALLOWED_ORIGINSOptional 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- Windows 10 or Windows 11
- Python 3.8+
- Administrator privileges for physical/raw disk access
- Internet access on first run if dependencies or
smartctlneed to be fetched
Optional:
smartmontoolsinstalled globally, although RevivaX can also use a localtools/smartctl.exeand has a Windows PowerShell fallback for SMART summaries- Inno Setup 6, only if you want to generate the Windows installer
RevivaX.batThis is the simplest and official way to start the project on Windows.
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
python main.pyThen 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.
The current project includes smoke coverage for the most important flows:
pip install -r requirements-dev.txt
python -m pytest -qCovered scenarios include:
- raw image file scanning,
- API-based scan flow,
- recovery flow,
- export flow.
build.batThis uses the official RevivaX.spec and produces:
dist\RevivaX\RevivaX.exe
Packaging details:
- static and template assets are bundled,
- the local
toolsdirectory 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-installer.batThis requires ISCC.exe from Inno Setup 6 and produces:
dist\installer\RevivaX-Setup.exe
The repository includes the installer script in installer.iss.
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
- 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.
- 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.
- Initial release.
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.
This project is licensed under the MIT License.