Self-Hosted, Resource-Aware, Public-Facing File Conversion Server
No database. No cookies. No tracking. Nothing leaves your server.
Get Started · Documentation · Docker Image
Every free online file converter is actually a data collection business in disguise. Upload a contract, medical scan, or proprietary CAD file? You just handed it to a stranger with an ad network.
HRConvert2 is different. Same convenience. Zero compromise.
- Conversions happen on your machine using local tools
- Users need no account and leave no trace
- Runs on a Raspberry Pi
- Workflow: Drag, drop, convert, download
| Feature | What You Get |
|---|---|
| Nothing transmitted | Conversions run locally only |
| No accounts or sessions | Users are temporary directories |
| Zero tracking | No analytics, telemetry, or CDN |
| Auto-delete files | Configurable age-based cleanup |
| Isolated storage | Users cannot see each other's files |
git clone https://github.com/zelon88/HRConvert2
sudo bash HRConvert2/Documentation/Build/hrconvert2-setup.shThe installer handles everything:
- Pulls all dependencies
- Creates storage
- Sets up AppArmor profile & PHP settings
- Installs systemd unit
- Reports what's working
Then open http://your-server/HRProprietary/HRConvert2/convertCore.php and start converting.
Pro tip: Add -y to skip confirmations.
docker run -d -p 8080:80 --cap-add SYS_ADMIN zelon88/hrconvert2Note: SYS_ADMIN is required for the security sandbox. Without it, HRConvert2 refuses conversions rather than running unprotected.
sudo php convertCore.php -fpThis fixes 99% of issues and reports exactly what it corrected.
sudo php convertCore.php -vThis validates every installed component, every dependency, every feature. Everything. An extremely powerful diagnostic tool.
| Category | Examples |
|---|---|
| Documents | doc, docx, txt, rtf, odt, pdf |
| Video | mp4, mkv, avi, mov, webm, flv, + 50+ more |
| Audio | mp3, flac, aac, wav, opus, wma, + 30+ more |
| Spreadsheets | csv, xls, xlsx, ods |
| Presentations | pptx, ppt, odp |
| Images | jpg, png, gif, webp, svg, ico, heic |
| Archives | zip, rar, 7z, tar, gz, bz2 |
| E-Books | epub, mobi, azw, azw3, azw4 |
| 3D Models | obj, stl, dxf, collada, ply |
| Technical | OpenSCAD, CAD drawings, vector graphics |
| Bootable ISO | x86, ARM, UEFI, MBR/GPT hybrid |
| OCR | Extract text from images and PDFs |
| Live Streams | Capture and convert .m3u8 playlists |
| Remote Files | Fetch a file from a URL, off by default |
| Subtitles | srt, vtt, ass, sub, sbv, ttml, + more |
HRConvert2 is built for public-facing deployment—which means it's built to be attacked. Every protection is there for a reason.
Every conversion dependency runs inside a bubblewrap namespace:
- ImageMagick, FFmpeg, Inkscape, OpenSCAD—all isolated
- Each process sees only its input (read-only) and output directories
- Network is unshared—no external URL handlers
- No sandbox = no conversion (HRConvert2 refuses rather than takes risks)
- Session identifiers derived from a per-install secret (CSPRNG)
- Dependencies version-pinned and verified at runtime
- Uploads sanitized before any tool touches them
- Stream URLs fully inspected before FFmpeg sees them
- Updates require shell access (not guessable secrets)
- Every error documented with cause and solution
Users switch languages instantly from the interface—no language packs to install:
| English | Français | Español | 中文 |
| हिन्दी | العربية | Русский | Українська |
| বাংলা | Deutsch | 한국어 | Italiano |
| Português | Tiếng Việt | Türkçe | 日本語 |
| Bahasa Indonesia | Polski | Nederlands | Kiswahili |
| မြန်မာ | اردو | فارسی | עברית |
RTL Support: Arabic, Hebrew, Persian, Urdu, and Syriac display with proper right-to-left layouts.
Community-Driven: Adding a language is as simple as adding one folder. No core code changes required.
Users can personalize their experience:
- 2 interface layouts: Default, Original
- Fluid width: Every layout fits the device, up to a ceiling you set
- 7 color schemes: Red, Green, Blue, Grey, Orange, Purple, Dark
- In-page switching: No reload needed
Admins can lock down preferences in config.php. Each interface lives in its own folder—fork and brand it however you want without touching the core.
Turn on smart resource management to prevent overload:
- CPU & memory caps scale with system load
- Runaway conversions auto-terminate
- Storage spans multiple disks (round-robin, least-active, or failover)
- System watchdog monitors everything
Key design: Fails open. No budget socket? Conversion runs anyway. Nothing can take your server offline.
Everything is manageable from the terminal:
php convertCore.php -v # Version & dependency check
php convertCore.php --status # System state
php convertCore.php -u=latest # Update to newest release
php convertCore.php -c=now # Clean all expired sessions
php convertCore.php -fp # Fix permissions & repair
php convertCore.php --config # Interactive config wizard
php convertCore.php -l # Start resource listener
php convertCore.php -k # Stop resource listenerSpan storage across multiple drives with your choice of strategy:
- Round-robin for even distribution
- Least-active for dynamic load balancing
- Redundant for failover protection
php convertCore.php -u=latestUpdates pull a release, merge your config, swap atomically, then verify. Can't run? Automatically rolls back to the previous version.
| Requirement | Minimum |
|---|---|
| OS | Debian or Ubuntu Linux |
| Web Server | Apache 2.4 |
| PHP | 8.0 or later |
| Hardware | Raspberry Pi Model B+ (any x86/x64 is comfortable) |
| Sandbox | Bubblewrap (required and non-negotiable) |
The installer handles all dependencies. Seriously—just run the script.
Contributions are welcome:
- Language translations — Just add a folder
- Interface themes — Fork a UI folder and get creative
- Bug reports — Include reproduction steps
- Security reports — Open an issue (we take them seriously)
The architecture is deliberately modular: a language is a folder, an interface is a folder. Neither requires touching the core.
GNU General Public License v3.0
Free to use. Free to modify. Free to self-host.
If you improve it, send it back.
Made for privacy-conscious developers
@zelon88

