专注于仿真的集中式游戏库/集合管理服务。配置一次,随处玩。
警告
正在大力开发:预计经常会有重大变化,请小心更新您的安装。
Retrom 是一种集中式游戏库管理服务,允许您在单个设备上托管游戏,并连接任意数量的其他设备上的客户端以(卸载)安装/下载并随后在本地启动所述游戏。
主屏幕
游戏视图
提示
安装后,请务必查看快速入门指南以快速启动和运行。
警告
Retrom 的设计没有考虑任何特定的安全措施。强烈建议您仅在本地网络上运行 Retrom,除非您知道自己在做什么。如果您希望将 Retrom 暴露到互联网,您应该在反向代理后面执行此操作,并采取适当的安全措施。这并不是一项计划在 Retrom 本身中实现的功能,因为在托管某些内容时需要考虑许多变量,并且没有一刀切的解决方案。
Retrom 目前支持以下结构的库:
每个游戏都应该由包含游戏文件的目录表示(即使对于单文件游戏/平台)。每个游戏都应该类似地包含在代表其所玩平台的目录中,并且平台目录应该位于library
目录的根目录中。
例子:
假设您有以下游戏:
对于 Game Guy 平台和游戏:
适用于 Game Guy Advance 平台。你的库应该是这样的:
library/
game_guy/
plumber_dude/
plumber_dude.gg
plumber_dude_2/
plumber_dude_2_part_1.gg
plumber_dude_2_part_2.gg
game_guy_advance/
plumber_dude_world/
plumber_dude_world.gga
plumber_dude_and_plumber_dudes_brother/
plumber_dude_and_plumber_dudes_brother.gga
您可能拥有一个库,其中每个游戏只是各自平台目录中的单个文件,而不是每个游戏都由一个目录表示。
例子:
假设游戏和平台与多文件游戏中的示例相同。你的库应该是这样的:
library/
game_guy/
plumber_dude.gg
plumber_dude_2.gg
game_guy_advance/
plumber_dude_world.gga
plumber_dude_and_plumber_dudes_brother.gga
Retrom 使用元数据提供程序下载游戏的元数据。目前,唯一受支持的提供商是 IGDB。计划支持更多提供商。
要使用 IGDB 元数据提供程序,您需要在 IGDB 网站上创建一个帐户,并创建一个新应用程序来获取您的客户端 ID 和密钥。您可以按照此处的说明执行此操作。
笔记
要求
服务器通过配置文件进行配置。这是一个示例配置文件:
提示
您可以将db_url
替换为您自己的数据库 URL
警告
content_directories
中的path
应该是容器内的路径。如果您使用 Docker,则应将库目录安装到这些路径。有关详细信息,请参阅 Docker 部分。
{
"connection" : {
"port" : 5101 ,
"db_url" : " postgres://minecraft_steve:super_secret_password@retrom-db/retrom "
},
"content_directories" : [
{
"path" : " path/to/my/library/ " ,
"storage_type" : " MultiFileGame "
},
{
"path" : " path/to/my/library/with/single_file_games/ " ,
"storage_type" : " SingleFileGame "
}
],
"igdb" : {
"client_secret" : " super_secret_client_secret!!!1 " ,
"client_id" : " my_IGDB_ID_1234 "
}
}
目前推荐的运行服务器的方式是通过 Docker,最好使用docker compose
。
提示
如果您不熟悉 Docker Compose,可以阅读此处的文档。
让我们为我们的 docker 容器调整上面的示例config.json
,并将其保存在安全的地方。在此示例中,我们假设它保存到/home/minecraft_steve/config_dir/config.json
。请注意,我们需要一个配置目录来挂载到容器中,而不仅仅是文件本身。
我们还假设我们在/home/minecraft_steve/library1/
和/home/minecraft_steve/library2/
都有库。
这是示例配置文件:
{
"connection" : {
"port" : 5101 ,
"db_url" : " postgres://minecraft_steve:super_secret_password@retrom-db/retrom "
},
"content_directories" : [
{
"path" : " /library1 " ,
"storage_type" : " MultiFileGame "
},
{
"path" : " /library2 " ,
"storage_type" : " SingleFileGame "
}
],
"igdb" : {
"client_secret" : " super_secret_client_secret!!!1 " ,
"client_id" : " my_IGDB_ID_1234 "
}
}
然后,这个示例docker-compose.yml
文件将帮助您开始:
services :
retrom :
image : ghcr.io/jmberesford/retrom-service:latest
ports :
- 5101:5101
- 3000:3000 # to access the web client
volumes :
- /home/minecraft_steve/config_dir:/config/ # directory containing your config file
- /home/minecraft_steve/library1:/library1 # directory containing your first library
- /home/minecraft_steve/library2:/library2 # directory containing your second library
# OPTIONAL: spin up a postgres container to use as the database, if you
# don't have one already.
#
# read the docs here: https://hub.docker.com/_/postgres
retrom-db :
container_name : retrom-db
hostname : retrom-db # this should match the db_url in your config file
image : postgres:16
restart : unless-stopped
volumes :
# to store the DB data on the host, change this path to any directory you like
- /home/minecraft_steve/retrom_data/:/var/lib/postgresql/data
environment :
POSTGRES_USER : minecraft_steve # db user, used to connect to the db, should match the db_user in your config file
POSTGRES_PASSWORD : super_secret_password # db password for above user, should match the db_password in your config file
POSTGRES_DB : retrom # db name, should match the db_name in your config file
然后,您可以在包含docker-compose.yml
文件的目录中运行docker-compose up
来启动该服务。
Web 客户端可通过端口 3000 访问,服务本身可通过端口 5101 访问——任何桌面客户端都可以访问该服务。
Retrom 服务也可通过 Cargo 提供。通过 Cargo 安装将在您的系统上构建二进制文件,因此您需要安装 Rust 工具链。
建议使用rustup安装Rust工具链。您还需要确保系统上安装了一些依赖项:
libssl-dev
(或您系统的同等版本)libpq-dev
(或您系统的同等版本) 警告
您在本指南中找不到对这些依赖项的支持,因为它们是特定于系统的。请参阅系统的包管理器或互联网以获取安装这些依赖项的帮助。如果您不知道如何安装这些依赖项,则应该使用 Docker 方法。
如果满足先决条件,您可以使用以下命令通过 Cargo 安装 Retrom:
cargo install retrom-service
然后您可以使用以下命令运行该服务:
RETROM_CONFIG=/path/to/your/config.json retrom-service
只需前往发布页面并下载适合您平台的最新版本。该客户端适用于 Windows、MacOS(Intel 和 M 系列芯片)和 Linux。
有时,版本中可能存在调试版本。通常,您应该更喜欢非调试版本,除非开发人员指示您使用调试版本来进行调试。任何给定版本总会有一个非调试版本,只需查找不带-debug
后缀的同名文件即可。
以下内容可以帮助您区分不同版本:
*-setup.exe
文件适用于 Windows(优先选择此版本而不是 .msi 版本,除非您有充分的理由不这样做)*.msi
文件适用于 Windows(首选 .exe 版本)*-x64.dmg
文件适用于 Intel 芯片上的 MacOS*-aarch64.dmg
文件适用于 M 系列芯片上的 MacOS*-x64.AppImage
文件适用于 Linux*-x64.deb
文件适用于 Linux(基于 Debian 的发行版)*-x64.rpm
文件适用于 Linux(基于 Red Hat 的发行版) 警告
Web 客户端映像已被弃用。请改用与服务映像捆绑在一起的 Web 客户端。