diff --git a/Hledger/Web/AppRun.hs b/Hledger/Web/AppRun.hs
--- a/Hledger/Web/AppRun.hs
+++ b/Hledger/Web/AppRun.hs
@@ -53,7 +53,7 @@
   let Right j = ej
   let a = App{
               getStatic=static Hledger.Web.Settings.staticdir
-             ,appRoot="http://localhost:5002"
+             ,appRoot="http://demo.hledger.org:5001"
              ,appOpts=defwebopts{cliopts_=defcliopts{file_=Just f}}
              ,appArgs=[]
              ,appJournal=j
diff --git a/Hledger/Web/Options.hs b/Hledger/Web/Options.hs
new file mode 100644
--- /dev/null
+++ b/Hledger/Web/Options.hs
@@ -0,0 +1,71 @@
+{-|
+
+-}
+
+module Hledger.Web.Options
+where
+import Data.Maybe
+import Data.Text (unpack)
+import System.Console.CmdArgs
+import System.Console.CmdArgs.Explicit
+
+import Hledger.Cli hiding (progname,progversion)
+import qualified Hledger.Cli (progname)
+
+import Hledger.Web.Settings
+
+progname = Hledger.Cli.progname ++ "-web"
+progversion = progversionstr progname
+
+defbaseurl = unpack defapproot
+defbaseurl' = (reverse $ drop 4 $ reverse defbaseurl) ++ "PORT"
+
+webflags = [
+  flagReq ["base-url"]  (\s opts -> Right $ setopt "base-url" s opts) "URL" ("set the base url (default: "++defbaseurl'++")")
+ ,flagReq ["port"]  (\s opts -> Right $ setopt "port" s opts) "PORT" ("listen on this tcp port (default: "++show defport++")")
+ ]
+ 
+webmode =  (mode "hledger-web" [("command","web")]
+            "start serving the hledger web interface"
+            commandargsflag []){
+              modeGroupFlags = Group {
+                                groupUnnamed = webflags
+                               ,groupHidden = []
+                               ,groupNamed = [(generalflagstitle, generalflags1)]
+                               }
+             ,modeHelpSuffix=[
+                  -- "Reads your ~/.hledger.journal file, or another specified by $LEDGER_FILE or -f, and starts the full-window curses ui."
+                 ]
+           }
+
+-- hledger-web options, used in hledger-web and above
+data WebOpts = WebOpts {
+     base_url_ :: String
+    ,port_     :: Int
+    ,cliopts_  :: CliOpts
+ } deriving (Show)
+
+defwebopts = WebOpts
+    def
+    def
+    def
+
+-- instance Default WebOpts where def = defwebopts
+
+toWebOpts :: RawOpts -> IO WebOpts
+toWebOpts rawopts = do
+  cliopts <- toCliOpts rawopts
+  return defwebopts {
+              base_url_ = fromMaybe defbaseurl $ maybestringopt "base-url" rawopts
+             ,port_ = fromMaybe defport $ maybeintopt "port" rawopts
+             ,cliopts_   = cliopts
+             }
+
+checkWebOpts :: WebOpts -> IO WebOpts
+checkWebOpts opts = do
+  checkCliOpts $ cliopts_ opts
+  return opts
+
+getHledgerWebOpts :: IO WebOpts
+getHledgerWebOpts = processArgs webmode >>= return . decodeRawOpts >>= toWebOpts >>= checkWebOpts
+
diff --git a/hledger-web.cabal b/hledger-web.cabal
--- a/hledger-web.cabal
+++ b/hledger-web.cabal
@@ -1,5 +1,5 @@
 name:           hledger-web
-version: 0.15
+version: 0.15.1
 category:       Finance
 synopsis:       A web interface for the hledger accounting tool.
 description:    
@@ -52,6 +52,7 @@
                      Hledger.Web.App
                      Hledger.Web.AppRun
                      Hledger.Web.EmbeddedFiles
+                     Hledger.Web.Options
                      Hledger.Web.Settings
                      Hledger.Web.StaticFiles
                      Hledger.Web.Handlers
@@ -84,16 +85,16 @@
                  ,file-embed == 0.0.*
                  ,template-haskell >= 2.4 && < 2.6
                  -- ,yesod >= 0.8 && < 0.9
-                 ,yesod-core   >= 0.8     && < 0.9
+                 ,yesod-core   >= 0.8 && < 0.9
                  ,yesod-form   == 0.1.*
-                 ,yesod-json
-                 ,yesod-static == 0.1.0
+                 ,yesod-json   == 0.1.*
+                 ,yesod-static == 0.1.*
                  ,aeson == 0.3.*
                  ,hamlet == 0.8.*
                  ,transformers
-                 ,wai
-                 ,wai-extra == 0.4.*
-                 ,warp
+                 ,wai < 0.5
+                 ,wai-extra < 0.5
+                 ,warp < 0.5
                  -- , blaze-builder
                  -- , web-routes
 
@@ -108,6 +109,7 @@
                      Hledger.Web
                      Hledger.Web.App
                      Hledger.Web.EmbeddedFiles
+                     Hledger.Web.Options
                      Hledger.Web.Settings
                      Hledger.Web.StaticFiles
                      Hledger.Web.Handlers
