Skip to content

Commit 0e0a434

Browse files
committed
docs: add custom repositories guide and update README
1 parent 77c833a commit 0e0a434

2 files changed

Lines changed: 73 additions & 0 deletions

File tree

CUSTOM_REPOSITORIES.md

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
# Custom Payload Repositories
2+
3+
PS5 Payload Manager supports adding custom, third-party payload repositories (sources) in addition to the default official repository. This allows developers and communities to host and distribute their own payloads.
4+
5+
---
6+
7+
## JSON Format Specification
8+
9+
To create a repository, you must host a JSON file that conforms to the following schema.
10+
11+
### Core Rules:
12+
1. The JSON must contain a top-level `"name"` field.
13+
2. The `"name"` field **must appear before** the `"payloads"` field in the JSON structure so the parser can locate it correctly.
14+
3. The `"payloads"` field must be an array of payload objects.
15+
16+
### Example JSON:
17+
```json
18+
{
19+
"name": "My Custom Payloads",
20+
"payloads": [
21+
{
22+
"name": "FTP Server",
23+
"filename": "ftpsrv_v0.19.elf",
24+
"url": "https://example.com/payloads/ftpsrv_v0.19.elf",
25+
"description": "A simple FTP server that accepts connections on port 2121",
26+
"version": "v0.19",
27+
"checksum": "e6c1babbfd5e1b766d12b659853b514b9faedf6333cbe8cb514b1a3e79b7ce39"
28+
},
29+
{
30+
"name": "Debug Tool",
31+
"filename": "debug_tool.elf",
32+
"url": "https://example.com/payloads/debug_tool.elf",
33+
"description": "A helper utility to dump debug information.",
34+
"version": "v1.0"
35+
}
36+
]
37+
}
38+
```
39+
40+
### Field Reference:
41+
42+
| Field | Type | Required | Description |
43+
| :--- | :--- | :--- | :--- |
44+
| **`name`** (top-level) | String | Yes | The display name of your repository catalog in the user interface (e.g. `"My Custom Payloads"`). |
45+
| **`payloads`** (top-level) | Array | Yes | List of payload items available in this repository. |
46+
| **`name`** (item-level) | String | Yes | Human-readable name of the specific payload. |
47+
| **`filename`** (item-level) | String | Yes | The exact filename (including extension like `.elf`, `.bin`, `.lua`) when saved. |
48+
| **`url`** (item-level) | String | Yes | Direct HTTP or HTTPS link where the payload binary can be downloaded. |
49+
| **`description`** (item-level) | String | No | A description of what the payload does, displayed in the dashboard. |
50+
| **`version`** (item-level) | String | No | Version string used for update checks (e.g. `"v1.0"`). |
51+
| **`checksum`** (item-level) | String | No | **SHA-256** hash (64 hex characters) of the file. If provided, the manager automatically validates the downloaded file against it before installation. |
52+
53+
---
54+
55+
## Hosting Your Repository
56+
57+
1. **Accessibility**: Upload your JSON file and your payload binaries to any static hosting provider (e.g., GitHub Pages, Vercel, Netlify, or your own VPS). The PS5 must be able to resolve and reach the host IP.
58+
2. **CORS Headers**: To ensure that the web interface can interact with the files from the browser, your server should respond with CORS headers:
59+
```http
60+
Access-Control-Allow-Origin: *
61+
```
62+
63+
---
64+
65+
## Adding the Source in Payload Manager
66+
67+
1. Open the Payload Manager dashboard.
68+
2. Navigate to **Settings** (gear icon) and select **Manage Sources**.
69+
3. Click **Add Source**, paste the direct HTTP/HTTPS URL to your `payloads.json` file, and press **Add**.
70+
4. The dashboard will validate the source and add it to your catalog list.

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ If you are using an older version and don't want to update the entire autoloader
3333
### Standalone / Manual Loading
3434
You can also manually load the manager like any other `.elf` file. Grab the latest version from the [Releases](https://github.com/itsPLK/ps5-payload-manager/releases) page.
3535

36+
## Custom Repositories
37+
You can add third-party payload repositories to the manager. To learn how to create your own repository JSON and host it, see the [Custom Repositories Guide](CUSTOM_REPOSITORIES.md).
38+
3639
## Credits
3740
- [John Törnblom](https://github.com/john-tornblom) - for the [shell UI installer](https://github.com/ps5-payload-dev/ftpsrv/blob/master/install-ps5.c) and various payloads used as reference.
3841
- [BenNoxXD](https://github.com/BenNoxXD) - for the [Disc Player App termination logic](https://github.com/BenNoxXD/PS5-BDJ-HEN-loader/blob/main/HENloader_C_part/src/kill_disc_player.c).

0 commit comments

Comments
 (0)