diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 3.0.9
+
+* Add runEnv: like run but uses $PORT [#334](https://github.com/yesodweb/wai/pull/334)
+
 ## 3.0.5.2
 
 * [Pass the Request to settingsOnException handlers when available. #326](https://github.com/yesodweb/wai/pull/326)
diff --git a/Network/Wai/Handler/Warp.hs b/Network/Wai/Handler/Warp.hs
--- a/Network/Wai/Handler/Warp.hs
+++ b/Network/Wai/Handler/Warp.hs
@@ -20,6 +20,7 @@
 module Network.Wai.Handler.Warp (
     -- * Run a Warp server
     run
+  , runEnv
   , runSettings
   , runSettingsSocket
   , runSettingsConnection
diff --git a/Network/Wai/Handler/Warp/Run.hs b/Network/Wai/Handler/Warp/Run.hs
--- a/Network/Wai/Handler/Warp/Run.hs
+++ b/Network/Wai/Handler/Warp/Run.hs
@@ -35,6 +35,7 @@
 import qualified Network.Wai.Handler.Warp.Timeout as T
 import Network.Wai.Handler.Warp.Types
 import Network.Wai.Internal (ResponseReceived (ResponseReceived))
+import System.Environment (getEnvironment)
 import System.IO.Error (isFullErrorType, ioeGetErrorType)
 
 #if WINDOWS
@@ -70,6 +71,23 @@
 -- 'defaultSettings'.
 run :: Port -> Application -> IO ()
 run p = runSettings defaultSettings { settingsPort = p }
+
+-- | Run an 'Application' on the port present in the @PORT@ environment variable
+--
+-- Uses the 'Port' given when the variable is unset.
+--
+-- Since 3.0.9
+runEnv :: Port -> Application -> IO ()
+runEnv p app = do
+    mp <- fmap (lookup "PORT") getEnvironment
+
+    maybe (run p app) runReadPort mp
+
+  where
+    runReadPort :: String -> IO ()
+    runReadPort sp = case reads sp of
+        ((p', _):_) -> run p' app
+        _ -> fail $ "Invalid value in $PORT: " ++ sp
 
 -- | Run an 'Application' with the given 'Settings'.
 runSettings :: Settings -> Application -> IO ()
diff --git a/warp.cabal b/warp.cabal
--- a/warp.cabal
+++ b/warp.cabal
@@ -1,5 +1,5 @@
 Name:                warp
-Version:             3.0.8
+Version:             3.0.9
 Synopsis:            A fast, light-weight web server for WAI applications.
 License:             MIT
 License-file:        LICENSE
