From c51620b91f0f848daecbcee07dd2eb61d77b0ded Mon Sep 17 00:00:00 2001 From: Dylan Barnes Date: Tue, 21 Jan 2025 19:33:47 -0600 Subject: [PATCH] TrueNAS Setup Documentation --- romm.wiki/TrueNAS-Setup.md | 125 ++++++++++++++++++ romm.wiki/_Sidebar.md | 1 + romm.wiki/resources/truenas/app-config.png | Bin 0 -> 101739 bytes romm.wiki/resources/truenas/appstore.png | Bin 0 -> 617336 bytes .../resources/truenas/install-via-yaml.png | Bin 0 -> 31474 bytes 5 files changed, 126 insertions(+) create mode 100644 romm.wiki/TrueNAS-Setup.md create mode 100644 romm.wiki/resources/truenas/app-config.png create mode 100644 romm.wiki/resources/truenas/appstore.png create mode 100644 romm.wiki/resources/truenas/install-via-yaml.png diff --git a/romm.wiki/TrueNAS-Setup.md b/romm.wiki/TrueNAS-Setup.md new file mode 100644 index 0000000..06e6e60 --- /dev/null +++ b/romm.wiki/TrueNAS-Setup.md @@ -0,0 +1,125 @@ +# Synology Setup Guide + +## Prerequisites +This guide assumes you're familiar with Docker and have basic knowledge of TrueNAS. You'll need: +- A TrueNAS installation +- A [Romm Folder structure](https://github.com/rommapp/romm/blob/release/README.md) + +## Setup Process + +**Note:** There is currently an [open bug](https://github.com/truenas/apps/issues/1405) with the built-in Romm app for TrueNAS. Therefore, the recommended path at this time for a working installation is through custom YAML. + +### Install via YAML (Recommended as of 2025-01-21) + +#### Step 1: Navigate to YAML install +Navigate to the `Install via YAML` page via Apps (Left Navbar) -> Discover Apps -> Install via YAML + +![Install via YAML](resources/truenas/install-via-yaml.png) + +#### Step 2: Paste in the following YML + +Replace any empty values with credentials you've created per the [Quick Start Guide](quick-start-guide). + +```yaml +services: + romm: + container_name: romm + depends_on: + romm-db: + condition: service_healthy + restart: True + deploy: + resources: # Resource constraints + limits: + cpus: '2.0' + memory: 4g + environment: + - DB_HOST=romm-db + - DB_NAME=romm + - DB_USER=romm-user + - DB_PASSWD= # Should match MARIADB_PASSWORD in mariadb + - ROMM_AUTH_SECRET_KEY= # Generate a key with `openssl rand -hex 32` + - IGDB_CLIENT_ID= # Generate an ID and SECRET in IGDB + - IGDB_CLIENT_SECRET= # https://api-docs.igdb.com/#account-creation + - MOBYGAMES_API_KEY= # https://www.mobygames.com/info/api/ + - STEAMGRIDDB_API_KEY= # https://github.com/rommapp/romm/wiki/Generate-API-Keys#steamgriddb + image: rommapp/romm:latest + ports: + - '31100:8080' + restart: unless-stopped + user: '568:568' + volumes: # Any /mnt paths may optionally be replaced with a docker volume + - /mnt/tank/truenas/resources:/romm/resources # Replace /mnt...: file path with your own data structure + - romm_redis_data:/romm/redis-data # Docker will manage this volume + - /mnt/tank/truenas/roms:/romm/library # Replace /mnt...: file path with your own data structure + - /mnt/tank/truenas/assets:/romm/assets # Replace /mnt...: file path with your own data structure + - /mnt/tank/truenas/config:/romm/config # Replace /mnt...: file path with your own data structure + romm-db: + container_name: romm-db + environment: + - MARIADB_ROOT_PASSWORD= # Use a unique, secure password + - MARIADB_DATABASE=romm + - MARIADB_USER=romm-user + - MARIADB_PASSWORD= # Match MARIADB_ROOT_PASSWORD + healthcheck: + interval: 10s + retries: 5 + start_interval: 10s + start_period: 30s + test: + - CMD + - healthcheck.sh + - '--connect' + - '--innodb_initialized' + timeout: 5s + image: mariadb:latest + restart: unless-stopped + volumes: + - mysql_data:/var/lib/mysql +version: '3' +volumes: + mysql_data: Null + romm_redis_data: Null + +``` + +#### Step 3: Save your configuration + +Save, and you're done! If the app will not boot, refer to [Troubleshooting](#troubleshooting) or head on over to the [Discord](https://discord.gg/P5HtHnhUDH). + +### Install via through the TrueNAS App Store + +#### Step 1: Navigate to Romm app +Navigate to the App Store via Apps (Left Navbar) -> Discover Apps -> Romm -> Install + +![Romm app](resources/truenas/appstore.png) + +#### Step 2: Installation configuration +Step through the installation UI. You will need to supply various credentials per the [Quick Start Guide](quick-start-guide). Most of the default values will work. + +Note: You will likely want to set certain Storage Configurations to a Dataset within TrueNAS, such as your Romm Library and Assets storage. If you do this, ensure you provide ACL access to the UserID specified above (default: 568, apps user). + +![Romm Library Example](resources/truenas/app-config.png) + +#### Step 3: Save your configuration + +Save, and you're done! If the app will not boot, refer to [Troubleshooting](#troubleshooting) or head on over to the [Discord](https://discord.gg/P5HtHnhUDH). + +## Troubleshooting + +### General +- Ensure you have replaced empty values (UIDs, GIDs, passwords, API keys) with your own +- Ensure proper permissions are applied within TrueNAS +- Monitor logs via the app bash terminal during for any errors if the app is encountering issues + +### Specific Issues + +#### Permissions issues inside the docker image. + +If you are encountering permissions issues with folders internal to the docker image (not your TrueNAS dataset), consider temporarily setting the user to root (user: 0). If you do this, it is recommended you fix local file permissions via shell and return access back to a non-root user. + +In my particular setup, I had to create a user/group in TrueNAS with uid:gid of 1000:1000 and auxiliary group `apps` due to hard-coded values in the Romm docker image. This resolved outstanding issues I had with my instance of Romm talking to its Redis instance. + +## Contributing + +If you have any suggestions or improvements, please submit a pull request to the [RomM wiki](https://github.com/rommapp/wiki). diff --git a/romm.wiki/_Sidebar.md b/romm.wiki/_Sidebar.md index db482d0..c357361 100644 --- a/romm.wiki/_Sidebar.md +++ b/romm.wiki/_Sidebar.md @@ -14,6 +14,7 @@ ### Setup Guides - [Unraid Setup Guide](Unraid-Setup) - [Synology Setup Guide](Synology-Setup) +- [TrueNAS Setup Guide](TrueNAS-Setup) - [OIDC Setup With Authelia](OIDC-Setup-With-Authelia) - [OIDC Setup With Authentik](OIDC-Setup-With-Authentik) - [Tinfoil Integration Guide](Tinfoil-Integration) diff --git a/romm.wiki/resources/truenas/app-config.png b/romm.wiki/resources/truenas/app-config.png new file mode 100644 index 0000000000000000000000000000000000000000..d5c7d5ff07db1ed703d12d25fddd5e207be4bc2b GIT binary patch literal 101739 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