mirror of
https://github.com/rommapp/docs.git
synced 2026-02-19 22:56:33 +08:00
fix most errors
This commit is contained in:
parent
3a8c79f42a
commit
ea2e4e6c81
2
.github/resources/social-preview.svg
vendored
2
.github/resources/social-preview.svg
vendored
@ -6,4 +6,4 @@
|
||||
<tspan x="589.494" y="296.458" style="font-style:normal;font-variant:normal;font-weight:700;font-stretch:normal;font-size:53.3333px;line-height:0;font-family:Calibri;-inkscape-font-specification:"Calibri Bold";fill:#fff;fill-opacity:1;stroke-width:3.375">Beautiful, powerful,</tspan>
|
||||
</text><text xml:space="preserve" x="582.656" y="207.396" style="font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:106.667px;line-height:0;font-family:Calibri;-inkscape-font-specification:Calibri;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3b82f6;fill-opacity:1;stroke-width:3.375">
|
||||
<tspan x="582.656" y="207.396" style="font-style:normal;font-variant:normal;font-weight:700;font-stretch:normal;font-size:106.667px;line-height:0;font-family:Calibri;-inkscape-font-specification:"Calibri Bold";fill:#fff;fill-opacity:1;stroke-width:3.375">RomM Docs</tspan>
|
||||
</text></svg>
|
||||
</text></svg>
|
||||
|
Before Width: | Height: | Size: 7.6 KiB After Width: | Height: | Size: 7.6 KiB |
@ -10,6 +10,7 @@ RomM automatically generates interactive API documentation using OpenAPI (Swagge
|
||||
- **ReDoc**: Available at `http://your-instance:3000/api/redoc`
|
||||
|
||||
These interactive docs allow you to:
|
||||
|
||||
- Browse all available endpoints
|
||||
- View request/response schemas
|
||||
- Test API calls directly from your browser
|
||||
@ -19,6 +20,7 @@ These interactive docs allow you to:
|
||||
## Base URL
|
||||
|
||||
The API base URL is typically:
|
||||
|
||||
```text
|
||||
http://your-instance:3000/api
|
||||
```
|
||||
@ -39,6 +41,7 @@ When using OAuth2, you'll need to obtain a token from `/api/token` endpoint and
|
||||
The API uses OAuth2 scopes to control access to different resources:
|
||||
|
||||
**Read Scopes:**
|
||||
|
||||
- `me.read` - View your profile
|
||||
- `roms.read` - View ROMs
|
||||
- `platforms.read` - View platforms
|
||||
@ -49,6 +52,7 @@ The API uses OAuth2 scopes to control access to different resources:
|
||||
- `users.read` - View users
|
||||
|
||||
**Write Scopes:**
|
||||
|
||||
- `me.write` - Modify your profile
|
||||
- `assets.write` - Modify assets
|
||||
- `roms.user.write` - Modify user-rom properties
|
||||
@ -64,12 +68,14 @@ The API uses OAuth2 scopes to control access to different resources:
|
||||
The RomM API provides comprehensive endpoints for managing all aspects of your ROM collection:
|
||||
|
||||
### Core Resources
|
||||
|
||||
- **Platforms** - Manage and configure gaming platforms
|
||||
- **ROMs** - Full CRUD operations for ROM files with extensive filtering, searching, and metadata matching
|
||||
- **Collections** - Create and manage ROM collections, smart collections, and virtual collections
|
||||
- **Users** - User management, authentication, invite links, and profiles
|
||||
|
||||
### Supporting Features
|
||||
|
||||
- **Authentication** - OAuth2 token management, OIDC login, password resets
|
||||
- **Search** - Metadata provider search for ROMs and covers
|
||||
- **Tasks** - Background task management and execution
|
||||
@ -121,22 +127,22 @@ rom = response.json()
|
||||
### Using JavaScript/Node.js
|
||||
|
||||
```javascript
|
||||
const axios = require('axios');
|
||||
const axios = require("axios");
|
||||
|
||||
// Setup authentication
|
||||
const api = axios.create({
|
||||
baseURL: 'http://your-instance:3000/api',
|
||||
auth: {
|
||||
username: 'username',
|
||||
password: 'password'
|
||||
}
|
||||
baseURL: "http://your-instance:3000/api",
|
||||
auth: {
|
||||
username: "username",
|
||||
password: "password",
|
||||
},
|
||||
});
|
||||
|
||||
// Get all libraries
|
||||
const libraries = await api.get('/libraries');
|
||||
const libraries = await api.get("/libraries");
|
||||
|
||||
// Get a specific ROM
|
||||
const rom = await api.get('/roms/123');
|
||||
const rom = await api.get("/roms/123");
|
||||
```
|
||||
|
||||
## OpenAPI Specification
|
||||
@ -157,4 +163,3 @@ For API-specific questions or issues:
|
||||
2. Review the code in the [RomM repository](https://github.com/rommapp/romm)
|
||||
3. Open an issue on [GitHub](https://github.com/rommapp/romm/issues)
|
||||
4. Join the [Discord community](https://discord.com/invite/romm)
|
||||
|
||||
|
||||
@ -12,4 +12,3 @@ Welcome to the RomM API & Development documentation. This section contains resou
|
||||
- **[API Reference](API-Reference.md)** - Complete API documentation with endpoints, schemas, and examples
|
||||
- **[Contributing](Contributing.md)** - Guidelines for contributing code, translations, and documentation
|
||||
- **[Development Setup](Development-Setup.md)** - How to set up your development environment
|
||||
|
||||
|
||||
@ -17,7 +17,7 @@ Exclude entire platforms (folders) from being scanned.
|
||||
|
||||
```yaml
|
||||
exclude:
|
||||
platforms: ["ps", "ngc", "gba"]
|
||||
platforms: ["ps", "ngc", "gba"]
|
||||
```
|
||||
|
||||
### ROMs
|
||||
@ -35,10 +35,10 @@ Applies to ROMs that are single files (not in subfolders).
|
||||
|
||||
```yaml
|
||||
exclude:
|
||||
roms:
|
||||
single_file:
|
||||
extensions: ["xml", "txt"]
|
||||
names: ["info.txt", "._*", "*.nfo"]
|
||||
roms:
|
||||
single_file:
|
||||
extensions: ["xml", "txt"]
|
||||
names: ["info.txt", "._*", "*.nfo"]
|
||||
```
|
||||
|
||||
#### Multi-File ROMs
|
||||
@ -53,12 +53,12 @@ Applies to ROMs stored as folders (multi-disc, with DLC, etc.).
|
||||
|
||||
```yaml
|
||||
exclude:
|
||||
roms:
|
||||
multi_file:
|
||||
names: ["final fantasy VII", "DLC"]
|
||||
parts:
|
||||
names: ["data.xml", "._*"]
|
||||
extensions: ["xml", "txt"]
|
||||
roms:
|
||||
multi_file:
|
||||
names: ["final fantasy VII", "DLC"]
|
||||
parts:
|
||||
names: ["data.xml", "._*"]
|
||||
extensions: ["xml", "txt"]
|
||||
```
|
||||
|
||||
---
|
||||
@ -67,7 +67,7 @@ exclude:
|
||||
|
||||
Customize how RomM interprets your folder and platform names.
|
||||
|
||||
### Platforms
|
||||
### Custom Folder Names
|
||||
|
||||
Map your custom folder names to RomM's recognized platform names.
|
||||
|
||||
@ -75,9 +75,9 @@ Map your custom folder names to RomM's recognized platform names.
|
||||
|
||||
```yaml
|
||||
system:
|
||||
platforms:
|
||||
gc: "ngc" # Treats 'gc' folder as GameCube
|
||||
psx: "ps" # Treats 'psx' folder as PlayStation
|
||||
platforms:
|
||||
gc: "ngc" # Treats 'gc' folder as GameCube
|
||||
psx: "ps" # Treats 'psx' folder as PlayStation
|
||||
```
|
||||
|
||||
### Versions
|
||||
@ -88,8 +88,8 @@ Associate a platform with its main version. This also tells RomM to fetch metada
|
||||
|
||||
```yaml
|
||||
system:
|
||||
versions:
|
||||
naomi: "arcade"
|
||||
versions:
|
||||
naomi: "arcade"
|
||||
```
|
||||
|
||||
---
|
||||
@ -104,7 +104,7 @@ If your ROMs folder is named `my_roms` instead of `roms`:
|
||||
|
||||
```yaml
|
||||
filesystem:
|
||||
roms_folder: "my_roms"
|
||||
roms_folder: "my_roms"
|
||||
```
|
||||
|
||||
---
|
||||
@ -137,11 +137,11 @@ Controls metadata provider priority order.
|
||||
|
||||
```yaml
|
||||
scan:
|
||||
priority:
|
||||
metadata:
|
||||
- "igdb"
|
||||
- "ss"
|
||||
- "moby"
|
||||
priority:
|
||||
metadata:
|
||||
- "igdb"
|
||||
- "ss"
|
||||
- "moby"
|
||||
```
|
||||
|
||||
#### Artwork
|
||||
@ -154,11 +154,11 @@ Controls artwork provider priority order for cover art and screenshots.
|
||||
|
||||
```yaml
|
||||
scan:
|
||||
priority:
|
||||
artwork:
|
||||
- "igdb"
|
||||
- "ss"
|
||||
- "moby"
|
||||
priority:
|
||||
artwork:
|
||||
- "igdb"
|
||||
- "ss"
|
||||
- "moby"
|
||||
```
|
||||
|
||||
#### Region
|
||||
@ -171,11 +171,11 @@ Sets preferred region for cover art and game title (Screenscraper only).
|
||||
|
||||
```yaml
|
||||
scan:
|
||||
priority:
|
||||
region:
|
||||
- "us"
|
||||
- "eu"
|
||||
- "jp"
|
||||
priority:
|
||||
region:
|
||||
- "us"
|
||||
- "eu"
|
||||
- "jp"
|
||||
```
|
||||
|
||||
#### Language
|
||||
@ -188,11 +188,11 @@ Sets preferred language for cover art and game title (Screenscraper only).
|
||||
|
||||
```yaml
|
||||
scan:
|
||||
priority:
|
||||
language:
|
||||
- "en"
|
||||
- "es"
|
||||
- "fr"
|
||||
priority:
|
||||
language:
|
||||
- "en"
|
||||
- "es"
|
||||
- "fr"
|
||||
```
|
||||
|
||||
### Media
|
||||
@ -217,11 +217,11 @@ Configures which media assets to download (Screenscraper and ES-DE gamelist.xml
|
||||
|
||||
```yaml
|
||||
scan:
|
||||
media:
|
||||
- box2d
|
||||
- screenshot
|
||||
- manual
|
||||
- bezel
|
||||
media:
|
||||
- box2d
|
||||
- screenshot
|
||||
- manual
|
||||
- bezel
|
||||
```
|
||||
|
||||
---
|
||||
@ -238,7 +238,7 @@ Enable debug mode to log available options to the browser console.
|
||||
|
||||
```yaml
|
||||
emulatorjs:
|
||||
debug: true
|
||||
debug: true
|
||||
```
|
||||
|
||||
### Cache Limit
|
||||
@ -249,7 +249,7 @@ Cache limit per ROM in bytes. Set to `null` for unlimited.
|
||||
|
||||
```yaml
|
||||
emulatorjs:
|
||||
cache_limit: 52428800 # 50 MB
|
||||
cache_limit: 52428800 # 50 MB
|
||||
```
|
||||
|
||||
### Settings
|
||||
@ -260,13 +260,13 @@ Configure core-specific settings. Use `default` to apply settings to all cores.
|
||||
|
||||
```yaml
|
||||
emulatorjs:
|
||||
settings:
|
||||
parallel_n64: # Use the exact core name
|
||||
vsync: disable
|
||||
snes9x:
|
||||
snes9x_region: ntsc
|
||||
default: # These settings apply to all cores
|
||||
fps: show
|
||||
settings:
|
||||
parallel_n64: # Use the exact core name
|
||||
vsync: disable
|
||||
snes9x:
|
||||
snes9x_region: ntsc
|
||||
default: # These settings apply to all cores
|
||||
fps: show
|
||||
```
|
||||
|
||||
### Controls
|
||||
@ -277,16 +277,16 @@ Map keyboard and controller controls for each player.
|
||||
|
||||
```yaml
|
||||
emulatorjs:
|
||||
controls:
|
||||
snes9x:
|
||||
0: # Player 1
|
||||
0: # Button mapping
|
||||
value: x # Keyboard mapping
|
||||
value2: BUTTON_2 # Controller mapping
|
||||
1: # Player 2
|
||||
0:
|
||||
value: /
|
||||
value2: BUTTON_2
|
||||
controls:
|
||||
snes9x:
|
||||
0: # Player 1
|
||||
0: # Button mapping
|
||||
value: x # Keyboard mapping
|
||||
value2: BUTTON_2 # Controller mapping
|
||||
1: # Player 2
|
||||
0:
|
||||
value: /
|
||||
value2: BUTTON_2
|
||||
```
|
||||
|
||||
See [EmulatorJS documentation](https://emulatorjs.org/docs4devs/control-mapping/) for control mapping details.
|
||||
|
||||
@ -55,7 +55,7 @@ This is a complete list of available environment variables; required variables a
|
||||
| REDIS_USERNAME | Username for Redis/Valkey instance | | |
|
||||
| REDIS_PASSWORD | Password for Redis/Valkey instance | | |
|
||||
| REDIS_DB | Database number for Redis/Valkey instance | | `0` |
|
||||
| REDIS_SSL | Enable SSL for Redis/Valkey instance | | `false` |
|
||||
| REDIS_SSL | Enable SSL for Redis/Valkey instance | | `false` |
|
||||
| SENTRY_DSN | DSN for Sentry error tracking | | |
|
||||
|
||||
## Metadata providers
|
||||
@ -73,8 +73,8 @@ This is a complete list of available environment variables; required variables a
|
||||
| LAUNCHBOX_API_ENABLED | Enable LaunchBox API integration | | `false` |
|
||||
| PLAYMATCH_API_ENABLED | Enable PlayMatch API integration | | `false` |
|
||||
| HASHEOUS_API_ENABLED | Enable Hasheous API integration | | `false` |
|
||||
| FLASHPOINT_API_ENABLED | Enable Flashpoint API integration | | `false` |
|
||||
| HLTB_API_ENABLED | Enable HowLongToBeat API integration | | `false` |
|
||||
| FLASHPOINT_API_ENABLED | Enable Flashpoint API integration | | `false` |
|
||||
| HLTB_API_ENABLED | Enable HowLongToBeat API integration | | `false` |
|
||||
|
||||
## Authentication
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@ Here are some combinations you can use based on your needs:
|
||||
|
||||
- Supports 125+ popular systems
|
||||
- ScreenScraper provides titles, descriptions, cover art, screenshots and manuals
|
||||
- With the option for 3D boxes and CD/cartridge covers
|
||||
- With the option for 3D boxes and CD/cartridge covers
|
||||
- Retroachievements provides achievement progress
|
||||
- **Use this if you want to avoid Twitch/Amazon products**
|
||||
|
||||
@ -137,17 +137,17 @@ EmulationStation, and it's modern successor ES-DE, use a custom XML format to st
|
||||
|
||||
```yaml
|
||||
library/
|
||||
└─ roms/
|
||||
└─ roms/
|
||||
└─ gba/
|
||||
├─ game_1.gba
|
||||
├─ game_2.gba
|
||||
├─ gamelist.xml
|
||||
├─ 3dboxes/
|
||||
│ ├─ game_1.png
|
||||
│ └─ game_2.png
|
||||
├─ covers/
|
||||
├─ screenshots/
|
||||
└─ etc...
|
||||
├─ game_1.gba
|
||||
├─ game_2.gba
|
||||
├─ gamelist.xml
|
||||
├─ 3dboxes/
|
||||
│ ├─ game_1.png
|
||||
│ └─ game_2.png
|
||||
├─ covers/
|
||||
├─ screenshots/
|
||||
└─ etc...
|
||||
```
|
||||
|
||||
## Metadata Tags in Filenames
|
||||
|
||||
@ -18,15 +18,19 @@ OIDC is an identity layer built on top of OAuth2. While OAuth2 primarily handles
|
||||
RomM supports OIDC authentication with the following identity providers:
|
||||
|
||||
### [Authelia](../OIDC-Guides/OIDC-Setup-With-Authelia.md)
|
||||
|
||||
An open-source authentication and authorization server providing two-factor authentication and SSO. Ideal for self-hosters looking for a lightweight solution.
|
||||
|
||||
### [Authentik](../OIDC-Guides/OIDC-Setup-With-Authentik.md)
|
||||
|
||||
An open-source identity provider with support for modern authentication protocols, MFA, and comprehensive user management.
|
||||
|
||||
### [PocketID](../OIDC-Guides/OIDC-Setup-With-PocketID.md)
|
||||
|
||||
A simple OIDC provider that exclusively supports passkey authentication - no passwords required.
|
||||
|
||||
### [Zitadel](../OIDC-Guides/OIDC-Setup-With-Zitadel.md)
|
||||
|
||||
An enterprise-grade, open-source identity and access management platform supporting OAuth2, OIDC, SAML, and passwordless authentication.
|
||||
|
||||
## General Setup Requirements
|
||||
|
||||
@ -14,6 +14,7 @@ Additionally, you can submit your RetroAchievements username and synchronize you
|
||||
## User Interface
|
||||
|
||||
From here you can:
|
||||
|
||||
- Change your language
|
||||
- Adjust the color scheme of RomM
|
||||
- Control which ribbons are visible on the home screen
|
||||
@ -24,6 +25,7 @@ From here you can:
|
||||
## Library Management
|
||||
|
||||
From this screen you can:
|
||||
|
||||
- Edit platform bindings and versions on the Config tab
|
||||
- Manage missing games on the Missing Games tab
|
||||
|
||||
|
||||
@ -76,7 +76,7 @@ The `Scan options` dropdown allows you to choose a specific type of scan to perf
|
||||
- For example, selecting `IGDB` and `ScreenScraper` will update the metadata for games that **are matched** with IGDB **or** ScreenScraper, and will use `igdb_id` and/or `ssfr_id` to refetch the metadata from the respective providers.
|
||||
- **Recalculate Hashes**: Recalculates hashes for all files in the selected platforms.
|
||||
- **Total Rescan**: Rescans and rematches all games in the selected platforms (slowest).
|
||||
- This will wipe all existing metadata matches, including the external IDs, and attempt to match them again, like on a fresh scan. *Saves, states and notes will be preserved.*
|
||||
- This will wipe all existing metadata matches, including the external IDs, and attempt to match them again, like on a fresh scan. _Saves, states and notes will be preserved._
|
||||
|
||||
### Console
|
||||
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 4.0 MiB After Width: | Height: | Size: 2.7 MiB |
Loading…
x
Reference in New Issue
Block a user