Compare commits
2
Commits
c10f602e8e
...
4f5725ee74
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4f5725ee74 | ||
|
|
e9be3f7177 |
@@ -58,11 +58,10 @@ doesn't need a Docker socket or direct access to your game-server files.
|
|||||||
## Development
|
## Development
|
||||||
|
|
||||||
The controller uses SvelteKit, TypeScript, and SQLite. The host agent uses the
|
The controller uses SvelteKit, TypeScript, and SQLite. The host agent uses the
|
||||||
Python 3 standard library. For local development, install Node.js 22 and Python 3:
|
Python 3 standard library. For local development, install Node.js 22.12+ and Python 3:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
npm ci
|
npm ci
|
||||||
npm run agent:package
|
|
||||||
export EC_SETUP_TOKEN=$(openssl rand -hex 32)
|
export EC_SETUP_TOKEN=$(openssl rand -hex 32)
|
||||||
export BETA_ARCHIVE_DIR=./data/beta-archive
|
export BETA_ARCHIVE_DIR=./data/beta-archive
|
||||||
EC_AUTH_ALLOW_HTTP=true npm run dev
|
EC_AUTH_ALLOW_HTTP=true npm run dev
|
||||||
@@ -70,6 +69,7 @@ EC_AUTH_ALLOW_HTTP=true npm run dev
|
|||||||
|
|
||||||
Open `http://localhost:3000` and use the setup token from your shell. The local
|
Open `http://localhost:3000` and use the setup token from your shell. The local
|
||||||
database defaults to `./data/cherry.db`; keep it separate from production data.
|
database defaults to `./data/cherry.db`; keep it separate from production data.
|
||||||
|
`npm run dev` packages the downloadable agent before starting the server.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
npm run check
|
npm run check
|
||||||
|
|||||||
@@ -10,11 +10,10 @@ does not require a Docker socket or direct access to host filesystems.
|
|||||||
|
|
||||||
## Run locally
|
## Run locally
|
||||||
|
|
||||||
Use Node.js 22 (the container's version), npm and Python 3.
|
Use Node.js 22.12+ (the container uses Node.js 22), npm and Python 3.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
npm ci
|
npm ci
|
||||||
npm run agent:package
|
|
||||||
export EC_SETUP_TOKEN="$(openssl rand -hex 32)"
|
export EC_SETUP_TOKEN="$(openssl rand -hex 32)"
|
||||||
export BETA_ARCHIVE_DIR=./data/beta-archive
|
export BETA_ARCHIVE_DIR=./data/beta-archive
|
||||||
EC_AUTH_ALLOW_HTTP=true npm run dev
|
EC_AUTH_ALLOW_HTTP=true npm run dev
|
||||||
@@ -83,10 +82,19 @@ npm run test:agent
|
|||||||
npm run build
|
npm run build
|
||||||
```
|
```
|
||||||
|
|
||||||
Builds regenerate the downloadable agent, standalone updater and checksum
|
The `package.json` overrides keep SvelteKit 2 on patched `devalue` 5.x (5.9.4 or
|
||||||
manifest. They also bundle report workers under `build/reports` and launch
|
newer) and `cookie` 0.7.x releases until its dependency ranges include those fixes.
|
||||||
preparation under `build/launch`. Development and test commands compile those
|
These dependencies ship in the server bundle even though SvelteKit is a
|
||||||
workers automatically. Restart `npm run dev` after changing worker code.
|
development dependency.
|
||||||
|
Dependency security checks must include development dependencies: use `npm audit`
|
||||||
|
without `--omit=dev`.
|
||||||
|
|
||||||
|
`npm run dev` and `npm run build` regenerate the downloadable agent, installer,
|
||||||
|
standalone updater and checksum manifest. Builds also bundle report workers
|
||||||
|
under `build/reports` and launch preparation under `build/launch`. Development
|
||||||
|
and test commands compile those workers automatically. Restart `npm run dev`
|
||||||
|
after changing agent or worker code, or run `npm run agent:package` to refresh
|
||||||
|
only the downloadable agent assets while the development server is running.
|
||||||
|
|
||||||
Automated tests simulate Docker and game hosts. Real Debian installation and
|
Automated tests simulate Docker and game hosts. Real Debian installation and
|
||||||
T5/T6 server validation use the [host acceptance checklist](../guides/native-hosts.md#development-and-validation).
|
T5/T6 server validation use the [host acceptance checklist](../guides/native-hosts.md#development-and-validation).
|
||||||
|
|||||||
Generated
+251
-689
File diff suppressed because it is too large
Load Diff
+14
-5
@@ -4,6 +4,9 @@
|
|||||||
"description": "T5/T6 Plutonium Zombies fleet manager \u2014 replaces push_scripts.sh with a live web UI",
|
"description": "T5/T6 Plutonium Zombies fleet manager \u2014 replaces push_scripts.sh with a live web UI",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
|
"engines": {
|
||||||
|
"node": "^22.12.0 || >=24.0.0"
|
||||||
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite dev",
|
"dev": "vite dev",
|
||||||
"build": "vite build && npm run build:reports -- --outDir build/reports && npm run build:launch -- --outDir build/launch",
|
"build": "vite build && npm run build:reports -- --outDir build/reports && npm run build:launch -- --outDir build/launch",
|
||||||
@@ -19,7 +22,7 @@
|
|||||||
"test:agent": "python3 -m unittest discover -s agent/tests -v",
|
"test:agent": "python3 -m unittest discover -s agent/tests -v",
|
||||||
"build:reports": "vite build --config vite.reports.config.ts",
|
"build:reports": "vite build --config vite.reports.config.ts",
|
||||||
"build:launch": "vite build --config vite.launch.config.ts",
|
"build:launch": "vite build --config vite.launch.config.ts",
|
||||||
"predev": "npm run build:reports && npm run build:launch",
|
"predev": "npm run agent:package && npm run build:reports && npm run build:launch",
|
||||||
"pretest": "npm run build:reports && npm run build:launch",
|
"pretest": "npm run build:reports && npm run build:launch",
|
||||||
"pretest:watch": "npm run build:reports && npm run build:launch",
|
"pretest:watch": "npm run build:reports && npm run build:launch",
|
||||||
"check:styles": "node scripts/check-ui-styles.mjs"
|
"check:styles": "node scripts/check-ui-styles.mjs"
|
||||||
@@ -32,15 +35,21 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@sveltejs/adapter-node": "^5.2.9",
|
"@sveltejs/adapter-node": "^5.2.9",
|
||||||
"@sveltejs/kit": "^2.8.0",
|
"@sveltejs/kit": "^2.70.3",
|
||||||
"@sveltejs/vite-plugin-svelte": "^4.0.0",
|
"@sveltejs/vite-plugin-svelte": "^6.2.4",
|
||||||
"@types/better-sqlite3": "^7.6.11",
|
"@types/better-sqlite3": "^7.6.11",
|
||||||
"@types/node": "^22.7.0",
|
"@types/node": "^22.7.0",
|
||||||
"svelte": "^5.1.0",
|
"svelte": "^5.1.0",
|
||||||
"svelte-check": "^4.0.0",
|
"svelte-check": "^4.0.0",
|
||||||
"tsx": "^4.19.0",
|
"tsx": "^4.19.0",
|
||||||
"typescript": "^5.6.0",
|
"typescript": "^5.6.0",
|
||||||
"vite": "^5.4.0",
|
"vite": "^7.3.7",
|
||||||
"vitest": "^2.1.0"
|
"vitest": "^4.1.11"
|
||||||
|
},
|
||||||
|
"overrides": {
|
||||||
|
"@sveltejs/kit": {
|
||||||
|
"cookie": "^0.7.2"
|
||||||
|
},
|
||||||
|
"devalue": "^5.9.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,16 +0,0 @@
|
|||||||
//////////////////////////////////////////////////
|
|
||||||
// GENERAL CONFIGURATION //
|
|
||||||
//////////////////////////////////////////////////
|
|
||||||
|
|
||||||
set g_inactivity "190" // Enable or Disable auto kick feature for idle/AFK players.
|
|
||||||
set sv_disableClientConsole "0" // Enable or Disable players ability to access server commands
|
|
||||||
set sv_floodProtect "1" // Chat Spam Protection.
|
|
||||||
set sv_kickBanTime "300" // Kick Ban Duration.
|
|
||||||
set sv_voice "1" // Allow Voice Chat?
|
|
||||||
set sv_voicequality "3" // Voice Quality.
|
|
||||||
set sp_minplayers "1" // Minimum amount of players.
|
|
||||||
set scr_allowFileIo "1" // Allow GSC scripts to interact with files?
|
|
||||||
set scr_kill_infinite_loops "1" // Kill misbehaving threads?
|
|
||||||
set sv_wwwBaseURL "" // Fast DL URL
|
|
||||||
|
|
||||||
set sv_maprotation "map zombie_theater"
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
Note: Unnecessary use of -X or --request, POST is already inferred.
|
|
||||||
* Host localhost:3000 was resolved.
|
|
||||||
* IPv6: ::1
|
|
||||||
* IPv4: 127.0.0.1
|
|
||||||
% Total % Received % Xferd Average Speed Time Time Time Current
|
|
||||||
Dload Upload Total Spent Left Speed
|
|
||||||
␍ 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Trying [::1]:3000...
|
|
||||||
* Connected to localhost (::1) port 3000
|
|
||||||
* using HTTP/1.x
|
|
||||||
> POST /api/configs HTTP/1.1␍
|
|
||||||
> Host: localhost:3000␍
|
|
||||||
> User-Agent: curl/8.15.0␍
|
|
||||||
> Accept: */*␍
|
|
||||||
> Content-Length: 1832␍
|
|
||||||
> Content-Type: multipart/form-data; boundary=------------------------barYWMs19HWi81kFXmt3OX␍
|
|
||||||
> ␍
|
|
||||||
} [1832 bytes data]
|
|
||||||
* upload completely sent off: 1832 bytes
|
|
||||||
< HTTP/1.1 200 OK␍
|
|
||||||
< Access-Control-Allow-Origin: *␍
|
|
||||||
< content-length: 232␍
|
|
||||||
< content-type: application/json␍
|
|
||||||
< Date: Sat, 12 Sep 2026 23:27:36 GMT␍
|
|
||||||
< Connection: keep-alive␍
|
|
||||||
< Keep-Alive: timeout=5␍
|
|
||||||
< ␍
|
|
||||||
{ [232 bytes data]
|
|
||||||
␍100 2064 100 232 100 1832 49225 379k --:--:-- --:--:-- --:--:-- 503k{"ok":true,"script":{"id":2,"name":"T5 Zombies Baseline","target_rel_path":"dedicated_sp.cfg","scope_type":"game","scope_value":"t5","current_version_id":null,"kind":"baseline","created_at":"2026-09-12T23:27:36.519Z"},"versionId":2}
|
|
||||||
* Connection #0 to host localhost left intact
|
|
||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
import { sveltekit } from '@sveltejs/kit/vite';
|
import { sveltekit } from '@sveltejs/kit/vite';
|
||||||
import { defineConfig } from 'vite';
|
import { defineConfig } from 'vitest/config';
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
plugins: [sveltekit()],
|
plugins: [sveltekit()],
|
||||||
|
|||||||
Reference in New Issue
Block a user