The save-sync (/api/sync/*) and raw content_hash fixes that forced the beta pin shipped in stable 4.9.x (now 4.9.2). Return to the watchtower- tracked :4 tag per the original design. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
73 lines
2.5 KiB
YAML
73 lines
2.5 KiB
YAML
# roms stack — RomM ROM library manager + its dedicated MariaDB.
|
|
#
|
|
# RomM bundles its own Redis (persisted via /redis-data), so there is no cache
|
|
# container here. The library is the existing EmuDeck tree at /storage1/Emulation,
|
|
# which is already RomM "Structure A" (a roms/ parent with per-platform subfolders).
|
|
# It is mounted READ-WRITE per request, so RomM file operations (rename/move/
|
|
# delete, manual matches) can mutate the tree — default scanning stays read-only.
|
|
#
|
|
# All secrets/config come from env_file (stack.env) using container-exact var
|
|
# names (DB_PASSWD, MARIADB_PASSWORD, ...), so this git stack needs NO Portainer
|
|
# UI env vars for ${VAR} substitution. See memory portainer-env-interpolation.
|
|
#
|
|
# Tiered binds: DB + RomM config + bundled-redis -> /config/romm (SSD);
|
|
# RomM labdata (ZFS): assets = saves/states; resources = fetched cover art (IGDB etc.).
|
|
# The labdata/romm/* targets are auto-created by Docker as root on first start.
|
|
#
|
|
# Only romm joins `edge` (Caddy proxies romm:8080); romm-db stays on `roms` only.
|
|
#
|
|
# To share RomM with an EXTERNAL tailnet user (a friend on his own tailnet), see
|
|
# the dedicated `share` stack (stacks/share/), which runs a Tailscale `serve`
|
|
# node joined to this `roms` network.
|
|
|
|
services:
|
|
romm:
|
|
# Floating v4 tag (watchtower-tracked). The save-sync (/api/sync/*) + raw
|
|
# content_hash fixes that once forced a 4.9.0-beta.2 pin are now in stable 4.9.x.
|
|
image: rommapp/romm:4
|
|
container_name: romm
|
|
restart: unless-stopped
|
|
networks: [roms, edge]
|
|
depends_on:
|
|
romm-db:
|
|
condition: service_healthy
|
|
env_file:
|
|
- stack.env
|
|
environment:
|
|
- DB_HOST=romm-db
|
|
- DB_NAME=romm
|
|
volumes:
|
|
- /storage1/Emulation:/romm/library
|
|
- /storage1/labdata/romm/resources:/romm/resources
|
|
- /storage1/labdata/romm/assets:/romm/assets
|
|
- /config/romm/config:/romm/config
|
|
- /config/romm/redis:/redis-data
|
|
ports:
|
|
- "8997:8080"
|
|
|
|
romm-db:
|
|
image: mariadb:12.3
|
|
container_name: romm-db
|
|
restart: unless-stopped
|
|
labels:
|
|
- "com.centurylabs.watchtower.enable=false"
|
|
networks: [roms]
|
|
env_file:
|
|
- stack.env
|
|
command: ["--max-allowed-packet=64M"]
|
|
healthcheck:
|
|
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
volumes:
|
|
- /config/romm/mariadb:/var/lib/mysql
|
|
|
|
networks:
|
|
roms:
|
|
name: roms
|
|
driver: bridge
|
|
edge:
|
|
name: edge
|
|
external: true
|