HRConvert2 is a free, open source publishing project written in PHP and released under GPL-3.0. It has 1,369 GitHub stars, 82 forks and 2 open issues, and was last pushed 10 days ago. On this registry it ranks #29 of 46 tracked projects in Publishing, with 5 head-to-head comparisons available.

What is HRConvert2?

What it is

HRConvert2 is an open-source, self-hosted, resource-aware file conversion server written in PHP and released under the GPL-3.0 license. It presents a public-facing web workflow in which users drag, drop, convert, and download files without accounts, sessions, databases, cookies, or tracking. The project lives in the self-hosted file-conversion ecosystem, where it replaces hosted converters by running conversion tools on the operator's own machine.

The concrete problem it solves is privacy and control in routine format conversion. Public converters often require uploads to third-party services, which can expose contracts, medical scans, proprietary CAD files, or other sensitive material. HRConvert2 keeps conversions local, isolates each user in a temporary directory, removes files through configurable age-based cleanup, and refuses to run when its sandbox is unavailable. It supports 488 formats and 26 built-in languages.

Key capabilities

  • It converts 488 format families, including documents, spreadsheets, presentations, images, video, audio, archives, e-books, 3D models, subtitles, and bootable ISO files.
  • It extracts text from images and PDFs through OCR, and it captures and converts .m3u8 playlists from live streams.
  • It runs each conversion dependency inside a bubblewrap namespace, so ImageMagick, FFmpeg, Inkscape, and OpenSCAD see only read-only input and output directories.
  • It refuses conversions without a sandbox, keeps sandboxed processes network-isolated, and inspects stream URLs before FFmpeg handles them.
  • It uses per-install CSPRNG-derived session identifiers, sanitized uploads, version-pinned dependencies, and runtime verification of installed components.
  • It provides 26 built-in languages with instant switching and RTL support, without separate language packs.
  • It can fetch remote files from a URL when enabled, while keeping the option off by default.

Who uses it and how

  • Self-hosters provide a public-facing conversion endpoint for users without requiring accounts.
  • Operators on Raspberry Pi systems run conversions locally instead of sending files to external services.
  • Users convert documents, media, archives, e-books, and 3D models through a drag-and-drop web interface.
  • Administrators deploy the application with Docker or a traditional web server, then use convertCore.php diagnostics to validate components.
  • Operators handling sensitive files can rely on temporary user directories, isolated storage, and configurable age-based cleanup.

Getting started

Install from source by cloning the repository and running sudo bash HRConvert2/Documentation/Build/hrconvert2-setup.sh, then open http://your-server/HRProprietary/HRConvert2/convertCore.php. Docker deployment uses docker run -d -p 8080:80 --cap-add SYS_ADMIN zelon88/hrconvert2, and SYS_ADMIN is required for the sandbox.

When to use it — and when not to

Use HRConvert2 when privacy, local processing, and no database or tracking are more important than a hosted service. It is suitable for operators willing to manage PHP, AppArmor, systemd, storage, and sandbox dependencies. It is not a managed cloud product, and it refuses conversions when the required sandbox or SYS_ADMIN capability is absent.

project readme (upstream, from github) — read inline

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

Frequently asked questions

Is HRConvert2 free to use?

HRConvert2 is open source under the GPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does HRConvert2 do?

A self-hosted, respource aware file conversion server supporting 488 formats in 26 languages.

What is HRConvert2 written in?

HRConvert2 is primarily written in PHP. Its source is publicly available at https://github.com/zelon88/HRConvert2, and it has 1,369 GitHub stars.