Déployez RomM sur Pethost en un clic
Une bibliothèque et un lecteur dans le navigateur pour vos jeux rétro
Ce qui se passe
- Vous vous connectez à Pethost ou créez un compte, avec une clé d’accès, GitHub ou Google.
- Pas encore de machine ? Vous choisissez une offre, et nous en préparons une pour vous. Le lien attend dans votre navigateur qu’elle soit prête.
- Nouveau projet s’ouvre sur l’application, et vous cliquez sur Créer le projet.
- En une minute ou deux, l’application tourne à sa propre adresse en HTTPS. Ses secrets sont créés pour elle au hasard, et ses données sont dans la sauvegarde nocturne.
- C’est un projet comme les autres : son compose.yaml, son .env, ses logs et un terminal sont dans le panel, et votre agent peut le modifier, revenir à une version précédente ou le restaurer.
Premiers pas
Ouvrez l’adresse et suivez l’assistant de configuration : choisissez vos plateformes, puis créez le compte administrateur. Faites-le tout de suite : d’ici là, la page est ouverte à quiconque connaît l’adresse. Les jeux vont dans /romm/library/roms/<platform>, dans le service romm, par exemple roms/snes : copiez-les en SFTP ou envoyez-les dans RomM, puis lancez un scan. Les clés des fournisseurs de métadonnées, par exemple IGDB_CLIENT_ID et IGDB_CLIENT_SECRET, vont dans le .env du projet ; redéployez ensuite.
Ce qui tourne
Le template, c’est ce compose.yaml et les variables qu’il écrit dans le .env du projet. Pethost exécute le fichier tel qu’il est écrit.
services:
romm:
image: rommapp/romm:5
restart: unless-stopped
depends_on:
db:
condition: service_healthy
# Metadata services' keys (IGDB_CLIENT_ID, SCREENSCRAPER_USER, ...) go into .env.
env_file: .env
environment:
ROMM_BASE_URL: ${URL}
ROMM_AUTH_SECRET_KEY: ${ROMM_AUTH_SECRET_KEY}
# TLS ends at the machine's proxy, which says so in X-Forwarded-Proto.
ROMM_SESSION_SECURE_COOKIE: "true"
DB_HOST: db
DB_NAME: romm
DB_USER: romm
DB_PASSWD: ${DB_PASSWORD}
# Matches games by their files' hashes, with no key, as RomM's own compose file does.
HASHEOUS_API_ENABLED: "true"
# Four API workers by default; two are plenty for a household and leave memory to the
# machine's other projects.
WEB_SERVER_CONCURRENCY: "2"
# The image declares /romm a volume: the library, assets, resources and config are in it.
volumes:
- romm:/romm
- redis-data:/redis-data
# The page answers once the first start's migrations are done.
healthcheck:
test: ["CMD", "wget", "-q", "-O", "/dev/null", "http://127.0.0.1:8080/api/heartbeat"]
interval: 10s
timeout: 5s
retries: 5
start_period: 180s
db:
image: mariadb:11.8
restart: unless-stopped
environment:
MARIADB_DATABASE: romm
MARIADB_USER: romm
MARIADB_PASSWORD: ${DB_PASSWORD}
MARIADB_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
volumes:
- db:/var/lib/mysql
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
interval: 5s
timeout: 5s
retries: 12
start_period: 60s
volumes:
romm:
redis-data:
db: