ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

RomM从零到能玩:自托管ROM库完整指南

2026/9/13 19:45:22 拓冰建站 浏览量
RomM从零到能玩:自托管ROM库完整指南 RomM从零到能玩自托管ROM库完整指南【免费下载链接】rommA beautiful, powerful, self-hosted ROM manager and player.项目地址: https://gitcode.com/GitHub_Trending/rom/romm硬盘里塞满了ROM文件名却五花八门——有的叫game1.bin有的叫disc2.iso想找哪款得翻十分钟。RomM是个自托管的ROM库管理加浏览器模拟器的项目把游戏文件丢进去它自动认平台、补封面、填简介看完还能直接在浏览器里开玩。浏览器开玩——内置EmulatorJS网页里直接跑游戏不用装任何模拟器自动扫描识别——按文件名、文件夹和文件内容自己认出是哪款游戏元数据自动填充——封面、简介、截图从10多个数据源自动拉取存档同步——save和状态文件存在服务端多台设备进度共享两个容器就能把RomM跑起来不用clone仓库也不用自己构建镜像官方镜像加一个MariaDB数据库就够。docker-compose.yml里真正关键的就这么几行services: romm: image: rommapp/romm:latest environment: - DB_HOSTromm-db - DB_NAMEromm - DB_USERromm-user - DB_PASSWDchange-me - ROMM_AUTH_SECRET_KEYxxx # openssl rand -hex 32 的产出 ports: - 80:8080 volumes: - ./library:/romm/library romm-db: image: mariadb:latest # 完整 compose 见 [examples/docker-compose.example.yml](https://link.gitcode.com/i/f5482c7f58976ff733261c4ced09cb69)mariadb那侧还有几行MARIADB_DATABASE、MARIADB_USER、MARIADB_PASSWORD跟romm侧的DB_*保持同名同值就行。跑docker compose up -d数据库初始化完打开浏览器就能访问。首次启动有个设置向导建管理员账号、确认库路径其余保持默认即可。如果80端口被占了把映射改成8080:8080用新端口打开即可。把ROM丢进去让它自己认出来游戏文件不用改名按平台分好文件夹就行library/ └─ roms/ ├─ snes/ │ ├─ Super Mario World (USA).sfc │ └─ Final Fantasy VI (World)/ │ ├─ disc1.sfc │ └─ disc2.sfc └─ gbc/ └─ Zelda - Oracle of Seasons (USA).gbc默认规则是roms/{platform}/{game}平台文件夹下每个文件算一个游戏是个文件夹的话里面的文件合并成一款多盘游戏。平台文件夹名要写准snes、gbc、psx400多个受支持平台的完整名单在backend/utils/platforms.py。文件名里带(USA)、(Rev 1)这类标签不用删扫描时会自己解析出地区和版本。BIOS芯片固件模拟器跑游戏时要用的那几段代码放bios/下对应的平台文件夹比如PS BIOS放bios/psx/。结构就绪后在页面点扫描进度和日志都在任务页实时可见库大可以调大SCAN_WORKERS加并发。✅ 扫完打开库游戏都有了正确的名字多盘游戏也归到了一起。让封面和简介自动填上扫描只负责认出名字封面和简介靠元数据源。env里填上钥匙IGDB_CLIENT_ID IGDB_CLIENT_SECRET MOBYGAMES_API_KEYIGDB是主力免费注册开发者账号拿ID和SecretMobyGames做补充想要定制风格封面还能再接SteamGridDB。所有钥匙的完整清单在env.template。填好后全量重扫一遍打开画廊每款游戏都会挂上封面、简介、截图地区、发行年份等细节一并填好。浏览器里直接开玩不用装模拟器这部分默认就是开着的。打开游戏详情页点Play浏览器里直接起模拟器SNES、GBA、PS1这些主流平台都能即点即玩存档、读档都支持存档存在服务端下次换台设备打开还是那个进度。前面BIOS放对了的话体验基本和真机一致。新游戏放进去了不用手动点扫描开启文件监控ENABLE_RESCAN_ON_FILESYSTEM_CHANGEtrue RESCAN_ON_FILESYSTEM_CHANGE_DELAY5文件往库里一扔5分钟后自动补扫你甚至不用打开网页。想更省心再加一条定时全量扫描ENABLE_SCHEDULED_RESCANtrue配合SCHEDULED_RESCAN_CRON0 3 * * *每天凌晨3点跑一遍。这两项都在env.template里默认关闭。如果你还想走得更远⚡ 几个可以往后加的东西电视模式——KIOSK_MODEtrue后访客免登录只读浏览把库挂到客厅电视上翻着玩模拟器串流——浏览器跑不动的大平台可以另起streaming容器把模拟器画面串流过来见docker-compose.streaming.yml自定义库结构——现有文件夹组织比较乱的话在examples/config.example.yml里定义匹配规则让它适配你的目录官方客户端——Windows上用Playnite插件、掌机上用Argosy都是扫码配对同步库见README避坑速查页面打不开容器反复重启→ 多半是DB配置没对上 → 核对DB_HOSTromm-dbDB_NAME/DB_USER/DB_PASSWD与mariadb侧一致ROMM_AUTH_SECRET_KEY已生成。扫完全是空白封面和默认名→ 一个元数据源都没接 → 至少填IGDB这对钥匙再全量重扫一次。游戏能显示但点Play没反应→ 缺BIOS → 把对应固件放进bios/下的平台子文件夹有的平台没有它就跑不起来。多盘游戏被拆成好几个条目→ 各张光盘是散落的独立文件 → 把disc1、disc2放进同一个游戏文件夹整个文件夹才是一款游戏。80端口冲突→ 机器上已有web服务 → 映射改成8080:8080即可。库已经就绪剩下的就是挑个周末慢慢翻老游戏了。docs/BACKEND_ARCHITECTURE.md——想摸清扫描和元数据这条管线是怎么跑的backend/handler/metadata/——每个元数据源是怎么拉取的backend/tasks/scheduled/——内置的定时任务孤儿资源清理、图片压缩都在里面【免费下载链接】rommA beautiful, powerful, self-hosted ROM manager and player.项目地址: https://gitcode.com/GitHub_Trending/rom/romm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考