diff --git a/core/installer/welcome/env.go b/core/installer/welcome/env.go
index 82fb3d5..31264fe 100644
--- a/core/installer/welcome/env.go
+++ b/core/installer/welcome/env.go
@@ -1,6 +1,7 @@
 package welcome
 
 import (
+	"context"
 	"embed"
 	"encoding/json"
 	"errors"
@@ -8,7 +9,6 @@
 	"html/template"
 	"io"
 	"io/fs"
-	"log"
 	"net"
 	"net/http"
 	"net/netip"
@@ -79,6 +79,7 @@
 }
 
 type EnvServer struct {
+	srv           *http.Server
 	port          int
 	ss            soft.Client
 	repo          soft.RepoIO
@@ -111,6 +112,7 @@
 	tm tasks.TaskManager,
 ) *EnvServer {
 	return &EnvServer{
+		nil,
 		port,
 		ss,
 		repo,
@@ -129,7 +131,7 @@
 	}
 }
 
-func (s *EnvServer) Start() {
+func (s *EnvServer) Start() error {
 	r := mux.NewRouter()
 	r.PathPrefix("/stat/").Handler(cachingHandler{http.FileServer(http.FS(statAssets))})
 	r.Path("/env/{key}").Methods("GET").HandlerFunc(s.monitorTask)
@@ -137,8 +139,19 @@
 	r.Path("/").Methods("GET").HandlerFunc(s.createEnvForm)
 	r.Path("/").Methods("POST").HandlerFunc(s.createEnv)
 	r.Path("/create-invitation").Methods("GET").HandlerFunc(s.createInvitation)
-	http.Handle("/", r)
-	log.Fatal(http.ListenAndServe(fmt.Sprintf(":%d", s.port), nil))
+	srv := &http.Server{
+		Addr:    fmt.Sprintf(":%d", s.port),
+		Handler: r,
+	}
+	s.srv = srv
+	if err := srv.ListenAndServe(); err != nil && !errors.Is(err, http.ErrServerClosed) {
+		return err
+	}
+	return nil
+}
+
+func (s *EnvServer) Stop() error {
+	return s.srv.Shutdown(context.Background())
 }
 
 func (s *EnvServer) monitorTask(w http.ResponseWriter, r *http.Request) {
diff --git a/core/installer/welcome/env_test.go b/core/installer/welcome/env_test.go
index 448f221..cec2458 100644
--- a/core/installer/welcome/env_test.go
+++ b/core/installer/welcome/env_test.go
@@ -386,6 +386,9 @@
 	if len(httpClient.counts) != 6 {
 		t.Fatal(httpClient.counts)
 	}
+	if err := s.Stop(); err != nil {
+		t.Fatal(err)
+	}
 }
 
 func debugFS(bfs billy.Filesystem, t *testing.T, files ...string) {
