Installer: Refactor and give each searver its own directory

Change-Id: I1db2929e7a35b6f92022dec0c6506d68e0297563
diff --git a/core/installer/cmd/app_manager.go b/core/installer/cmd/app_manager.go
index 16ac83a..afc7d32 100644
--- a/core/installer/cmd/app_manager.go
+++ b/core/installer/cmd/app_manager.go
@@ -7,9 +7,9 @@
 	"golang.org/x/crypto/ssh"
 
 	"github.com/giolekva/pcloud/core/installer"
+	"github.com/giolekva/pcloud/core/installer/server/appmanager"
 	"github.com/giolekva/pcloud/core/installer/soft"
 	"github.com/giolekva/pcloud/core/installer/tasks"
-	"github.com/giolekva/pcloud/core/installer/welcome"
 
 	"github.com/go-git/go-billy/v5/memfs"
 	"github.com/spf13/cobra"
@@ -143,7 +143,7 @@
 	if err != nil {
 		return err
 	}
-	s, err := welcome.NewAppManagerServer(
+	s, err := appmanager.NewServer(
 		appManagerFlags.port,
 		repoIO,
 		m,
diff --git a/core/installer/cmd/dodo_app.go b/core/installer/cmd/dodo_app.go
index 7954690..562627c 100644
--- a/core/installer/cmd/dodo_app.go
+++ b/core/installer/cmd/dodo_app.go
@@ -12,9 +12,9 @@
 	"os"
 
 	"github.com/giolekva/pcloud/core/installer"
+	dodoapp "github.com/giolekva/pcloud/core/installer/server/dodo-app"
 	"github.com/giolekva/pcloud/core/installer/soft"
 	"github.com/giolekva/pcloud/core/installer/tasks"
-	"github.com/giolekva/pcloud/core/installer/welcome"
 
 	_ "github.com/ncruces/go-sqlite3"
 	_ "github.com/ncruces/go-sqlite3/driver"
@@ -172,14 +172,14 @@
 	if err != nil {
 		return err
 	}
-	if ok, err := softClient.RepoExists(welcome.ConfigRepoName); err != nil {
+	if ok, err := softClient.RepoExists(dodoapp.ConfigRepoName); err != nil {
 		return err
 	} else if !ok {
-		if err := softClient.AddRepository(welcome.ConfigRepoName); err != nil {
+		if err := softClient.AddRepository(dodoapp.ConfigRepoName); err != nil {
 			return err
 		}
 	}
-	configRepo, err := softClient.GetRepo(welcome.ConfigRepoName)
+	configRepo, err := softClient.GetRepo(dodoapp.ConfigRepoName)
 	if err != nil {
 		return err
 	}
@@ -187,24 +187,24 @@
 	if err != nil {
 		return err
 	}
-	st, err := welcome.NewStore(configRepo, db)
+	st, err := dodoapp.NewStore(configRepo, db)
 	if err != nil {
 		return err
 	}
-	var nf welcome.NetworkFilter
+	var nf dodoapp.NetworkFilter
 	if len(dodoAppFlags.networks) == 0 {
-		nf = welcome.NewNoNetworkFilter()
+		nf = dodoapp.NewNoNetworkFilter()
 	} else {
-		nf = welcome.NewAllowListFilter(dodoAppFlags.networks)
+		nf = dodoapp.NewAllowListFilter(dodoAppFlags.networks)
 	}
 	if dodoAppFlags.external {
-		nf = welcome.NewCombinedFilter(welcome.NewNetworkFilterByOwner(st), nf)
+		nf = dodoapp.NewCombinedFilter(dodoapp.NewNetworkFilterByOwner(st), nf)
 	}
-	var ug welcome.UserGetter
+	var ug dodoapp.UserGetter
 	if dodoAppFlags.external {
-		ug = welcome.NewExternalUserGetter()
+		ug = dodoapp.NewExternalUserGetter()
 	} else {
-		ug = welcome.NewInternalUserGetter()
+		ug = dodoapp.NewInternalUserGetter()
 	}
 	reconciler := &tasks.SequentialReconciler{
 		[]tasks.Reconciler{
@@ -214,7 +214,7 @@
 	}
 	vpnKeyGen := installer.NewHeadscaleAPIClient(dodoAppFlags.headscaleAPIAddr)
 	cnc := &proxyConfigurator{dodoAppFlags.envAppManagerAddr}
-	s, err := welcome.NewDodoAppServer(
+	s, err := dodoapp.NewServer(
 		st,
 		nf,
 		ug,
diff --git a/core/installer/cmd/env_manager.go b/core/installer/cmd/env_manager.go
index c0ea8e8..483211e 100644
--- a/core/installer/cmd/env_manager.go
+++ b/core/installer/cmd/env_manager.go
@@ -8,9 +8,9 @@
 	"github.com/giolekva/pcloud/core/installer"
 	"github.com/giolekva/pcloud/core/installer/dns"
 	"github.com/giolekva/pcloud/core/installer/http"
+	"github.com/giolekva/pcloud/core/installer/server/env"
 	"github.com/giolekva/pcloud/core/installer/soft"
 	"github.com/giolekva/pcloud/core/installer/tasks"
-	"github.com/giolekva/pcloud/core/installer/welcome"
 )
 
 var envManagerFlags struct {
@@ -82,7 +82,7 @@
 		return err
 	}
 	httpClient := http.NewClient()
-	s := welcome.NewEnvServer(
+	s := env.NewEnvServer(
 		envManagerFlags.port,
 		ss,
 		repoIO,
diff --git a/core/installer/cmd/launcher.go b/core/installer/cmd/launcher.go
index 71decb6..20b8d26 100644
--- a/core/installer/cmd/launcher.go
+++ b/core/installer/cmd/launcher.go
@@ -7,8 +7,8 @@
 	"os"
 
 	"github.com/giolekva/pcloud/core/installer"
+	"github.com/giolekva/pcloud/core/installer/server/launcher"
 	"github.com/giolekva/pcloud/core/installer/soft"
-	"github.com/giolekva/pcloud/core/installer/welcome"
 
 	"github.com/spf13/cobra"
 	"golang.org/x/crypto/ssh"
@@ -84,10 +84,10 @@
 	if err != nil {
 		return err
 	}
-	s, err := welcome.NewLauncherServer(
+	s, err := launcher.NewLauncherServer(
 		launcherFlags.port,
 		fmt.Sprintf("https://%s", authBaseAddr.Host),
-		&welcome.AppManagerDirectory{AppManager: appManager},
+		&launcher.AppManagerDirectory{AppManager: appManager},
 	)
 	if err != nil {
 		return fmt.Errorf("failed to create LauncherServer: %v", err)
diff --git a/core/installer/cmd/welcome.go b/core/installer/cmd/welcome.go
index d754ad3..32d5c42 100644
--- a/core/installer/cmd/welcome.go
+++ b/core/installer/cmd/welcome.go
@@ -4,8 +4,8 @@
 	"os"
 
 	"github.com/giolekva/pcloud/core/installer"
+	"github.com/giolekva/pcloud/core/installer/server/welcome"
 	"github.com/giolekva/pcloud/core/installer/soft"
-	"github.com/giolekva/pcloud/core/installer/welcome"
 	"github.com/spf13/cobra"
 	"golang.org/x/crypto/ssh"
 )