Frontend-Killer

Frontend-Killer

Docker app from fansmall's Repository

Overview

Frontend-Killer is a web-based game list manager for emulator frontends. Import, manage, export and scrape game metadata and media across Pegasus, ES-DE, RetroBat, EmuELEC, Lakka and more, with full ScreenScraper integration (auto metadata/media download, CRC32 matching, quota monitoring).

Frontend-Killer

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

http://localhost:8080


中文

功能特性

  • 游戏列表管理(增删改查),支持搜索和过滤
  • 支持多种前端模板导入(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 共享目录的文件归属正确。

访问地址

http://localhost:8080


日本語

機能特徴

  • ゲームリスト管理(追加、削除、更新、検索)、フィルタリング対応
  • 複数のフロントエンドテンプレートからのインポート(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 共有のファイル所有権を合わせてください。

アクセスアドレス

http://localhost:8080


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.

Open the Apps tab on your Unraid server Search Community Apps for Frontend-Killer Review the template variables and paths Click Install

Requirements

A ScreenScraper account (free) for scraping, and the path to your ROM library mapped in for import and CRC/file-existence checks.

Download Statistics

192
Total Downloads

Related apps

Explore more like this

Explore all

Details

Repository
fansmall/frontendkiller:latest
Last Updated2026-09-15
First Seen2026-09-17

Runtime arguments

Web UI
http://[IP]:[PORT:8080]
Network
bridge
Shell
bash
Privileged
false

Template configuration

Web UI PortPorttcp

Web interface port. Container listens on 8080.

Target
8080
Default
8080
Value
8080
App Data (db / rules / media / logs)Pathrw

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/
ROM LibraryPathrw

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/
PUIDVariable

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
PGIDVariable

Process Group ID. Files written to the mapped paths will be owned by this GID (unRAID users = 100).

Default
100
Value
100
TimezoneVariable

Container timezone, e.g. Asia/Shanghai, Europe/London, America/New_York.

Target
TZ
Default
Asia/Shanghai
Value
Asia/Shanghai
JVM OptionsVariable

JVM options. Increase -Xmx for very large libraries.

Target
JAVA_OPTS
Default
-Xmx2g -Xms512m -XX:+UseG1GC
Value
-Xmx2g -Xms512m -XX:+UseG1GC
Spring ProfileVariable

Active Spring profile.

Target
SPRING_PROFILES_ACTIVE
Default
default
Value
default
Tomcat Base DirVariable

Tomcat working directory, kept on the persistent volume.

Target
SERVER_TOMCAT_BASEDIR
Default
/data
Value
/data
Static Resource LocationsVariable

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