From ad9b2904c5fd8473de3fda9c3b6a1dff54b64c8c Mon Sep 17 00:00:00 2001 From: rouge13 Date: Tue, 5 May 2026 17:18:27 +0200 Subject: [PATCH] added romm app --- apps/romm/config.json | 25 +++++++++++ apps/romm/docker-compose.json | 70 ++++++++++++++++++++++++++++++ apps/romm/metadata/description.md | 1 + apps/romm/metadata/logo.jpg | Bin 0 -> 27683 bytes 4 files changed, 96 insertions(+) create mode 100644 apps/romm/config.json create mode 100644 apps/romm/docker-compose.json create mode 100644 apps/romm/metadata/description.md create mode 100644 apps/romm/metadata/logo.jpg diff --git a/apps/romm/config.json b/apps/romm/config.json new file mode 100644 index 0000000..25e7865 --- /dev/null +++ b/apps/romm/config.json @@ -0,0 +1,25 @@ +{ + "name": "RomM", + "id": "romm", + "available": true, + "short_desc": "RomM", + "author": "RomM Team", + "port": 1083, + "categories": [ + "utilities" + ], + "description": "ROM manager for organizing, enriching, and playing retro games, with support for 400+ platforms.", + "tipi_version": 1, + "version": "4.8.1", + "source": "https://hub.docker.com/r/rommapp/romm", + "website": "https://romm.app/", + "exposable": true, + "supported_architectures": [ + "amd64", + "arm64" + ], + "created_at": 1777992374660, + "updated_at": 1777992374660, + "dynamic_config": true, + "min_tipi_version": "4.5.0" +} diff --git a/apps/romm/docker-compose.json b/apps/romm/docker-compose.json new file mode 100644 index 0000000..3010e76 --- /dev/null +++ b/apps/romm/docker-compose.json @@ -0,0 +1,70 @@ +{ + "schemaVersion": 2, + "services": [ + { + "name": "romm", + "image": "rommapp/romm:4.8.1", + "isMain": true, + "internalPort": 1083, + "environment": [ + {"key": "ROMM_AUTH_SECRET_KEY", "value": "c1f031e363e92dd780d036930eb504d80b9db8db9bbaccb4d4c5de2a3a7d8fa7"}, + {"key": "SCREENSCRAPER_USER", "value": "rouge13@gmail.com"}, + {"key": "SCREENSCRAPER_PASSWORD", "value": "rscIo8urOgEWzh"}, + {"key": "DB_HOST", "value": "rommdb"}, + {"key": "DB_NAME", "value": "romm"}, + {"key": "DB_USER", "value": "romm-user"}, + {"key": "DB_PASSWD", "value": "vklsi6ez"}, + {"key": "DB_HOST", "value": "rommdb"} + ], + "volumes": [ + { + "hostPath": "/home/robin/emu/", + "containerPath": "/romm/library", + "readOnly": false, + "shared": false, + "private": false + }, + { + "hostPath": "/home/robin/emu/romm/assets", + "containerPath": "/romm/assets", + "readOnly": false, + "shared": false, + "private": false + }, + { + "hostPath": "/home/robin/emu/romm/config", + "containerPath": "/romm/config", + "readOnly": false, + "shared": false, + "private": false + } + ], + "depends-on": { + "romm-db": { + "condition": "service_healthy" + } + } + }, + { + "name": "romm-db", + "image": "mariadb:latest", + "isMain": true, + "internalPort": 3306, + "environment": [ + {"key": "MYSQL_ROOT_PASSWORD", "value": "kudsgqkdu"}, + {"key": "MYSQL_DATABASE", "value": "romm"}, + {"key": "MYSQL_USER", "value": "romm-user"}, + {"key": "MYSQL_PASSWORD", "value": "fvklsi6ez"} + ], + "volumes": [ + { + "hostPath": "${APP_DATA_DIR}/mysql", + "containerPath": "/var/lib/mysql", + "readOnly": false, + "shared": false, + "private": false + } + ] + } + ] +} diff --git a/apps/romm/metadata/description.md b/apps/romm/metadata/description.md new file mode 100644 index 0000000..3a9e295 --- /dev/null +++ b/apps/romm/metadata/description.md @@ -0,0 +1 @@ +ROM manager for organizing, enriching, and playing retro games, with support for 400+ platforms. diff --git a/apps/romm/metadata/logo.jpg b/apps/romm/metadata/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..02a2f86b6f8749dc626ded91b2914e44796d6f1a GIT binary patch literal 27683 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 literal 0 HcmV?d00001