diff --git a/garden-service/src/commands/serve.ts b/garden-service/src/commands/serve.ts index 03bf9f6a26..c0d3ccf6f4 100644 --- a/garden-service/src/commands/serve.ts +++ b/garden-service/src/commands/serve.ts @@ -11,14 +11,14 @@ import { LoggerType } from "../logger/logger" import { IntegerParameter } from "./base" import { Command, CommandResult, CommandParams } from "./base" import { sleep } from "../util/util" -import { startServer } from "../server/server" +import { startServer, DEFAULT_PORT } from "../server/server" const serveArgs = {} const serveOpts = { port: new IntegerParameter({ help: `The port number for the Garden service to listen on.`, - defaultValue: 9777, + defaultValue: DEFAULT_PORT, }), } diff --git a/garden-service/src/process.ts b/garden-service/src/process.ts index bccac3df2f..74c400a204 100644 --- a/garden-service/src/process.ts +++ b/garden-service/src/process.ts @@ -144,7 +144,9 @@ export async function processModules( // Experimental HTTP API and dashboard server. if (process.env.GARDEN_ENABLE_SERVER === "1") { - await startServer(garden, log) + // allow overriding automatic port picking + const port = Number(process.env.GARDEN_SERVER_PORT) || undefined + await startServer(garden, log, port) } await restartPromise diff --git a/garden-service/src/server/server.ts b/garden-service/src/server/server.ts index 1e7ac36605..b6b6b9b30b 100644 --- a/garden-service/src/server/server.ts +++ b/garden-service/src/server/server.ts @@ -24,6 +24,8 @@ export const DASHBOARD_BUILD_PATH = resolve( isPkg ? process.execPath : __dirname, "..", "..", "..", "garden-dashboard", "build", ) +export const DEFAULT_PORT = 9777 + /** * Start an HTTP server that exposes commands and events for the given Garden instance. *