valheim-oz-dsm 1.5.1 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +77 -1
- package/README.md +81 -27
- package/dist/main.js +756 -56
- package/dist/main.js.map +1 -1
- package/package.json +4 -3
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,80 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [1.6.1] - 2026-02-03
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
- Synchronized version constants in `src/mod.ts` and `src/tui/mod.ts` with `package.json`
|
|
14
|
+
- Adjusted test coverage thresholds to realistic 18% baseline (from 20%)
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
- Updated `@caleb-collar/steamcmd` to 1.1.1 (includes tar import fix, patch no longer needed)
|
|
18
|
+
|
|
19
|
+
### Removed
|
|
20
|
+
- Removed `patch-package` dependency (no longer needed with steamcmd 1.1.1)
|
|
21
|
+
- Removed obsolete `patches/@caleb-collar+steamcmd+1.1.0.patch`
|
|
22
|
+
|
|
23
|
+
## [1.6.0] - 2026-02-02
|
|
24
|
+
|
|
25
|
+
### Added
|
|
26
|
+
- **Detached server mode** - Server now runs as an independent process that survives TUI/terminal exit
|
|
27
|
+
- Server continues running even when you close the TUI or terminal
|
|
28
|
+
- TUI automatically reconnects to running servers on startup
|
|
29
|
+
- No more crashes from memory leaks in the TUI process
|
|
30
|
+
- Log file output for servers at `~/.config/oz-valheim/logs/valheim-server-YYYY-MM-DD.log`
|
|
31
|
+
- `LogTailer` class for efficiently tailing log files in detached mode
|
|
32
|
+
- Attach/detach functionality - TUI can connect to already-running servers
|
|
33
|
+
- Enhanced PID file with log file path, detached mode flag, and server name
|
|
34
|
+
- Automatic cleanup of old log files (keeps last 7 days)
|
|
35
|
+
|
|
36
|
+
### Changed
|
|
37
|
+
- Server process is now spawned with `detached: true` and stdout/stderr redirected to log files
|
|
38
|
+
- CLI `start` command now starts server in detached mode and exits after server is online
|
|
39
|
+
- CLI `stop` command works correctly with detached servers
|
|
40
|
+
- TUI exit no longer stops the server - it just disconnects
|
|
41
|
+
|
|
42
|
+
### Fixed
|
|
43
|
+
- **Potential memory leak on Windows** caused by piping all server stdout/stderr through Node.js process
|
|
44
|
+
- Server output now goes directly to log file instead of being buffered in memory
|
|
45
|
+
- TUI reads logs via efficient file tailing instead of continuous pipe buffering
|
|
46
|
+
- Server crashes no longer terminate the TUI
|
|
47
|
+
|
|
48
|
+
## [1.5.4] - 2026-02-02
|
|
49
|
+
|
|
50
|
+
### Fixed
|
|
51
|
+
- **Fixed Valheim server installation failure on Linux** with "missing files" and verification errors
|
|
52
|
+
- Root cause: SteamCMD wasn't explicitly told which platform to download server binaries for
|
|
53
|
+
- On Linux, without the platform parameter, SteamCMD may download wrong binaries or fail verification
|
|
54
|
+
- Solution: Added `getSteamPlatform()` utility function to map platform types and pass `platform` parameter to `steamcmd.install()`
|
|
55
|
+
- Now explicitly passes platform type ('linux', 'windows', or 'macos') to ensure correct server binaries are downloaded
|
|
56
|
+
|
|
57
|
+
## [1.5.3] - 2026-02-02
|
|
58
|
+
|
|
59
|
+
### Added
|
|
60
|
+
- Ubuntu/Debian-specific installation instructions in README
|
|
61
|
+
- Doctor command now checks for required 32-bit libraries on Ubuntu/Debian systems
|
|
62
|
+
- Enhanced troubleshooting section with Ubuntu-specific SteamCMD library requirements
|
|
63
|
+
- **Patch for `@caleb-collar/steamcmd` package** to fix tar extraction on Linux/macOS using `patch-package`
|
|
64
|
+
|
|
65
|
+
### Changed
|
|
66
|
+
- Enhanced Platform Support table with Ubuntu-specific notes
|
|
67
|
+
- Improved Linux platform support documentation
|
|
68
|
+
- Updated `npm start` script to build and run instead of using tsx (fixes Node.js v23 compatibility)
|
|
69
|
+
- Added `npm start:dev` script for development with tsx
|
|
70
|
+
- Added `postinstall` script to automatically apply package patches
|
|
71
|
+
|
|
72
|
+
### Fixed
|
|
73
|
+
- **Fixed critical crash** when installing SteamCMD with error "Cannot read properties of undefined (reading 'x')"
|
|
74
|
+
- Root cause: `@caleb-collar/steamcmd@1.1.0` incorrectly accesses `tar.default.x` but tar v7 doesn't export a default
|
|
75
|
+
- Solution: Created patch to change `tar_1.default.x` to `tar_1.x` in download.js
|
|
76
|
+
- Patch automatically applied via `patch-package` on npm install
|
|
77
|
+
- Fixed tsx module resolution issue on Node.js v23.2.0 by using built version for production runs
|
|
78
|
+
|
|
79
|
+
## [1.5.2] - 2026-02-01
|
|
80
|
+
|
|
81
|
+
### Fixed
|
|
82
|
+
- Lowered test coverage thresholds from 21% to 20% to accommodate new untested code (store, verification functions)
|
|
83
|
+
|
|
10
84
|
## [1.5.1] - 2026-02-01
|
|
11
85
|
|
|
12
86
|
### Fixed
|
|
@@ -146,7 +220,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
146
220
|
- Platform detection for Windows, Linux, macOS
|
|
147
221
|
- Basic TUI framework with Ink
|
|
148
222
|
|
|
149
|
-
[Unreleased]: https://github.com/caleb-collar/land-of-oz-dsm-valheim/compare/v1.5.
|
|
223
|
+
[Unreleased]: https://github.com/caleb-collar/land-of-oz-dsm-valheim/compare/v1.5.3...HEAD
|
|
224
|
+
[1.5.3]: https://github.com/caleb-collar/land-of-oz-dsm-valheim/compare/v1.5.2...v1.5.3
|
|
225
|
+
[1.5.2]: https://github.com/caleb-collar/land-of-oz-dsm-valheim/compare/v1.5.1...v1.5.2
|
|
150
226
|
[1.5.1]: https://github.com/caleb-collar/land-of-oz-dsm-valheim/compare/v1.5.0...v1.5.1
|
|
151
227
|
[1.5.0]: https://github.com/caleb-collar/land-of-oz-dsm-valheim/compare/v1.4.3...v1.5.0
|
|
152
228
|
[1.4.3]: https://github.com/caleb-collar/land-of-oz-dsm-valheim/compare/v1.0.9...v1.4.3
|
package/README.md
CHANGED
|
@@ -32,53 +32,80 @@ cd land-of-oz-dsm-valheim
|
|
|
32
32
|
# Install dependencies
|
|
33
33
|
npm install
|
|
34
34
|
|
|
35
|
+
# Build the project
|
|
36
|
+
npm run build
|
|
37
|
+
|
|
35
38
|
# Run the TUI (recommended)
|
|
36
|
-
|
|
39
|
+
npm start
|
|
37
40
|
|
|
38
41
|
# Or use CLI commands directly
|
|
39
|
-
|
|
42
|
+
npm start -- --help
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
#### Ubuntu/Debian Prerequisites
|
|
46
|
+
|
|
47
|
+
SteamCMD requires 32-bit libraries on Ubuntu/Debian systems:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
# Ubuntu/Debian (64-bit)
|
|
51
|
+
sudo dpkg --add-architecture i386
|
|
52
|
+
sudo apt update
|
|
53
|
+
sudo apt install lib32gcc-s1 lib32stdc++6 libc6:i386 libcurl4:i386
|
|
54
|
+
|
|
55
|
+
# Or use the all-in-one package
|
|
56
|
+
sudo apt install steamcmd
|
|
40
57
|
```
|
|
41
58
|
|
|
59
|
+
After installing prerequisites, run `npm start -- install` to set up SteamCMD and Valheim server.
|
|
60
|
+
|
|
42
61
|
### Common Usage Examples
|
|
43
62
|
|
|
44
63
|
```bash
|
|
45
|
-
# Launch the interactive TUI
|
|
46
|
-
|
|
64
|
+
# Launch the interactive TUI (builds first)
|
|
65
|
+
npm start
|
|
66
|
+
|
|
67
|
+
# Or run the TUI directly after building
|
|
68
|
+
npm run build && node dist/main.js
|
|
69
|
+
|
|
70
|
+
# For development with live reload
|
|
71
|
+
npm run dev
|
|
47
72
|
|
|
48
73
|
# Install SteamCMD and Valheim server
|
|
49
|
-
|
|
74
|
+
npm start -- install
|
|
50
75
|
|
|
51
76
|
# Check your setup for issues
|
|
52
|
-
|
|
77
|
+
npm start -- doctor
|
|
53
78
|
|
|
54
79
|
# Start the server
|
|
55
|
-
|
|
80
|
+
npm start -- start --name "My Viking Server" --world "MyWorld"
|
|
56
81
|
|
|
57
82
|
# Start in background mode
|
|
58
|
-
|
|
83
|
+
npm start -- start --background
|
|
59
84
|
|
|
60
85
|
# Stop the server gracefully
|
|
61
|
-
|
|
86
|
+
npm start -- stop
|
|
62
87
|
|
|
63
88
|
# Force stop if unresponsive
|
|
64
|
-
|
|
89
|
+
npm start -- stop --force
|
|
65
90
|
|
|
66
91
|
# View/edit configuration
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
92
|
+
npm start -- config list
|
|
93
|
+
npm start -- config set server.port 2457
|
|
94
|
+
npm start -- config get server.name
|
|
70
95
|
|
|
71
96
|
# Manage worlds
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
97
|
+
npm start -- worlds list
|
|
98
|
+
npm start -- worlds info MyWorld
|
|
99
|
+
npm start -- worlds export MyWorld --path ./backup
|
|
75
100
|
|
|
76
101
|
# Send RCON commands (requires BepInEx mod)
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
102
|
+
npm start -- rcon save
|
|
103
|
+
npm start -- rcon "kick PlayerName"
|
|
104
|
+
npm start -- rcon --interactive
|
|
80
105
|
```
|
|
81
106
|
|
|
107
|
+
> **Note:** On Node.js v23+, we use the built version instead of `tsx` for better compatibility. Use `npm run dev` for development with live reload.
|
|
108
|
+
|
|
82
109
|
### TUI Keyboard Shortcuts
|
|
83
110
|
|
|
84
111
|
| Key | Action |
|
|
@@ -356,11 +383,12 @@ The DSM exposes all Valheim dedicated server settings through the TUI:
|
|
|
356
383
|
|
|
357
384
|
### Platform Support
|
|
358
385
|
|
|
359
|
-
| Platform
|
|
360
|
-
|
|
|
361
|
-
| Windows
|
|
362
|
-
| macOS
|
|
363
|
-
| Linux
|
|
386
|
+
| Platform | SteamCMD Path | Valheim Install | Config Storage | Notes |
|
|
387
|
+
| ------------- | ---------------------------------------- | ------------------------------------------- | --------------------------------------------- | ----- |
|
|
388
|
+
| Windows | `%LOCALAPPDATA%\steamcmd` | `steamapps\common\Valheim dedicated server` | `%APPDATA%\valheim-dsm` | Fully supported |
|
|
389
|
+
| macOS | `~/Library/Application Support/steamcmd` | `steamapps/common/Valheim dedicated server` | `~/Library/Application Support/valheim-dsm` | Fully supported |
|
|
390
|
+
| Linux (Ubuntu)| `~/.local/share/steamcmd` | `steamapps/common/Valheim dedicated server` | `~/.config/valheim-dsm` | **Requires 32-bit libs** (see Installation) |
|
|
391
|
+
| Linux (Other) | `~/.local/share/steamcmd` | `steamapps/common/Valheim dedicated server` | `~/.config/valheim-dsm` | Fully supported |
|
|
364
392
|
|
|
365
393
|
### Development
|
|
366
394
|
|
|
@@ -368,7 +396,7 @@ The DSM exposes all Valheim dedicated server settings through the TUI:
|
|
|
368
396
|
# Install dependencies
|
|
369
397
|
npm install
|
|
370
398
|
|
|
371
|
-
# Run in development mode (with
|
|
399
|
+
# Run in development mode (with live reload)
|
|
372
400
|
npm run dev
|
|
373
401
|
|
|
374
402
|
# Run tests
|
|
@@ -386,6 +414,9 @@ npm run build
|
|
|
386
414
|
|
|
387
415
|
# Run built version
|
|
388
416
|
node dist/main.js --help
|
|
417
|
+
|
|
418
|
+
# Or use npm start (builds automatically)
|
|
419
|
+
npm start -- --help
|
|
389
420
|
```
|
|
390
421
|
|
|
391
422
|
> **Note:** The project uses Biome for linting and formatting.
|
|
@@ -399,7 +430,7 @@ node dist/main.js --help
|
|
|
399
430
|
|
|
400
431
|
## Troubleshooting
|
|
401
432
|
|
|
402
|
-
Run `
|
|
433
|
+
Run `npm start -- doctor` to automatically diagnose common issues.
|
|
403
434
|
|
|
404
435
|
### Common Issues
|
|
405
436
|
|
|
@@ -409,7 +440,30 @@ Run `npx tsx main.ts doctor` to automatically diagnose common issues.
|
|
|
409
440
|
Error: SteamCMD not found
|
|
410
441
|
```
|
|
411
442
|
|
|
412
|
-
**Solution:** Run `
|
|
443
|
+
**Solution:** Run `npm start -- install` to automatically download and install SteamCMD.
|
|
444
|
+
|
|
445
|
+
**Ubuntu/Debian:** If you get library errors, install 32-bit dependencies first:
|
|
446
|
+
```bash
|
|
447
|
+
sudo dpkg --add-architecture i386
|
|
448
|
+
sudo apt update
|
|
449
|
+
sudo apt install lib32gcc-s1 lib32stdc++6 libc6:i386 libcurl4:i386
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
#### SteamCMD installation crashes with "Cannot read properties of undefined (reading 'x')"
|
|
453
|
+
|
|
454
|
+
This was caused by a TypeScript/CommonJS interop bug in `@caleb-collar/steamcmd@1.1.0`. The package incorrectly tries to access `tar.default.x`, but the tar v7 package doesn't export a default (it exports the API directly).
|
|
455
|
+
|
|
456
|
+
**Solution (Fixed in v1.5.3):**
|
|
457
|
+
1. Update to v1.5.3 or later
|
|
458
|
+
2. Run `npm install` - this will automatically apply the patch that fixes the tar import
|
|
459
|
+
3. The patch changes `tar_1.default.x` to `tar_1.x` in the steamcmd package
|
|
460
|
+
4. Patches are stored in `patches/@caleb-collar+steamcmd+1.1.0.patch` and auto-applied via `patch-package`
|
|
461
|
+
|
|
462
|
+
**Manual fix (if needed):**
|
|
463
|
+
```bash
|
|
464
|
+
rm -rf node_modules package-lock.json
|
|
465
|
+
npm install
|
|
466
|
+
```
|
|
413
467
|
|
|
414
468
|
#### Valheim server not starting
|
|
415
469
|
|