Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions docs/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,11 @@ Authentication stays separate because it contains a secret:
Run `devspace init` to create both files. `devspace config set publicBaseUrl
<url|null>` updates the JSONC document without discarding its comments.

DevSpace reads server configuration when `devspace serve` starts. After editing
`config.jsonc` or running `devspace config set`, restart the running server to
apply changes such as `workspaces.allowedRoots` or `server.publicBaseUrl`.
Changes on disk do not automatically update a running server.

## Complete example

```jsonc
Expand Down
26 changes: 26 additions & 0 deletions src/cli-config.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import assert from "node:assert/strict";
import { execFileSync } from "node:child_process";
import { mkdtempSync, rmSync } from "node:fs";
import { tmpdir } from "node:os";
import { join } from "node:path";
import { test } from "node:test";
import { loadDevspaceFiles } from "./user-config.js";
import { writeTestDevspaceConfig } from "./test-support/config.test.js";

test("config set tells users to restart the running server", () => {
const configDir = mkdtempSync(join(tmpdir(), "devspace-cli-config-test-"));
try {
const env = { ...process.env, ...writeTestDevspaceConfig(configDir) };
const stdout = execFileSync(
"node",
["--import", "tsx", "src/cli.ts", "config", "set", "publicBaseUrl", "https://example.com"],
{ encoding: "utf8", env },
);

assert.match(stdout, /Updated .*config\.jsonc/);
assert.match(stdout, /Restart `devspace serve` to apply this change/);
assert.equal(loadDevspaceFiles(env).config.server.publicBaseUrl, "https://example.com");
} finally {
rmSync(configDir, { recursive: true, force: true });
}
});
1 change: 1 addition & 0 deletions src/cli.ts
Original file line number Diff line number Diff line change
Expand Up @@ -446,6 +446,7 @@ function runConfigCommand(args: string[]): void {
normalizeOptionalPublicBaseUrl(value),
);
console.log(`Updated ${files.configPath}`);
console.log("Restart `devspace serve` to apply this change to a running server.");
}

async function runWorktreesCommand(args: string[]): Promise<void> {
Expand Down