diff --git a/packages/cli/src/cli/run.rs b/packages/cli/src/cli/run.rs index b9cd10027..55e254f1a 100644 --- a/packages/cli/src/cli/run.rs +++ b/packages/cli/src/cli/run.rs @@ -25,14 +25,16 @@ impl RunArgs { let devserver_ip = "127.0.0.1:8081".parse().unwrap(); let fullstack_ip = "127.0.0.1:8080".parse().unwrap(); + let mut open_address = None; if self.build_args.platform() == Platform::Web || self.build_args.fullstack { + open_address = Some(fullstack_ip); tracing::info!("Serving at: {}", fullstack_ip); } let mut runner = crate::serve::AppRunner::start(&krate); runner - .open(bundle, devserver_ip, Some(fullstack_ip), true) + .open(bundle, devserver_ip, open_address, Some(fullstack_ip), true) .await?; // Run the app, but mostly ignore all the other messages diff --git a/packages/cli/src/serve/handle.rs b/packages/cli/src/serve/handle.rs index 146538b5a..5d77f89f9 100644 --- a/packages/cli/src/serve/handle.rs +++ b/packages/cli/src/serve/handle.rs @@ -67,6 +67,7 @@ impl AppHandle { pub(crate) async fn open( &mut self, devserver_ip: SocketAddr, + open_address: Option, start_fullstack_on_address: Option, open_browser: bool, ) -> Result<()> { @@ -139,7 +140,7 @@ impl AppHandle { Platform::Web => { // Only the first build we open the web app, after that the user knows it's running if open_browser { - self.open_web(devserver_ip); + self.open_web(open_address.unwrap_or(devserver_ip)); } None diff --git a/packages/cli/src/serve/mod.rs b/packages/cli/src/serve/mod.rs index ea94da875..0f1661507 100644 --- a/packages/cli/src/serve/mod.rs +++ b/packages/cli/src/serve/mod.rs @@ -166,6 +166,7 @@ pub(crate) async fn serve_all(mut args: ServeArgs) -> Result<()> { .open( bundle, devserver.devserver_address(), + devserver.displayed_address(), devserver.proxied_server_address(), args.open.unwrap_or(false), ) diff --git a/packages/cli/src/serve/runner.rs b/packages/cli/src/serve/runner.rs index 597c47753..8c1ede569 100644 --- a/packages/cli/src/serve/runner.rs +++ b/packages/cli/src/serve/runner.rs @@ -97,6 +97,7 @@ impl AppRunner { &mut self, app: AppBundle, devserver_ip: SocketAddr, + open_address: Option, fullstack_address: Option, should_open_web: bool, ) -> Result<&AppHandle> { @@ -119,6 +120,7 @@ impl AppRunner { handle .open( devserver_ip, + open_address, fullstack_address, self.builds_opened == 0 && should_open_web, ) @@ -137,7 +139,12 @@ impl AppRunner { if let Some(runner) = self.running.as_mut() { runner.soft_kill().await; runner - .open(devserver.devserver_address(), fullstack_address, true) + .open( + devserver.devserver_address(), + devserver.displayed_address(), + fullstack_address, + true, + ) .await?; }