Skip to content

Commit 352601c

Browse files
committed
Added a basic server-browser,
1 parent 76a724a commit 352601c

16 files changed

+1842
-1
lines changed

.env.example

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,14 @@ REQUESTS_RATE_LIMIT_EXCLUDE=
5757
# Status probes
5858
STATUS_ALLOW_PRIVATE_TARGETS=false
5959
STATUS_PROBE_CACHE_TTL_MS=10000
60+
STATUS_BROWSER_MAX_ADDRESSES=20
61+
STATUS_BROWSER_MAX_CONCURRENCY=4
62+
STATUS_BROWSER_SOURCE_TIMEOUT_MS=3500
63+
STATUS_BROWSER_MAX_SOURCE_ADDRESSES=200
64+
# JSON array of external source feeds for /status/browser and /tools/server-browser source checkboxes.
65+
# Example:
66+
# STATUS_BROWSER_SOURCES=[{"id":"example","label":"Example Directory","url":"https://example.com/minecraft/servers.json"}]
67+
STATUS_BROWSER_SOURCES=
6068

6169
# Security and redirect controls
6270
MAX_TEXTURE_BYTES=1048576

README.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,13 @@ NitroCraft is a Minecraft avatar/render API built on Nitro and `minecraft-toolki
2929
- Username/UUID resolution endpoints via `minecraft-toolkit`
3030
- Disk + metadata caching with Redis or memory backend
3131
- Short-TTL + in-flight deduplicated status probe caching for `/status/*` endpoints
32+
- Batch status browsing endpoint with concurrency guards (`/status/browser`)
33+
- Optional source-ingest mode for `/status/browser` via configured public feed URLs
3234
- Configurable outbound Mojang session rate limiting (`SESSIONS_RATE_LIMIT`)
3335
- Optional inbound per-IP request rate limiting (`REQUESTS_RATE_LIMIT`)
3436
- Hosted API docs (`/docs`) and Prometheus metrics (`/metrics`)
3537
- Interactive server-list simulator (`/tools/server-list`) with import/share flow
38+
- Interactive multi-server browser (`/tools/server-browser`) for side-by-side probes
3639
- PWA support with installable manifest, offline fallback, and share-target support
3740
- Nitro runtime with `pnpm` workflows
3841

@@ -59,6 +62,8 @@ NitroCraft is a Minecraft avatar/render API built on Nitro and `minecraft-toolki
5962
- `GET /status/java?address=host`
6063
- `GET /status/bedrock?address=host`
6164
- `GET /status/server?address=host&edition=auto`
65+
- `GET /status/browser?address=hostA&address=hostB`
66+
- `GET /status/browser?source=my-directory&source=another-directory`
6267
- `GET /status/icon?address=host`
6368

6469
### Text Formatting
@@ -70,6 +75,7 @@ NitroCraft is a Minecraft avatar/render API built on Nitro and `minecraft-toolki
7075
### Tooling and Meta
7176

7277
- `GET /tools/server-list`
78+
- `GET /tools/server-browser`
7379
- `GET /docs`
7480
- `GET /metrics`
7581

@@ -170,6 +176,11 @@ Create a `.env` file and configure the following values.
170176
| `BIND` | Bind address/interface. |
171177
| `EXTERNAL_URL` | Public base URL used for generated external links. |
172178
| `STATUS_PROBE_CACHE_TTL_MS` | Cache TTL for `/status/java`, `/status/bedrock`, `/status/server`, and `/status/icon` probes. |
179+
| `STATUS_BROWSER_MAX_ADDRESSES` | Maximum number of targets accepted by `/status/browser` per request. |
180+
| `STATUS_BROWSER_MAX_CONCURRENCY` | Maximum request-level concurrency allowed by `/status/browser`. |
181+
| `STATUS_BROWSER_SOURCE_TIMEOUT_MS` | Timeout used when fetching configured status-browser source feeds. |
182+
| `STATUS_BROWSER_MAX_SOURCE_ADDRESSES` | Maximum addresses parsed from each source feed payload before probing. |
183+
| `STATUS_BROWSER_SOURCES` | JSON array of source feeds for ingestion, each as `{ "id": "...", "label": "...", "url": "https://..." }`. |
173184

174185
## Notes
175186

209 Bytes
Loading
15.6 KB
Loading
6.01 KB
Loading
3.66 KB
Loading

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "nitrocraft",
3-
"version": "1.2.1",
3+
"version": "1.2.3",
44
"private": false,
55
"type": "module",
66
"scripts": {

0 commit comments

Comments
 (0)