All apps · 0 apps
Frontend-Killer
Docker app from fansmall's Repository
Overview
Readme
View on GitHub
Frontend-Killer
A web-based game list management tool for emulator frontend metadata. Import, manage, export, and scrape game metadata across multiple frontend formats.
What's New in 1.1-RC1
- ScreenScraper Integration - Full game scraping via ScreenScraper API with auto metadata/media download, CRC32 calculation, quota monitoring
- v3 Template System - New generation import/export templates with expression engine, media discovery, and support for Pegasus, ES-DE, RetroBat, EmuELEC
- Game Edit Page - Dedicated game editing page with full field support and media preview
- SS Standard Field Migration - Unified MediaType enum with 50 media types aligned to ScreenScraper standard
- File Existence Verification - Validate game files exist on filesystem during import, with visual indicators
- Task Recovery - Auto-resume interrupted media download and background tasks on startup
- Multi-language - Full Chinese, English, and Japanese support
English
Features
- Game list management (CRUD) with search and filtering
- Import from multiple frontend templates (Pegasus, RetroBat, ES-DE, EmuELEC, Lakka, Skraper, and more)
- Export to multiple frontend templates with v3 expression engine
- ScreenScraper integration for automated game metadata and media scraping
- Media file management (images, videos, manuals)
- Platform merge and data migration
- Background task management with progress tracking
- Multi-language support (Chinese, English, Japanese)
Tech Stack
- Java 17 + Spring Boot 3.2.x
- H2 Database (embedded)
- MyBatis + Flyway
- HTML5 + JavaScript (no frontend framework)
- Docker support
Deployment
Option 1: Docker (Recommended)
docker pull fansmall/frontendkiller:latest
mkdir -p ./data ./roms
docker run -d \
--name frontend-killer \
-p 8080:8080 \
-v ./data:/data \
-v ./roms:/data/roms \
-e SPRING_PROFILES_ACTIVE=default \
-e SERVER_TOMCAT_BASEDIR=/data \
-e SPRING_RESOURCES_STATIC_LOCATIONS=classpath:/static/,file:/data,file:/data/roms,file:/data/output,file:/data/input \
-e JAVA_OPTS="-Xmx2g -Xms512m -XX:+UseG1GC" \
-e PUID=0 -e PGID=0 -e TZ=Asia/Shanghai \
--restart unless-stopped \
fansmall/frontendkiller:latest
Option 2: Docker Compose
services:
frontend-killer:
image: fansmall/frontendkiller:latest
container_name: frontend-killer
ports:
- "8080:8080"
volumes:
- ./data:/data
- ./roms:/data/roms
environment:
- SPRING_PROFILES_ACTIVE=default
- SERVER_TOMCAT_BASEDIR=/data
- SPRING_RESOURCES_STATIC_LOCATIONS=classpath:/static/,file:/data,file:/data/roms,file:/data/output,file:/data/input
- JAVA_OPTS=-Xmx2g -Xms512m -XX:+UseG1GC
- PUID=0
- PGID=0
- TZ=Asia/Shanghai
restart: unless-stopped
Run: docker compose up -d
Option 3: JAR File
Requires Java 17+.
java -jar webGamelistOper-1.1-RC1.jar
Option 4: Windows EXE (No Java Required)
Download the EXE package from GitHub Releases, extract and run Frontend-Killer.exe.
unRAID / NAS (Community Applications)
Frontend-Killer ships an unRAID template at unraid/frontend-killer.xml. Install it from Community Applications, or manually via Docker → Add Container with image fansmall/frontendkiller:latest, port 8080, volumes <appdata>:/data and <roms>:/data/roms, and set PUID=99 / PGID=100 so files land with correct ownership on unRAID shares.
Access
中文
功能特性
- 游戏列表管理(增删改查),支持搜索和过滤
- 支持多种前端模板导入(Pegasus、RetroBat、ES-DE、EmuELEC、Lakka、Skraper 等)
- 支持多种前端模板导出,v3 表达式引擎支持
- ScreenScraper 集成,自动刮削游戏元数据和媒体文件
- 媒体文件管理(图片、视频、手册)
- 平台合并与数据迁移
- 后台任务管理与进度追踪
- 多语言支持(中文、英文、日文)
技术栈
- Java 17 + Spring Boot 3.2.x
- H2 数据库(嵌入式)
- MyBatis + Flyway
- HTML5 + JavaScript(无前端框架)
- Docker 支持
部署方式
方式一:Docker 部署(推荐)
docker pull fansmall/frontendkiller:latest
mkdir -p ./data ./roms
docker run -d \
--name frontend-killer \
-p 8080:8080 \
-v ./data:/data \
-v ./roms:/data/roms \
-e SPRING_PROFILES_ACTIVE=default \
-e SERVER_TOMCAT_BASEDIR=/data \
-e SPRING_RESOURCES_STATIC_LOCATIONS=classpath:/static/,file:/data,file:/data/roms,file:/data/output,file:/data/input \
-e JAVA_OPTS="-Xmx2g -Xms512m -XX:+UseG1GC" \
-e PUID=0 -e PGID=0 -e TZ=Asia/Shanghai \
--restart unless-stopped \
fansmall/frontendkiller:latest
方式二:Docker Compose 部署
services:
frontend-killer:
image: fansmall/frontendkiller:latest
container_name: frontend-killer
ports:
- "8080:8080"
volumes:
- ./data:/data
- ./roms:/data/roms
environment:
- SPRING_PROFILES_ACTIVE=default
- SERVER_TOMCAT_BASEDIR=/data
- SPRING_RESOURCES_STATIC_LOCATIONS=classpath:/static/,file:/data,file:/data/roms,file:/data/output,file:/data/input
- JAVA_OPTS=-Xmx2g -Xms512m -XX:+UseG1GC
- PUID=0
- PGID=0
- TZ=Asia/Shanghai
restart: unless-stopped
运行:docker compose up -d
方式三:JAR 包运行
需要 Java 17+。
java -jar webGamelistOper-1.1-RC1.jar
方式四:Windows EXE(无需 Java)
从 GitHub Releases 下载 EXE 安装包,解压后运行 Frontend-Killer.exe。
unRAID / NAS(Community Applications)
项目自带 unRAID 模板 unraid/frontend-killer.xml。可通过 Community Applications 安装,或手动:Docker → Add Container,镜像 fansmall/frontendkiller:latest,端口 8080,卷 <appdata>:/data 与 <roms>:/data/roms,并设置 PUID=99 / PGID=100 以保证 unRAID 共享目录的文件归属正确。
访问地址
日本語
機能特徴
- ゲームリスト管理(追加、削除、更新、検索)、フィルタリング対応
- 複数のフロントエンドテンプレートからのインポート(Pegasus、RetroBat、ES-DE、EmuELEC、Lakka、Skraper など)
- 複数のフロントエンドテンプレートへのエクスポート、v3 式エンジン対応
- ScreenScraper 統合、ゲームメタデータとメディアファイルの自動スクレイピング
- メディアファイル管理(画像、動画、マニュアル)
- プラットフォーム統合とデータ移行
- バックグラウンドタスク管理と進捗追跡
- 多言語サポート(中国語、英語、日本語)
技術スタック
- Java 17 + Spring Boot 3.2.x
- H2 データベース(組み込み)
- MyBatis + Flyway
- HTML5 + JavaScript(フロントエンドフレームワークなし)
- Docker サポート
デプロイ方法
オプション1:Docker(推奨)
docker pull fansmall/frontendkiller:latest
mkdir -p ./data ./roms
docker run -d \
--name frontend-killer \
-p 8080:8080 \
-v ./data:/data \
-v ./roms:/data/roms \
-e SPRING_PROFILES_ACTIVE=default \
-e SERVER_TOMCAT_BASEDIR=/data \
-e SPRING_RESOURCES_STATIC_LOCATIONS=classpath:/static/,file:/data,file:/data/roms,file:/data/output,file:/data/input \
-e JAVA_OPTS="-Xmx2g -Xms512m -XX:+UseG1GC" \
-e PUID=0 -e PGID=0 -e TZ=Asia/Shanghai \
--restart unless-stopped \
fansmall/frontendkiller:latest
オプション2:Docker Compose
services:
frontend-killer:
image: fansmall/frontendkiller:latest
container_name: frontend-killer
ports:
- "8080:8080"
volumes:
- ./data:/data
- ./roms:/data/roms
environment:
- SPRING_PROFILES_ACTIVE=default
- SERVER_TOMCAT_BASEDIR=/data
- SPRING_RESOURCES_STATIC_LOCATIONS=classpath:/static/,file:/data,file:/data/roms,file:/data/output,file:/data/input
- JAVA_OPTS=-Xmx2g -Xms512m -XX:+UseG1GC
- PUID=0
- PGID=0
- TZ=Asia/Shanghai
restart: unless-stopped
実行:docker compose up -d
オプション3:JARファイル
Java 17+ が必要です。
java -jar webGamelistOper-1.1-RC1.jar
オプション4:Windows EXE(Java不要)
GitHub Releases から EXE パッケージをダウンロードし、解凍して Frontend-Killer.exe を実行してください。
unRAID / NAS(Community Applications)
unRAID 用テンプレート unraid/frontend-killer.xml を同梱しています。Community Applications から導入するか、手動で Docker → Add Container にイメージ fansmall/frontendkiller:latest、ポート 8080、ボリューム <appdata>:/data と <roms>:/data/roms を設定し、PUID=99 / PGID=100 で unRAID 共有のファイル所有権を合わせてください。
アクセスアドレス
Roadmap
Completed
- Import/export templates: Pegasus, RetroBat, ES-DE, EmuELEC, Lakka, Skraper
- ScreenScraper API integration for game scraping
- v3 template system with expression engine
- Native Windows EXE distribution (jpackage)
- Multi-language support (Chinese, English, Japanese)
- File existence verification
- Background task recovery
Planned
- Multi-file game support (e.g., DOS games) - treat entire game folders as entries
- Folder export configuration with configurable parent directory levels
- Advanced game filtering options
- Statistics dashboard for game collection analytics
- Additional frontend templates: EmuDeck, Recalbox, Batocera
Version: 1.1-RC1
Install Frontend-Killer on Unraid in a few clicks.
Find Frontend-Killer in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.
Requirements
Categories
Download Statistics
Related apps
Explore more like this
Explore allDetails
fansmall/frontendkiller:latestRuntime arguments
- Web UI
http://[IP]:[PORT:8080]- Network
bridge- Shell
bash- Privileged
- false
Template configuration
Web interface port. Container listens on 8080.
- Target
- 8080
- Default
- 8080
- Value
- 8080
Persistent storage: H2 database, import/export rules, scraped media, input, output, backups and logs. Map to an appdata share so data survives container updates.
- Target
- /data
- Default
- /mnt/user/appdata/frontend-killer/
- Value
- /mnt/user/appdata/frontend-killer/
Your ROM library, used as the import source and for CRC/file-existence checks. Point this at the share holding your game files. Optional but recommended.
- Target
- /data/roms
- Default
- /mnt/user/data/roms/
- Value
- /mnt/user/data/roms/
Process User ID. Files written to the mapped paths will be owned by this UID (unRAID nobody = 99). Set to 0 to run as root.
- Default
- 99
- Value
- 99
Process Group ID. Files written to the mapped paths will be owned by this GID (unRAID users = 100).
- Default
- 100
- Value
- 100
Container timezone, e.g. Asia/Shanghai, Europe/London, America/New_York.
- Target
- TZ
- Default
- Asia/Shanghai
- Value
- Asia/Shanghai
JVM options. Increase -Xmx for very large libraries.
- Target
- JAVA_OPTS
- Default
- -Xmx2g -Xms512m -XX:+UseG1GC
- Value
- -Xmx2g -Xms512m -XX:+UseG1GC
Active Spring profile.
- Target
- SPRING_PROFILES_ACTIVE
- Default
- default
- Value
- default
Tomcat working directory, kept on the persistent volume.
- Target
- SERVER_TOMCAT_BASEDIR
- Default
- /data
- Value
- /data
Extra static resource locations so media under /data can be served over HTTP.
- Target
- SPRING_RESOURCES_STATIC_LOCATIONS
- Default
- classpath:/static/,file:/data,file:/data/roms,file:/data/output,file:/data/input
- Value
- classpath:/static/,file:/data,file:/data/roms,file:/data/output,file:/data/input