Spaces:
Paused
Paused
| title: HarshItPDF | |
| emoji: 🖥️ | |
| colorFrom: indigo | |
| colorTo: purple | |
| sdk: gradio | |
| sdk_version: "5.23.3" | |
| python_version: "3.12" | |
| app_file: app.py | |
| pinned: false | |
| # HarshItPDF — HF Spaces Gradio (Free Tier) | |
| HarshItPDF is a rebranded, fully-unlocked Stirling-PDF deployed on Hugging Face Spaces Free Tier using Gradio. | |
| ## What you get | |
| - **All premium / enterprise features enabled** (3-layer bytecode patch + mock license server) | |
| - **OCR support** (Tesseract pre-installed via `packages.txt`) | |
| - **Gradio splash screen** with JavaScript auto-redirect to the Java backend | |
| - **No credit card required** | |
| ## Default login | |
| - **Username:** `admin` | |
| - **Password:** `changeme123` | |
| ## How to deploy | |
| 1. Create a new **HF Space** → choose **Gradio** as the SDK | |
| 2. Upload these files to the repo root: | |
| - `app.py` | |
| - `license_server.py` | |
| - `requirements.txt` | |
| - `packages.txt` | |
| - `README.md` | |
| 3. HF builds the environment automatically (~3–5 minutes) | |
| 4. Once the Space status shows **Running**, click the **Open** button | |
| 5. The splash screen will auto-redirect to the app once the Java backend is ready (~30–60 seconds) | |
| ## Files | |
| | File | Purpose | | |
| |---|---| | |
| | `app.py` | Runtime patcher + orchestrator + Gradio UI | | |
| | `license_server.py` | Mock Keygen API on port 7871 | | |
| | `requirements.txt` | Python dependencies (gradio) | | |
| | `packages.txt` | System packages (Java 17 JDK, Tesseract, unzip, wget) | | |
| ## Important notes | |
| - **Cold start:** Free CPU Spaces hibernate after ~48 hours of inactivity. First visit after sleep triggers a ~1–2 minute cold start (JAR download + extraction + patching + Java startup). | |
| - **While awake:** The app stays responsive. The Gradio UI proxies to the Java backend via HF Spaces' internal port proxy (`/proxy/7870/`). | |
| - **OCR languages:** English is pre-installed. Add more `tesseract-ocr-*` packages in `packages.txt` if needed. | |
| - **Premium license:** Three independent patches ensure Enterprise status — bytecode flip (`iconst_0→1`), `LicenseKeyChecker` getter override, and Spring bean `runningProOrHigher()→true`. | |