port from environment with fallback to 3000