diff --git a/core/port-allocator/.gitignore b/core/port-allocator/.gitignore
index ea6b1d9..62f1928 100644
--- a/core/port-allocator/.gitignore
+++ b/core/port-allocator/.gitignore
@@ -1 +1,2 @@
-server*
\ No newline at end of file
+server*
+port-allocator*
\ No newline at end of file
diff --git a/core/port-allocator/go.mod b/core/port-allocator/go.mod
index 4e1db75..a672f90 100644
--- a/core/port-allocator/go.mod
+++ b/core/port-allocator/go.mod
@@ -1,6 +1,6 @@
 module github.com/giolekva/pcloud/core/port-allocator
 
-replace github.com/giolekva/pcloud/core/installer => /Users/lekva/dev/src/pcloud/core/installer
+replace github.com/giolekva/pcloud/core/installer => ../installer
 
 go 1.22.0
 
diff --git a/core/port-allocator/go.sum b/core/port-allocator/go.sum
index ae2ebc8..390520e 100644
--- a/core/port-allocator/go.sum
+++ b/core/port-allocator/go.sum
@@ -51,8 +51,8 @@
 github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
 github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
 github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
-github.com/onsi/gomega v1.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8=
-github.com/onsi/gomega v1.30.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ=
+github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI=
+github.com/onsi/gomega v1.27.10/go.mod h1:RsS8tutOdbdgzbPtzzATp12yT7kM5I5aElG3evPbQ0M=
 github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4=
 github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI=
 github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
diff --git a/core/port-allocator/main.go b/core/port-allocator/main.go
index d99550b..6b4fd47 100644
--- a/core/port-allocator/main.go
+++ b/core/port-allocator/main.go
@@ -20,6 +20,10 @@
 	"golang.org/x/crypto/ssh"
 )
 
+const (
+	secretLength = 20
+)
+
 var port = flag.Int("port", 8080, "Port to listen on")
 var repoAddr = flag.String("repo-addr", "", "Git repository address where Helm releases are stored")
 var sshKey = flag.String("ssh-key", "", "Path to SHH key used to connect with Git repository")
@@ -280,7 +284,11 @@
 		http.Error(w, err.Error(), http.StatusInternalServerError)
 		return
 	}
-	secret := generateSecret()
+	secret, err := generateSecret()
+	if err != nil {
+		http.Error(w, err.Error(), http.StatusInternalServerError)
+		return
+	}
 	s.reserve[port] = secret
 	go func() {
 		time.Sleep(30 * time.Minute)
@@ -360,9 +368,13 @@
 	return soft.NewRepoIO(repo, signer)
 }
 
-func generateSecret() string {
-	// TODO(gio): implement
-	return "foo"
+func generateSecret() (string, error) {
+	b := make([]byte, secretLength)
+	_, err := rand.Read(b)
+	if err != nil {
+		return "", fmt.Errorf("error generating secret: %v", err)
+	}
+	return string(b), nil
 }
 
 func main() {
diff --git a/core/port-allocator/main_test.go b/core/port-allocator/main_test.go
index ce9d3ff..caf2d51 100644
--- a/core/port-allocator/main_test.go
+++ b/core/port-allocator/main_test.go
@@ -163,3 +163,11 @@
 		t.Fatalf("Expected %d, got %d", http.StatusConflict, resp.StatusCode)
 	}
 }
+
+func TestGenerateSecret(t *testing.T) {
+	secret, err := generateSecret()
+	if err != nil {
+		t.Fatalf("Error generating secret: %v", err)
+	}
+	t.Logf("Generated secret: %s", secret)
+}
