Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
services:romm [2024/04/04 06:23] – created willy | services:romm [2024/09/02 13:22] (current) – willy | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== ROMM ====== | ====== ROMM ====== | ||
- | [[https:// | + | [[https:// |
===== Installation ===== | ===== Installation ===== | ||
- | Create the usual dedicated user called **romm** belonging to the **media** group, so it can access your collection: | + | Create the usual dedicated user called **romm** belonging to the **media** group, so it can access your collection, since we are here, also create the podman network you will use later on: |
<code bash> | <code bash> | ||
useradd -d / | useradd -d / | ||
+ | podman network create romm-net | ||
</ | </ | ||
+ | |||
+ | Create the required folder structure: | ||
+ | <code bash> | ||
+ | cd /data | ||
+ | mkdir ROMs | ||
+ | mkdir ROMs/roms | ||
+ | mkdir ROMs/assets | ||
+ | mkdir ROMs/config | ||
+ | </ | ||
+ | |||
+ | The ROMs should be moved under the **roms** folder following the specific structure defined [[https:// | ||
+ | |||
+ | Now, create the required IGDB/ | ||
Download the // | Download the // | ||
Line 16: | Line 29: | ||
wget -O docker-compose.yml https:// | wget -O docker-compose.yml https:// | ||
</ | </ | ||
+ | |||
and edit it at lest for: | and edit it at lest for: | ||
+ | < | ||
+ | These needs to be filled up properly: | ||
+ | - DB_PASSWD=blahblahmysecret | ||
+ | - IGDB_CLIENT_ID= <<< | ||
+ | - IGDB_CLIENT_SECRET= <<< | ||
+ | - MOBYGAMES_API_KEY= << see above >>> | ||
+ | - ROMM_AUTH_SECRET_KEY= # Generate a key with `openssl rand -hex 32` | ||
+ | |||
+ | These need to be adapted to your setup: | ||
+ | - / | ||
+ | - / | ||
+ | - / | ||
+ | |||
+ | Choose an available port (es: 22800): | ||
+ | ports: | ||
+ | - 2280:8080 | ||
+ | |||
+ | These needs to be set: | ||
+ | - MYSQL_ROOT_PASSWORD= blahblahmysecret | ||
+ | - MYSQL_PASSWORD= oiwejfoiwjoifwfoij | ||
+ | |||
+ | This needs to be added to both services: | ||
+ | networks: | ||
+ | - romm-net | ||
+ | |||
+ | This goes at the bottom of the file: | ||
+ | networks: | ||
+ | romm-net: {} | ||
+ | </ | ||
+ | |||
+ | Now pull the images: | ||
+ | <code bash> | ||
+ | podman compose pull | ||
+ | </ | ||
+ | |||
+ | ===== Reserse Proxy ===== | ||
+ | |||
+ | RomM needs to run on it's own subdomain. So check [[selfhost: | ||
+ | <file - romm.conf> | ||
+ | server { | ||
+ | server_name romm.mydomain.com; | ||
+ | listen 8443 ssl; # managed by Certbot | ||
+ | listen 443 ssl; # managed by Certbot | ||
+ | client_max_body_size 50000M; | ||
+ | large_client_header_buffers 4 32k; | ||
+ | |||
+ | access_log / | ||
+ | error_log / | ||
+ | |||
+ | | ||
+ | |||
+ | location / { | ||
+ | proxy_pass http:// | ||
+ | include " | ||
+ | include " | ||
+ | proxy_set_header Connection $http_connection; | ||
+ | proxy_set_header Upgrade $http_upgrade; | ||
+ | } | ||
+ | include com.mydomain/ | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | RomM also support Basic Authantication, | ||
+ | |||
+ | Adapt to your needs and restart your NGINX. | ||
+ | |||
+ | ===== Autostart ===== | ||
+ | |||
+ | To start it, and set it up on boot, as usual follow my indications [[gentoo: | ||
+ | < | ||
+ | ln -s / | ||
+ | </ | ||
+ | |||
+ | and create the following config file: | ||
+ | <file - / | ||
+ | USER=romm | ||
+ | DESCRIPTION=" | ||
+ | </ | ||
+ | |||
+ | Add the service to the default runlevel and start it now: | ||
+ | <code bash> | ||
+ | rc-update add user-containers.romm default | ||
+ | rc-service user-containers.romm start | ||
+ | </ | ||