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.
Retrom
Vorbereitung
Server
Kunde
IGDB
Multi-File-Spiele (empfohlen)
Single-File-Spiele
Bibliotheksstruktur
Metadatenanbieter
Docker (empfohlen)
Desktop-Client
Web-Client
Überblick
Kernfunktionen
Screenshots und Aufzeichnungen
Roadmap
Installation
Hosten Sie Ihren eigenen Cloud-Spielebibliotheksdienst
Durchsuchen Sie Ihr Dateisystem nach Spielen/Plattformen und fügen Sie diese automatisch Ihrer Bibliothek hinzu
Installieren/deinstallieren und spielen Sie Spiele über den Dienst auf einer beliebigen Anzahl von Desktop-Clients.
Unterstützung für Windows, MacOS und Linux!
Greifen Sie mit dem Webclient von überall auf Ihre Bibliothek zu.
Verwalten Sie Emulatorprofile pro Client, die auf dem Server gespeichert werden, um Konfigurationen einfach zwischen Geräten auszutauschen oder nach einer Neuinstallation wiederherzustellen.
Starten Sie alle Ihre Spiele auf einer beliebigen Anzahl von Emulatoren oder Plattformen über Ihre vorkonfigurierten Profile über eine einzige Bibliotheksoberfläche.
Laden Sie Spielmetadaten und Grafiken automatisch von unterstützten Anbietern herunter, um Ihre Bibliothek stilvoll zu präsentieren!
Startbildschirm
Spielansicht
Grundlegende Serverfunktionalität
IGDB-Anbieter
SteamGridDB-Anbieter
Der GamesDB (TGDB)-Anbieter
Durchsuchen Sie das Dateisystem nach Bibliothekselementen
Bibliothekselemente hinzufügen/entfernen
Bearbeiten Sie Bibliothekselemente
Metadaten herunterladen
Speichern Sie Spiele/Zustände/Emulator-NANDs in der Cloud
(Mehr-)Benutzerauthentifizierung
Veröffentlichen Sie Server-Binärdateien als Alternative zu Docker
Grundlegende Client-Funktionalität
umbenennen
löschen
Standard festlegen (zum Starten über Emulatoren)
Dateisystem nach neuen Einträgen durchsuchen
Metadaten für neue Einträge herunterladen/aktualisieren
Bibliothekselemente anzeigen
Bearbeiten Sie Bibliotheksmetadaten und Kunstwerke
Bibliotheksaktualisierungsjobs auslösen
Spieldateien verwalten
Rasteransicht (im Gegensatz zur Standardlistenansicht)
Vollbildmodus + Controller-Unterstützung
Web-(Browser-)Client-Funktionalität (zusätzlich zur Basisfunktionalität)
Spiele herunterladen
Desktop-Client-Funktionalität (zusätzlich zur Basisfunktionalität)
Spiele installieren/deinstallieren
Konfigurieren Sie lokal verfügbare Emulatoren
Konfigurieren Sie mehrere Profile pro Emulator
Legen Sie Standardprofile pro Plattform fest
Spiele starten
Integrierte Emulatorprofile für gängige Emulatoren
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 einheitliche Lösung gibt.
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:
Klempner-Typ
Klempner-Typ 2
Für die Game Guy-Plattform und die Spiele:
Klempner-Dude-Welt
Klempner-Typ und Klempner-Typs Bruder
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
Docker
Docker Compose (optional, aber empfohlen)
Eine PostgreSQL-Datenbank (optional kann das unten bereitgestellte Beispiel verwendet werden)
Eine Spielbibliothek, die so organisiert ist, dass Retrom sie verstehen kann
API-Schlüssel für Metadatenanbieter
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:
Dienste: retrom:image: ghcr.io/jmberesford/retrom-service:latestports: - 5101:5101 - 3000:3000 # um auf die Web-Client-Volumes zuzugreifen: - /home/minecraft_steve/config_dir:/config/ # Verzeichnis mit Ihrer Konfigurationsdatei - /home/minecraft_steve/library1:/library1 # Verzeichnis mit Ihrer ersten Bibliothek - /home/minecraft_steve/library2:/library2 # Verzeichnis mit Ihrer zweiten Bibliothek # OPTIONAL: Erstellen Sie ggf. einen Postgres-Container zur Verwendung als Datenbank # habe noch keins. # # Lesen Sie die Dokumente hier: https://hub.docker.com/_/postgres retrom-db:container_name: retrom-dbhostname: retrom-db # Dies sollte mit der db_url in Ihrer Konfigurationsdatei übereinstimmen.image: postgres:16restart: unlimited-stoppedvolumes: # Um die DB-Daten auf dem Host zu speichern, ändern Sie diesen Pfad in ein beliebiges Verzeichnis - /home/minecraft_steve/retrom_data/:/var/lib/postgresql/dataenvironment: POSTGRES_USER: minecraft_steve # DB-Benutzer, der zum Herstellen einer Verbindung zur Datenbank verwendet wird, sollte mit dem DB-Benutzer in Ihrer Konfigurationsdatei übereinstimmen. POSTGRES_PASSWORD: super_secret_password # DB-Passwort für den oben genannten Benutzer, sollte mit dem DB-Passwort in Ihrer Konfigurationsdatei übereinstimmen. POSTGRES_DB: retrom # DB-Name, sollte mit dem DB-Namen in übereinstimmen Ihre Konfigurationsdatei
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:
Frachtinstallation 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. Sie sollten im Allgemeinen die Nicht-Debug-Builds bevorzugen, es sei denn, Sie wurden von einem Entwickler angewiesen, einen Debug-Build zu Debugzwecken 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.