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 | ||
| + | </ | ||