diff --git a/apps/echo/main.go b/apps/echo/main.go
index 9c46de6..81b5eb8 100644
--- a/apps/echo/main.go
+++ b/apps/echo/main.go
@@ -6,6 +6,8 @@
 	"io"
 	"log"
 	"net"
+	"os"
+	"strconv"
 )
 
 var port = flag.Int("port", 8080, "port to listen on")
@@ -22,10 +24,19 @@
 func main() {
 	flag.Parse()
 
+	// Check for environment variable first
+	if envPort := os.Getenv("DODO_PORT_ECHO"); envPort != "" {
+		p, err := strconv.Atoi(envPort)
+		if err != nil {
+			log.Fatalf("Invalid DODO_PORT_ECHO value %s: %s", envPort, err)
+		}
+		*port = p
+	}
+
 	// Listen on TCP port from flag
 	listener, err := net.Listen("tcp", fmt.Sprintf(":%d", *port))
 	if err != nil {
-		log.Fatalf("Failed to start server: %v", err)
+		log.Fatalf("Failed to start server: %s", err)
 	}
 	defer listener.Close()
 	fmt.Printf("Echo server listening on :%d\n", *port)
@@ -34,7 +45,7 @@
 		// Accept incoming connections
 		conn, err := listener.Accept()
 		if err != nil {
-			log.Printf("Failed to accept connection: %v", err)
+			log.Printf("Failed to accept connection: %s", err)
 			continue
 		}
 		// Handle each connection in a separate goroutine
@@ -42,7 +53,7 @@
 			remoteAddr := c.RemoteAddr().String()
 			log.Printf("New connection from %s", remoteAddr)
 			if err := handleConnection(c); err != nil && err != io.EOF {
-				log.Printf("Error handling connection from %s: %v", remoteAddr, err)
+				log.Printf("Error handling connection from %s: %s", remoteAddr, err)
 			}
 			log.Printf("Connection closed from %s", remoteAddr)
 		}(conn)
@@ -54,7 +65,7 @@
 
 	// Send welcome message
 	if _, err := conn.Write([]byte(welcomeMessage)); err != nil {
-		return fmt.Errorf("sending welcome message: %w", err)
+		return fmt.Errorf("sending welcome message: %s", err)
 	}
 
 	// Create a buffer for reading data
@@ -68,7 +79,7 @@
 		}
 		// Echo the data back to the client
 		if _, err = conn.Write(buffer[:n]); err != nil {
-			return fmt.Errorf("writing to connection: %w", err)
+			return fmt.Errorf("writing to connection: %s", err)
 		}
 	}
 }
\ No newline at end of file
