63 lines
1.6 KiB
Markdown
63 lines
1.6 KiB
Markdown
# Download Mirror Storage Layout
|
||
|
||
This document describes the directory layout and metadata files required for the `ui/dl` static download portal.
|
||
|
||
## Root Objects
|
||
|
||
The root of the object storage bucket must contain:
|
||
|
||
- `manifest.json` – lists all top-level buckets shown on the homepage.
|
||
- one subdirectory per bucket (e.g. `deb/`, `xray-core/`).
|
||
|
||
Example `manifest.json`:
|
||
|
||
```json
|
||
{
|
||
"generated_at": "2025-09-13T12:00:00Z",
|
||
"roots": [
|
||
{
|
||
"name": "xray-core",
|
||
"href": "/xray-core/",
|
||
"updated_at": "2025-09-01T10:36:00Z",
|
||
"item_count": 7,
|
||
"summary": "Xray-core offline bundles"
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
## Bucket Contents
|
||
|
||
Each bucket directory must include:
|
||
|
||
- `dir.json` – metadata for the bucket or subdirectory.
|
||
- optional `tldr.md` – short usage snippet rendered on the right panel.
|
||
- optional `README.md` – detailed documentation.
|
||
- artifact files, checksums, SBOMs, etc.
|
||
|
||
Example `dir.json`:
|
||
|
||
```json
|
||
{
|
||
"path": "/xray-core/",
|
||
"updated_at": "2025-09-01T10:36:00Z",
|
||
"tldr": "/xray-core/tldr.md",
|
||
"readme": "/xray-core/README.md",
|
||
"items": [
|
||
{
|
||
"name": "xray-core-offline-amd64-1.8.7.tar.gz",
|
||
"size": 148723441,
|
||
"updated_at": "2025-09-01T10:36:00Z",
|
||
"href": "/xray-core/xray-core-offline-amd64-1.8.7.tar.gz",
|
||
"sha256": "/xray-core/sha256sum.txt"
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
Each `items` entry corresponds to a file or subdirectory. If `sha256` is present, the UI exposes a copyable verification command.
|
||
|
||
## Deployment
|
||
|
||
After running `next build && next export` inside `ui/dl`, upload the `out/` directory to the root of the object storage bucket alongside `manifest.json` and the per-bucket directories.
|