@@ -7,14 +7,12 @@ import { Server } from "../../server/server"
77import { cmd } from "./cmd"
88import { withNetworkOptions , resolveNetworkOptions } from "../network"
99import { Flag } from "../../flag/flag"
10- import { Workspace } from "../../control-plane/workspace"
11- import { Project } from "../../project"
12- import { Installation } from "../../installation"
1310import { PushRelay } from "../../server/push-relay"
1411import { Log } from "../../util"
1512import { Global } from "../../global"
1613// dynamic import: static `import * as` of CJS package triggers Bun bundler splitting bug
1714import type * as QRCodeType from "qrcode"
15+ import { bootstrap } from "../bootstrap"
1816
1917const log = Log . create ( { service : "serve" } )
2018
@@ -217,7 +215,7 @@ export const ServeCommand = cmd({
217215 } ) ,
218216 describe : "starts a headless opencode server" ,
219217 handler : async ( args ) => {
220- const opts = await resolveNetworkOptions ( args )
218+ const networkOptions = await resolveNetworkOptions ( args )
221219 const relayURL = (
222220 args [ "relay-url" ] ??
223221 process . env . OPENCODE_EXPERIMENTAL_PUSH_RELAY_URL ??
@@ -233,7 +231,7 @@ export const ServeCommand = cmd({
233231 . split ( "," )
234232 . map ( ( item ) => item . trim ( ) )
235233 . filter ( Boolean )
236- const tailscaleAdvertiseHost = readTailscaleAdvertiseHost ( opts . hostname )
234+ const tailscaleAdvertiseHost = readTailscaleAdvertiseHost ( networkOptions . hostname )
237235 const advertiseHosts = [
238236 ...new Set ( [
239237 ...advertiseHostsFromArg ,
@@ -247,7 +245,7 @@ export const ServeCommand = cmd({
247245 const connectQR = Boolean ( args [ "connect-qr" ] )
248246
249247 if ( connectQR ) {
250- const pairHosts = hosts ( opts . hostname , opts . port > 0 ? opts . port : 4096 , advertiseHosts , false )
248+ const pairHosts = hosts ( networkOptions . hostname , networkOptions . port > 0 ? networkOptions . port : 4096 , advertiseHosts , false )
251249 if ( ! pairHosts . length ) {
252250 console . log ( "connect qr mode requires at least one valid advertised host" )
253251 return
@@ -270,6 +268,7 @@ export const ServeCommand = cmd({
270268 console . log ( "Warning: OPENCODE_SERVER_PASSWORD is not set; server is unsecured." )
271269 }
272270
271+ const opts = await bootstrap ( process . cwd ( ) , ( ) => resolveNetworkOptions ( args ) )
273272 const server = await Server . listen ( opts )
274273 console . log ( `opencode server listening on http://${ server . hostname } :${ server . port } ` )
275274
0 commit comments