# 134 — `romm` Self-hosted ROM manager ([RomM](https://romm.app)). Browse, search, and play your retro game library from the browser. Runs on Docker Compose with a MariaDB sidecar. ## At a glance - **Hostname:** `romm` - **IP:** `192.168.8.249/28` (static, vmbr1 on strong) - **Privilege:** privileged - **Resources:** 1 core / 2 GiB RAM / 16 GiB rootfs (Debian 13, ludo-lvm) - **Mounts:** `/mnt/media_local` → `/mnt/library` - **Public hostname:** `roms.hubris.network` ## Service / port map | Service | Listen | Notes | |---------|--------|-------| | RomM | `192.168.8.249:80` | HTTP (Caddy terminates TLS) | | MariaDB | internal only | Sidecar in the same compose stack | ## Compose Located at `/opt/romm/docker-compose.yml`. Key points: - Image: `rommapp/romm:latest` - DB sidecar: `mariadb:latest` with healthcheck - ROM library: `/mnt/library/roms` → `/romm/library` (writable) - Resources (covers, etc.): Docker named volume `romm_resources` → `/romm/resources` - Saves/states: `/opt/romm/assets` → `/romm/assets` - Config: `/opt/romm/config` → `/romm/config` - Auth key: auto-generated, stored in `/opt/romm/.env` Environment (`/opt/romm/.env`): - `DB_ROOT_PASSWD` / `DB_PASSWD` — MariaDB credentials - `DB_USER=romm-user` / `DB_NAME=romm` - `ROMM_AUTH_SECRET_KEY` — auto-generated ## ROM library structure RomM expects `/mnt/library/roms///`. Create platform directories as needed: ``` /mnt/media_local/roms/ ├── gba/ │ └── Pokemon - Emerald/ │ └── Pokemon Emerald.gba ├── snes/ │ └── Super Mario World/ │ └── Super Mario World.sfc └── psx/ └── Final Fantasy VII/ └── Final Fantasy VII.bin ``` ## Media permissions The `/mnt/media_local/roms` directory is owned `root:media` with mode `2775` (setgid). New files inherit the `media` GID (10000). The LXC is privileged so no idmap block is needed — in-container UID/GID matches the host. Docker containers within the LXC run as-is (read-only mount). ## Related - [Strong host](../hosts/strong.md) - [Caddy (121)](121-caddy.md) — `roms.hubris.network → 192.168.8.249:80` - [DNS (107)](107-dns.md) — `roms.hubris.network A 192.168.8.175` - [Media permissions](../infrastructure/media-permissions.md) - [RomM docs](https://docs.romm.app) ## Changelog ### 2026-07-05 — provisioned LXC 134 created on strong (Debian 13, privileged, `192.168.8.249/28`). Docker + Compose installed. RomM stack deployed at `/opt/romm/`. Created `/mnt/media_local/roms` with setgid `media:GID=10000` mode `2775`. Caddy `roms.hubris.network` → `192.168.8.249:80`. DNS `roms A 192.168.8.175` added to Technitium. Hubris /32 route for `.249` added to `50-strong-route`.