diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -1,2 +1,17 @@
-import Distribution.Simple
-main = defaultMain
+import Distribution.PackageDescription (PackageDescription(extraSrcFiles))
+import Distribution.Simple (UserHooks(buildHook))
+import qualified Distribution.Simple as DS
+import Distribution.Simple.LocalBuildInfo (LocalBuildInfo)
+import Distribution.Simple.Setup (BuildFlags)
+import qualified System.Process as Proc
+import qualified System.Directory as Dir
+import Control.Monad (when, void)
+
+buildHook' :: PackageDescription -> LocalBuildInfo -> UserHooks -> BuildFlags -> IO ()
+buildHook' packageDesc localBuildInfo userHooks buildFlags = do
+    exists <- Dir.doesFileExist "./app/dist/app.bundle.js"
+    when (not exists) $ void $ Proc.system "cd app && npm install && npm run build-js"
+    (buildHook DS.simpleUserHooks) packageDesc localBuildInfo userHooks buildFlags
+
+main :: IO ()
+main = DS.defaultMainWithHooks DS.simpleUserHooks{buildHook = buildHook'}
diff --git a/Yesod/JobQueue.hs b/Yesod/JobQueue.hs
--- a/Yesod/JobQueue.hs
+++ b/Yesod/JobQueue.hs
@@ -87,6 +87,10 @@
     -- | Job Handler
     runJob :: (MonadBaseControl IO m, MonadIO m)
               => master -> JobType master -> ReaderT master m ()
+
+    -- | connection info for redis
+    queueConnectInfo :: master -> R.ConnectInfo
+    queueConnectInfo _ = R.defaultConnectInfo
     
     -- | queue key name for redis
     queueKey :: master -> ByteString
@@ -125,7 +129,7 @@
 startThread :: (YesodJobQueue master, MonadBaseControl IO m, MonadIO m) => master -> ThreadNum -> m ()
 startThread m tNo = do
     liftIO $ forkIO $ do
-        conn <- R.connect R.defaultConnectInfo
+        conn <- R.connect $ queueConnectInfo m
         R.runRedis conn $ do
             forever $ do
                 emr <- R.blpop [queueKey m] 600
@@ -156,7 +160,7 @@
 enqueue m jt = do
     time <- getCurrentTime
     let item = JobQueueItem (show jt) time
-    conn <- liftIO $ R.connect R.defaultConnectInfo
+    conn <- liftIO $ R.connect $ queueConnectInfo m
     R.runRedis conn $ do
         R.rpush (queueKey m) [BSC.pack $ show item]
     return ()
@@ -164,7 +168,7 @@
 -- | Get all job in the queue
 listQueue :: YesodJobQueue master => master -> IO (Either String [JobQueueItem])
 listQueue m = do
-    conn <- R.connect R.defaultConnectInfo
+    conn <- R.connect $ queueConnectInfo m
     exs <- R.runRedis conn $ do
         R.lrange (queueKey m) 0 (-1)
     case exs of
diff --git a/app/dist/app.bundle.js b/app/dist/app.bundle.js
# file too large to diff: app/dist/app.bundle.js
diff --git a/example/Main.hs b/example/Main.hs
--- a/example/Main.hs
+++ b/example/Main.hs
@@ -7,7 +7,7 @@
 import Database.Persist.Sqlite
 --import Control.Monad.Trans.Resource (runResourceT)
 import Control.Monad.Logger (runStderrLoggingT)
-
+-- import qualified Database.Redis as R
 
 -- Yesod Persist settings (Nothing special here)
 share [mkPersist sqlSettings, mkMigrate "migrateAll"] [persistLowerCase|
@@ -57,6 +57,9 @@
         putStrLn "send norification!"
     getClassInformation app = [jobQueueInfo app, schedulerInfo app]
     -- jobManagerJSUrl _ = "http://localhost:3001/dist/app.bundle.js" -- use for development with "npm run bs"
+    -- queueConnectInfo _ = R.defaultConnectInfo
+    --                      {R.connectHost = "127.0.0.1"
+    --                      , R.connectPort = R.PortNumber 6379}
 
 instance YesodJobQueueScheduler App  where
     getJobSchedules _ = [("* * * * *", AggregationUser)
diff --git a/yesod-job-queue.cabal b/yesod-job-queue.cabal
--- a/yesod-job-queue.cabal
+++ b/yesod-job-queue.cabal
@@ -1,5 +1,5 @@
 name:                yesod-job-queue
-version:             0.2.0.0
+version:             0.2.0.1
 synopsis:            Background jobs library for Yesod.
 description:
   Background jobs library for Yesod
@@ -17,7 +17,7 @@
 maintainer:          nakaji.dayo@gmail.com
 copyright:           2016 Daishi Nakajima
 category:            Web
-build-type:          Simple
+build-type:          Custom
 extra-source-files: app/dist/app.bundle.js
 cabal-version:       >=1.10
 
@@ -84,6 +84,7 @@
                 , resourcet
                 , monad-logger
                 , classy-prelude-yesod
+                , hedis
 
   ghc-options:    -threaded -O2 -rtsopts -with-rtsopts=-N
   default-language:    Haskell2010
