.. _usage: ===== Usage ===== The following code will run waitress on port 8080 on all available IP addresses, both IPv4 and IPv6. .. code-block:: python from waitress import serve serve(wsgiapp, listen='*:8080') Press :kbd:`Ctrl-C` (or :kbd:`Ctrl-Break` on Windows) to exit the server. The following will run waitress on port 8080 on all available IPv4 addresses, but not IPv6. .. code-block:: python from waitress import serve serve(wsgiapp, host='0.0.0.0', port=8080) By default Waitress binds to any IPv4 address on port 8080. You can omit the ``host`` and ``port`` arguments and just call ``serve`` with the WSGI app as a single argument: .. code-block:: python from waitress import serve serve(wsgiapp) If you want to serve your application through a UNIX domain socket (to serve a downstream HTTP server/proxy such as nginx, lighttpd, and so on), call ``serve`` with the ``unix_socket`` argument: .. code-block:: python from waitress import serve serve(wsgiapp, unix_socket='/path/to/unix.sock') Needless to say, this configuration won't work on Windows. Exceptions generated by your application will be shown on the console by default. See :ref:`access-logging` to change this. There's an entry point for :term:`PasteDeploy` (``egg:waitress#main``) that lets you use Waitress's WSGI gateway from a configuration file, e.g.: .. code-block:: ini [server:main] use = egg:waitress#main listen = 127.0.0.1:8080 Using ``host`` and ``port`` is also supported: .. code-block:: ini [server:main] host = 127.0.0.1 port = 8080 The :term:`PasteDeploy` syntax for UNIX domain sockets is analagous: .. code-block:: ini [server:main] use = egg:waitress#main unix_socket = /path/to/unix.sock You can find more settings to tweak (arguments to ``waitress.serve`` or equivalent settings in PasteDeploy) in :ref:`arguments`. Additionally, there is a command line runner called ``waitress-serve``, which can be used in development and in situations where the likes of :term:`PasteDeploy` is not necessary: .. code-block:: bash # Listen on both IPv4 and IPv6 on port 8041 waitress-serve --listen=*:8041 myapp:wsgifunc # Listen on only IPv4 on port 8041 waitress-serve --port=8041 myapp:wsgifunc For more information on this, see :ref:`runner`.