Skip to content

Latest commit

 

History

974 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HRConvert2

🔁 HRConvert2

Self-Hosted, Resource-Aware, Public-Facing File Conversion Server
No database. No cookies. No tracking. Nothing leaves your server.

Get Started · Documentation · Docker Image

The HRConvert2 options interface


🔒 Why HRConvert2?

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

🛡️ The Privacy Promise

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

⚡ Quick Start

🧩 Traditional Install (30 seconds)

git clone https://github.com/zelon88/HRConvert2
sudo bash HRConvert2/Documentation/Build/hrconvert2-setup.sh

The 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

docker run -d -p 8080:80 --cap-add SYS_ADMIN zelon88/hrconvert2

Note: SYS_ADMIN is required for the security sandbox. Without it, HRConvert2 refuses conversions rather than running unprotected.

🛠️ Troubleshooting

sudo php convertCore.php -fp

This fixes 99% of issues and reports exactly what it corrected.

sudo php convertCore.php -v

This validates every installed component, every dependency, every feature. Everything. An extremely powerful diagnostic tool.


📦 Supported Formats: 488 Total

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

🔐 Security by Design

HRConvert2 is built for public-facing deployment—which means it's built to be attacked. Every protection is there for a reason.

🧰 Sandboxing

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)

🛡️ Multi-Layer Protections

  • 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

🌐 26 Languages Built In

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.


🎨 Customizable Interfaces & Appearance

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.


🚀 Advanced Features

⚙️ Resource-Aware Load Management (Optional)

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.

💻 Command-Line Control

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 listener

Full command reference

🗄️ Storage Distribution

Span storage across multiple drives with your choice of strategy:

  • Round-robin for even distribution
  • Least-active for dynamic load balancing
  • Redundant for failover protection

🔄 Auto-Update with Rollback

php convertCore.php -u=latest

Updates pull a release, merge your config, swap atomically, then verify. Can't run? Automatically rolls back to the previous version.


🧾 System Requirements

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.


🤝 Contributing

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.


📜 License

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

Releases

Packages

Used by

Contributors

Languages