Ein zentralisierter Spielbibliotheks-/Sammlungsverwaltungsdienst mit Schwerpunkt auf Emulation. Einmal konfigurieren, überall spielen.
Warnung
UNTER STARKER ENTWICKLUNG: Rechnen Sie häufig mit wichtigen Änderungen. Aktualisieren Sie Ihre Installation daher sorgfältig.
Retrom ist ein zentralisierter Spielbibliotheksverwaltungsdienst, der es Ihnen ermöglicht, Ihre Spiele auf einem einzigen Gerät zu hosten und Clients auf einer beliebigen Anzahl anderer Geräte zu verbinden, um diese Spiele zu (de-)installieren/herunterzuladen und anschließend lokal zu starten.
Startbildschirm
Spielansicht
Tipp
Schauen Sie sich nach der Installation unbedingt die Schnellstartanleitung an, damit Sie schnell loslegen können.
Vorsicht
Retrom wurde ohne besondere Sicherheitsmaßnahmen entwickelt. Es wird dringend empfohlen , Retrom nur in einem lokalen Netzwerk auszuführen, es sei denn, Sie wissen, was Sie tun. Wenn Sie Retrom dem Internet zugänglich machen möchten, sollten Sie dies hinter einem Reverse-Proxy mit geeigneten Sicherheitsmaßnahmen tun. Es ist nicht geplant, diese Funktion in Retrom selbst zu implementieren, da beim Hosten viele Variablen zu berücksichtigen sind und es keine Einheitslösung gibt, die für alle passt.
Retrom unterstützt derzeit Bibliotheken mit den folgenden Strukturen:
Jedes Spiel sollte durch ein Verzeichnis repräsentiert werden, das die Spieldateien enthält (auch für Spiele/Plattformen mit nur einer Datei). Jedes Spiel sollte ebenfalls in einem Verzeichnis enthalten sein, das die Plattform darstellt, auf der es gespielt wird, und die Plattformverzeichnisse sollten sich im Stammverzeichnis Ihres library
befinden.
Beispiel:
Angenommen, Sie haben die Spiele:
Für die Game Guy-Plattform und die Spiele:
Für die Game Guy Advance-Plattform. Ihre Bibliothek sollte so aussehen:
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
Anstatt dass jedes Spiel durch ein Verzeichnis repräsentiert wird, verfügen Sie möglicherweise über eine Bibliothek, in der jedes Spiel einfach eine einzelne Datei im jeweiligen Plattformverzeichnis ist.
Beispiel:
Gehen Sie von denselben Spielen und Plattformen wie im Beispiel in Multi-File Games aus. Ihre Bibliothek sollte so aussehen:
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 nutzt Metadatenanbieter, um Metadaten für Ihre Spiele herunterzuladen. Derzeit ist IGDB der einzige unterstützte Anbieter. Die Unterstützung weiterer Anbieter ist geplant.
Um den IGDB-Metadatenanbieter nutzen zu können, müssen Sie ein Konto auf der IGDB-Website erstellen und eine neue Anwendung erstellen, um Ihre Kunden-ID und Ihr Geheimnis zu erhalten. Sie können dies tun, indem Sie den Anweisungen hier folgen.
Notiz
Anforderungen
Der Server wird über eine Konfigurationsdatei konfiguriert. Hier ist eine Beispielkonfigurationsdatei:
Tipp
Sie können db_url
durch Ihre eigene Datenbank-URL ersetzen
Vorsicht
Der path
in content_directories
sollte der Pfad innerhalb des Containers sein. Wenn Sie Docker verwenden, sollten Sie Ihre Bibliotheksverzeichnisse in diesen Pfaden bereitstellen. Weitere Informationen finden Sie im Abschnitt 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 "
}
}
Die derzeit empfohlene Art, den Server zu betreiben, ist über Docker, idealerweise mit docker compose
.
Tipp
Wenn Sie mit Docker Compose nicht vertraut sind, können Sie die Dokumentation hier lesen.
Passen wir die obige Beispiel config.json
für unseren Docker-Container an und speichern Sie sie an einem sicheren Ort. In diesem Beispiel gehen wir davon aus, dass es unter /home/minecraft_steve/config_dir/config.json
gespeichert ist. Beachten Sie, dass wir zum Mounten in den Container ein Konfigurationsverzeichnis benötigen, nicht nur die Datei selbst.
Nehmen wir außerdem an, dass wir Bibliotheken unter /home/minecraft_steve/library1/
und unter /home/minecraft_steve/library2/
haben.
Hier ist die Beispielkonfigurationsdatei:
{
"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 "
}
}
Dann wird Ihnen diese Beispieldatei docker-compose.yml
den Einstieg erleichtern:
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
Anschließend können Sie docker-compose up
in dem Verzeichnis ausführen, das Ihre Datei docker-compose.yml
enthält, um den Dienst zu starten.
Der Web-Client ist über Port 3000 erreichbar und der Dienst selbst über Port 5101 – auf den jeder Desktop-Client zugreifen kann.
Der Retrom Service ist auch über Cargo verfügbar. Durch die Installation über Cargo wird die Binärdatei auf Ihrem System erstellt, daher muss die Rust-Toolchain installiert sein.
Es wird empfohlen, rustup zur Installation der Rust-Toolchain zu verwenden. Sie müssen außerdem sicherstellen, dass einige Abhängigkeiten auf Ihrem System installiert sind:
libssl-dev
(oder gleichwertig für Ihr System)libpq-dev
(oder gleichwertig für Ihr System) Vorsicht
Diese Abhängigkeiten werden in diesem Handbuch nicht unterstützt, da sie systemspezifisch sind. Bitte wenden Sie sich an den Paketmanager Ihres Systems oder im Internet, um Hilfe bei der Installation dieser Abhängigkeiten zu erhalten. Wenn Sie nicht wissen, wie Sie diese Abhängigkeiten installieren, sollten Sie stattdessen die Docker-Methode verwenden.
Wenn die Voraussetzungen erfüllt sind, können Sie Retrom über Cargo mit dem folgenden Befehl installieren:
cargo install retrom-service
Anschließend können Sie den Dienst mit dem folgenden Befehl ausführen:
RETROM_CONFIG=/path/to/your/config.json retrom-service
Gehen Sie einfach zur Release-Seite und laden Sie die neueste Version für Ihre Plattform herunter. Der Client ist für Windows, MacOS (sowohl Intel- als auch M-Serie-Chips) und Linux verfügbar.
Gelegentlich sind in einer Version Debug-Builds vorhanden. Im Allgemeinen sollten Sie die Nicht-Debug-Builds bevorzugen, es sei denn, Sie wurden von einem Entwickler angewiesen, zu Debugzwecken einen Debug-Build zu verwenden. Es wird immer eine Nicht-Debug-Version einer bestimmten Version geben. Suchen Sie einfach nach einer gleichnamigen Datei ohne das Suffix -debug
.
Folgendes kann Ihnen bei der Unterscheidung zwischen den verschiedenen Versionen helfen:
*-setup.exe
Dateien sind für Windows (bevorzugen Sie diese gegenüber der .msi-Version, es sei denn, Sie haben gute Gründe, dies nicht zu tun)*.msi
Dateien sind für Windows (bevorzugen Sie die .exe-Version)*-x64.dmg
-Dateien sind für MacOS auf Intel-Chips*-aarch64.dmg
-Dateien sind für MacOS auf Chips der M-Serie*-x64.AppImage
-Dateien sind für Linux*-x64.deb
Dateien sind für Linux (Debian-basierte Distributionen)*-x64.rpm
Dateien sind für Linux (Red Hat-basierte Distributionen) Warnung
Das Web-Client-Image ist veraltet. Verwenden Sie stattdessen den Web-Client, der mit dem Service-Image gebündelt ist.