diff --git a/CHANGES.md b/CHANGES.md
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,11 @@
+## 0.4.1.0 (2024-07-31)
+
+* Support various newer GHCs by expanding bounds.
+
+## 0.4.0.16 (2020-??-??)
+
+* TBD.
+
 ## 0.4.0.15 (2018-03-20)
 
  * GHC 8.4 support.
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# EKG: Remote monitoring of running processes over HTTP [![Hackage version](https://img.shields.io/hackage/v/ekg.svg?label=Hackage)](https://hackage.haskell.org/package/ekg) [![Build Status](https://secure.travis-ci.org/tibbe/ekg.svg?branch=master)](http://travis-ci.org/tibbe/ekg)
+# EKG: Remote monitoring of running processes over HTTP [![Hackage version](https://img.shields.io/hackage/v/ekg.svg?label=Hackage)](https://hackage.haskell.org/package/ekg) [![Build status](https://github.com/l0negamer/ekg/actions/workflows/haskell-ci.yml/badge.svg)](https://github.com/l0negamer/ekg/actions/workflows/haskell-ci.yml)
 
 This library lets you remotely monitor a running process over HTTP.
 It provides a simple way to integrate a monitoring server into any
@@ -45,14 +45,8 @@
 # Get involved!
 
 Please report bugs via the
-[GitHub issue tracker](https://github.com/tibbe/ekg/issues).
-
-Master [git repository](https://github.com/tibbe/ekg):
-
-    git clone https://github.com/tibbe/ekg.git
-
+[GitHub issue tracker](https://github.com/l0negamer/ekg/issues).
 
-# Authors
+Master [git repository](https://github.com/l0negamer/ekg):
 
-This library is written and maintained by Johan Tibell,
-<johan.tibell@gmail.com>.
+    git clone https://github.com/l0negamer/ekg.git
diff --git a/System/Remote/Monitoring.hs b/System/Remote/Monitoring.hs
--- a/System/Remote/Monitoring.hs
+++ b/System/Remote/Monitoring.hs
@@ -33,7 +33,9 @@
     , serverThreadId
     , serverMetricStore
     , forkServer
+    , forkServerNoHostname
     , forkServerWith
+    , forkServerNoHostnameWith
 
       -- * Defining metrics
       -- $userdefined
@@ -205,8 +207,20 @@
 forkServer host port = do
     store <- Metrics.newStore
     Metrics.registerGcMetrics store
-    forkServerWith store host port
+    forkServerMaybeHostnameWith store (Just host) port
 
+-- | Create a server with prefined metrics from
+-- 'System.Metrics.registerGcMetrics', listening on all interfaces.
+-- If you are running EKG on a private network (including virtual
+-- private network), it may be appropriate to bind to all interfaces,
+-- not only localhost.
+forkServerNoHostname :: Int           -- ^ Port to listen on (e.g. 8000)
+                     -> IO Server
+forkServerNoHostname port = do
+    store <- Metrics.newStore
+    Metrics.registerGcMetrics store
+    forkServerMaybeHostnameWith store Nothing port
+
 -- | Start an HTTP server in a new thread.  The server replies to GET
 -- requests to the given host and port.  The host argument can be
 -- either a numeric network address (dotted quad for IPv4,
@@ -230,7 +244,23 @@
                -> S.ByteString   -- ^ Host to listen on (e.g. \"localhost\")
                -> Int            -- ^ Port to listen on (e.g. 8000)
                -> IO Server
-forkServerWith store host port = do
+forkServerWith store host port =
+    forkServerMaybeHostnameWith store (Just host) port
+
+-- | Start an HTTP server in a new thread, with the specified metrics
+-- store, listening on all interfaces.  Other than accepting requests
+-- to any hostname, this is the same as `forkServerWith`.
+forkServerNoHostnameWith :: Metrics.Store  -- ^ Metric store
+                         -> Int            -- ^ Port to listen on (e.g. 8000)
+                         -> IO Server
+forkServerNoHostnameWith store port =
+    forkServerMaybeHostnameWith store Nothing port
+
+forkServerMaybeHostnameWith :: Metrics.Store  -- ^ Metric store
+                            -> Maybe S.ByteString   -- ^ Host to listen on (e.g. \"localhost\")
+                            -> Int            -- ^ Port to listen on (e.g. 8000)
+                            -> IO Server
+forkServerMaybeHostnameWith store host port = do
     Metrics.registerCounter "ekg.server_timestamp_ms" getTimeMs store
     me <- myThreadId
     tid <- withSocketsDo $ forkFinally (startServer store host port) $ \ r ->
diff --git a/System/Remote/Snap.hs b/System/Remote/Snap.hs
--- a/System/Remote/Snap.hs
+++ b/System/Remote/Snap.hs
@@ -49,20 +49,23 @@
         userError $ "unsupported address: " ++ S8.unpack host
 
 startServer :: Store
-            -> S.ByteString  -- ^ Host to listen on (e.g. \"localhost\")
+            -> Maybe S.ByteString  -- ^ Host to listen on (e.g. \"localhost\")
             -> Int           -- ^ Port to listen on (e.g. 8000)
             -> IO ()
-startServer store host port = do
+startServer store m_host port = do
     -- Snap doesn't allow for non-numeric host names in
     -- 'Snap.setBind'. We work around that limitation by converting a
     -- possible non-numeric host name to a numeric address.
-    numericHost <- getNumericHostAddress host
+    setBind <- case m_host of
+        Just host -> do
+            numericHost <- getNumericHostAddress host
+            return $ Config.setHostname host . Config.setBind numericHost
+        Nothing -> return id
     let conf = Config.setVerbose False $
                Config.setErrorLog Config.ConfigNoLog $
                Config.setAccessLog Config.ConfigNoLog $
                Config.setPort port $
-               Config.setHostname host $
-               Config.setBind numericHost $
+               setBind $
                Config.defaultConfig
     httpServe conf (monitor store)
 
diff --git a/ekg.cabal b/ekg.cabal
--- a/ekg.cabal
+++ b/ekg.cabal
@@ -1,31 +1,57 @@
-name:                ekg
-version:             0.4.0.15
-cabal-version:       >= 1.8
-synopsis:            Remote monitoring of processes
+name:               ekg
+version:            0.4.1.0
+cabal-version:      >=1.10
+synopsis:           Remote monitoring of processes
 description:
   This library lets you remotely monitor a running process over HTTP.
   It provides a simple way to integrate a monitoring server into any
   application.
-homepage:            https://github.com/tibbe/ekg
-bug-reports:         https://github.com/tibbe/ekg/issues
-license:             BSD3
-license-file:        LICENSE
-author:              Johan Tibell
-maintainer:          Johan Tibell <johan.tibell@gmail.com>,
-                     Mikhail Glushenkov <mikhail.glushenkov@gmail.com>
-category:            System, Network
-build-type:          Simple
-data-files:          assets/index.html assets/monitor.js assets/monitor.css
-                     assets/jquery.flot.min.js assets/jquery-1.6.4.min.js
-                     assets/bootstrap-1.4.0.min.css
-                     assets/chart_line_add.png assets/cross.png
-extra-source-files:  LICENSE.icons LICENSE.javascript README.md
-                     assets/jquery-1.6.4.js assets/jquery.flot.js
-                     assets/bootstrap-1.4.0.css
-                     examples/Basic.hs CHANGES.md
-tested-with:         GHC == 8.4.1,  GHC == 8.2.2, GHC == 8.0.2,
-                     GHC == 7.10.3, GHC == 7.8.4, GHC == 7.6.3
 
+homepage:           https://github.com/l0negamer/ekg
+bug-reports:        https://github.com/l0negamer/ekg/issues
+license:            BSD3
+license-file:       LICENSE
+author:             Johan Tibell
+maintainer:
+  Johan Tibell <johan.tibell@gmail.com>,
+  Mikhail Glushenkov <mikhail.glushenkov@gmail.com>
+
+category:           System, Network
+build-type:         Simple
+data-files:
+  assets/bootstrap-1.4.0.min.css
+  assets/chart_line_add.png
+  assets/cross.png
+  assets/index.html
+  assets/jquery-1.6.4.min.js
+  assets/jquery.flot.min.js
+  assets/monitor.css
+  assets/monitor.js
+
+extra-source-files:
+  assets/bootstrap-1.4.0.css
+  assets/jquery-1.6.4.js
+  assets/jquery.flot.js
+  CHANGES.md
+  examples/Basic.hs
+  LICENSE.icons
+  LICENSE.javascript
+  README.md
+
+tested-with:
+  GHC ==8.0.2
+   || ==8.2.2
+   || ==8.4.4
+   || ==8.6.5
+   || ==8.8.3
+   || ==8.10.7
+   || ==9.0.2
+   || ==9.2.8
+   || ==9.4.8
+   || ==9.6.4
+   || ==9.6.6
+   || ==9.8.2
+
 library
   exposed-modules:
     System.Remote.Counter
@@ -39,22 +65,23 @@
     System.Remote.Snap
 
   build-depends:
-    aeson >= 0.4 && < 1.3,
-    base >= 4.5 && < 4.12,
-    bytestring < 1.0,
-    ekg-core >= 0.1 && < 0.2,
-    ekg-json >= 0.1 && < 0.2,
-    filepath < 1.5,
-    network < 2.7,
-    snap-core < 1.1,
-    snap-server < 1.2,
-    text < 1.3,
-    time < 1.9,
-    transformers < 0.6,
-    unordered-containers < 0.3
+      aeson                 >=0.4 && <1.6  || >=2.0 && <2.3
+    , base                  >=4.5 && <4.20
+    , bytestring            <1.0
+    , ekg-core              >=0.1 && <0.2
+    , ekg-json              >=0.1 && <0.2
+    , filepath              <1.5
+    , network               <3.3
+    , snap-core             <1.1
+    , snap-server           <1.2
+    , text                  <2.2
+    , time                  <1.13
+    , transformers          <0.7
+    , unordered-containers  <0.3
 
-  ghc-options: -Wall
+  ghc-options:      -Wall
+  default-language: Haskell2010
 
 source-repository head
   type:     git
-  location: https://github.com/tibbe/ekg.git
+  location: https://github.com/l0negamer/ekg.git
