NAS ROM Manager is a lightweight, feature rich management app for your retro game collection. Its easy to setup and use, and looks good to boot.
Variable | Required | Description |
---|---|---|
NRM_USERNAME |
Yes | Your username for authentication |
NRM_PASSWORD |
Yes | Your password for authentication |
SGDB_API_KEY |
Yes | Your SteamGridDB API Key |
IGDB_CLIENT_ID |
Yes | Your IGDB Client ID |
IGDB_CLIENT_SECRET |
Yes | Your IGDB Client Secret |
UPLOAD_CLEAN_SCHEDULE |
No | The interval at which NRM cleans incomplete uploads |
NRM_VERSION |
No | The App Version |
BUILD_DATE |
Yes | The date the app was built |
Volume | Mount Point | Description |
---|---|---|
Config | /config/NRM |
This is the folder where all of NRM's config files will be stored. Not mapping a volume to it means your settings will be lost on container restart. |
Library | /library |
This is the folder containing all of your ROMs, Emulators, and BIOS files. |
- TODO
- Blazing fast load times
- Rich metadata support
- Large set of recognized systems, with the ability to add your own
- Customizeable banner and cover Art for each ROM
- Mobile friendly design
- Clean / themeable Interface
- Easy, secure authentication
- Builtin upload / download Systems, you never have to access your ROMs folder again
Please note: you may edit and distrubute this program as you see fit but you must retain the license and the copyright notice I included (feel free to mark your contributions as I have).
Before you get started, you will need to install the following:
- Node.js - The frontend runtime.
- Bun - The package manager used for the frontend.
- Rust - The language the backend is written in.
The next step is to get a local copy of the repository. This can be done many ways, I recommend forking this repository and cloning that.
Once you have cloned the repository and opened it in your preffered Editor/IDE (I recommend VSCode), you will need to install the program's dependencies. To do this, you will need to run two sets of commands:
First:
cd ./web
bun install
Next:
cd ../server
cargo install
Now you are finally ready to get the app up and running! Assuming everything is set up correctly, run the following, each in their own terminal:
cd ./web
bun run "dev:svelte"
cd ./web
bun run "dev:rust"
Once you have made your edits and are ready to containerize, you can build NRM with docker:
cd ./docker
docker compose -f docker-compose.yml up
IMPORTANT: Make sure you've added all of the needed environment variables to docker-compose.yml
.
APIs Used:
References:
- Svelte Md3 - Many of the base components are heavily modified version of components from Svelte Md3.
Libraries:
- Material Icons - All of the app's icons came from here.
- This program is licensed under the GNU General Public License Version 3
- Please provide appropriate credit for code usage
Copyright Travis Lane