diff --git a/archivebox/cli/archivebox_server.py b/archivebox/cli/archivebox_server.py
index b7f970d0..dbacf7e5 100644
--- a/archivebox/cli/archivebox_server.py
+++ b/archivebox/cli/archivebox_server.py
@@ -10,10 +10,9 @@ from typing import Optional, List, IO
 
 from ..main import server
 from ..util import docstring
-from ..config import OUTPUT_DIR
+from ..config import OUTPUT_DIR, BIND_ADDR
 from ..logging_util import SmartFormatter, reject_stdin
 
-
 @docstring(server.__doc__)
 def main(args: Optional[List[str]]=None, stdin: Optional[IO]=None, pwd: Optional[str]=None) -> None:
     parser = argparse.ArgumentParser(
@@ -26,7 +25,7 @@ def main(args: Optional[List[str]]=None, stdin: Optional[IO]=None, pwd: Optional
         'runserver_args',
         nargs='*',
         type=str,
-        default=None,
+        default=[BIND_ADDR],
         help='Arguments to pass to Django runserver'
     )
     parser.add_argument(
diff --git a/archivebox/config/__init__.py b/archivebox/config/__init__.py
index c53c5eec..70b0fea8 100644
--- a/archivebox/config/__init__.py
+++ b/archivebox/config/__init__.py
@@ -62,6 +62,7 @@ CONFIG_DEFAULTS: Dict[str, ConfigDefaultDict] = {
 
     'SERVER_CONFIG': {
         'SECRET_KEY':               {'type': str,   'default': None},
+        'BIND_ADDR':                {'type': str,   'default': lambda c: ['127.0.0.1:8000', '0.0.0.0:8000'][c['IN_DOCKER']]},
         'ALLOWED_HOSTS':            {'type': str,   'default': '*'},
         'DEBUG':                    {'type': bool,  'default': False},
         'PUBLIC_INDEX':             {'type': bool,  'default': True},
diff --git a/archivebox/config/stubs.py b/archivebox/config/stubs.py
index 68a442eb..0e984624 100644
--- a/archivebox/config/stubs.py
+++ b/archivebox/config/stubs.py
@@ -40,6 +40,7 @@ class ConfigDict(BaseConfig, total=False):
     URL_BLACKLIST: Optional[str]
 
     SECRET_KEY: str
+    BIND_ADDR: str
     ALLOWED_HOSTS: str
     DEBUG: bool
     PUBLIC_INDEX: bool