-
released this
2026-04-10 21:56:26 +02:00 | 0 commits to main since this releasepwnfoil v1.0.0
First release. A self-hosted game download manager that scrapes ROM sources,
unrestricts hoster links via a debrid service, queues resumable downloads
with live progress, and auto-unpacks the archives into a clean,
emulator-ready folder tree.All ten planned phases from the initial roadmap are delivered and running in
production, smoke-tested end-to-end against real Real-Debrid traffic and real
nswgame.com releases (including RAR5).What's in the box
- Import by URL — paste a source page, the scraper pulls title, cover,
description, and download links in one go. - Real-Debrid unrestricting — wired up and live-tested; the DebridProvider
interface is ready for TorBox next. - Resumable downloads — HTTP/2 Range resume on .part files, retries with
exponential backoff on transient network errors, and zombie-task recovery on
restart so a JVM crash mid-download doesn't strand anything. - Live progress via SSE — per-task speed and ETA streamed to the UI,
auto-reconnecting EventSource with a 10s polling fallback. - Post-download extraction — single 7z CLI shell-out handles zip / 7z / rar
(incl. RAR5, multi-part, solid) / tar / gz / bz2 / xz. Per-task cancel,
optional archive cleanup after success. - Organised on disk — files land at ///…
using human-readable platform names. - Svelte 5 SPA — library with search, game detail with per-link download
status, downloads queue with tabs, settings with debrid health check. - Safety — path-traversal checks on both the download target and the
extractor.
Stack
Kotlin · Spring Boot 3.4 · Java 21 · PostgreSQL 16 · Liquibase · Svelte 5
(runes) · Vite · nginx · Docker Compose · Forgejo CI.Backend test coverage: 44 tests (5 skipped locally without 7z on PATH, run in
CI).Run it
cp .env.example .env
fill in REALDEBRID_API_KEY
docker compose -f docker-compose.prod.yml up -d --build
Images are published to the Forgejo container registry on every push to main:
- git.midasvo.nl/midas/pwnfoil-backend:latest
- git.midasvo.nl/midas/pwnfoil-frontend:latest
Known limits (explicitly out of scope for v1)
Single source (nswgame.com), single debrid (Real-Debrid), single user, no
notifications, no metadata enrichment from IGDB/MobyGames. See the post-v1
backlog in initial-plan.md for what comes next.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Import by URL — paste a source page, the scraper pulls title, cover,