Skip to content

Commit ebaa04a

Browse files
committed
feat(romm): ✨ add a homelab-ready RomM stack
- adapt the stack for nginx-proxy-manager instead of binding host port 80 - keep runtime secrets in the ignored local .env and use an internal MariaDB network
1 parent 0433327 commit ebaa04a

1 file changed

Lines changed: 68 additions & 0 deletions

File tree

romm/compose.yaml

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
name: romm
2+
3+
volumes:
4+
mysql_data:
5+
romm_resources:
6+
romm_redis_data:
7+
8+
services:
9+
romm:
10+
image: rommapp/romm:latest
11+
container_name: romm
12+
restart: unless-stopped
13+
environment:
14+
DB_HOST: romm-db
15+
DB_NAME: ${ROMM_DB_NAME}
16+
DB_USER: ${ROMM_DB_USER}
17+
DB_PASSWD: ${ROMM_DB_PASSWORD}
18+
ROMM_AUTH_SECRET_KEY: ${ROMM_AUTH_SECRET_KEY}
19+
SCREENSCRAPER_USER: ${SCREENSCRAPER_USER}
20+
SCREENSCRAPER_PASSWORD: ${SCREENSCRAPER_PASSWORD}
21+
RETROACHIEVEMENTS_API_KEY: ${RETROACHIEVEMENTS_API_KEY}
22+
STEAMGRIDDB_API_KEY: ${STEAMGRIDDB_API_KEY}
23+
HASHEOUS_API_ENABLED: ${HASHEOUS_API_ENABLED:-true}
24+
volumes:
25+
- romm_resources:/romm/resources # Resources fetched from IGDB (covers, screenshots, etc.)
26+
- romm_redis_data:/redis-data # Cached data for background tasks
27+
- ${DOCKER_MEDIA_BASEFOLDER:-/opt/docker/media}/roms:/romm/library # Your game library. Check https://docs.romm.app/latest/Getting-Started/Folder-Structure/ for more details.
28+
- ${DOCKER_DATA_BASEFOLDER:-/opt/docker/data}/romm/assets:/romm/assets # Uploaded saves, states, etc.
29+
- ${DOCKER_DATA_BASEFOLDER:-/opt/docker/data}/romm/config:/romm/config # (Optional) Path where config.yml is stored
30+
expose:
31+
- 8080 # Web UI (internal, for reverse proxy or internal access)
32+
depends_on:
33+
romm-db:
34+
condition: service_healthy
35+
restart: true
36+
networks:
37+
- romm_network
38+
- npm_network
39+
40+
romm-db:
41+
image: mariadb:latest
42+
container_name: romm-db
43+
restart: unless-stopped
44+
environment:
45+
MARIADB_ROOT_PASSWORD: ${ROMM_DB_ROOT_PASSWORD}
46+
MARIADB_DATABASE: ${ROMM_DB_NAME}
47+
MARIADB_USER: ${ROMM_DB_USER}
48+
MARIADB_PASSWORD: ${ROMM_DB_PASSWORD}
49+
volumes:
50+
- mysql_data:/var/lib/mysql
51+
healthcheck:
52+
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
53+
start_period: 30s
54+
start_interval: 10s
55+
interval: 10s
56+
timeout: 5s
57+
retries: 5
58+
networks:
59+
- romm_network
60+
61+
networks:
62+
romm_network:
63+
name: romm_network
64+
driver: bridge
65+
npm_network:
66+
name: npm_network
67+
driver: bridge
68+
external: true

0 commit comments

Comments
 (0)