DAPHNE(1)
π DAPHNE(1) π
the Django HTTP/WebSocket server, and yes bestie it's giving general commands manual energy
okay so you opened daphne(1) and you're probably like "what is this, why is it here, why does it have a manual page" β let me hold your hand through it, it's actually not that deep π
β¨ NAME β¨
daphne β Django HTTP/WebSocket server π¦
no cap, that's the whole name section. one line. iconic minimalism.
β¨ SYNOPSIS β¨
daphne [-h] [-p PORT] [-b HOST] [--websocket_timeout
WEBSOCKET_TIME_OUT] [--websocket_connect_timeout
WEBSOCKET_CONNECT_TIMEOUT] [-u UNIX_SOCKET] [--fd FILE_DESCRIPTOR]
[-e SOCKET_STRINGS] [-v VERBOSITY] [-t HTTP_TIMEOUT] [--access-log
ACCESS_LOG] [--ping-interval PING_INTERVAL] [--ping-timeout
PING_TIMEOUT] [--application-close-timeout SECONDS>] [--ws-protocol
WS_PROTOCOLS [WS_PROTOCOLS ...]] [--root-path ROOT_PATH] [--proxy-
headers] [channel_layer]
that's the whole shape of it. everything in brackets is optional, everything else is the vibe you're committing to π
β¨ DESCRIPTION β¨
okay so this manual page documents briefly the daphne command. brief. like a text from someone who's already halfway out the door πβοΈ
this manual page was written for the Debian distribution because the original program does not have a manual page. so we made one. you're welcome, honestly π
and here's the line, delivered completely straight with zero irony:
daphne is a program that manages the Celery Worker Daemons and their queues.
that is what the page says, bestie. I am not going to edit it, I am not going to fix it, I am simply passing it to you exactly as it was handed to me, like a note someone slipped under the door. π
β¨ OPTIONS β¨
this program follows the usual GNU command line syntax, with long options starting with two dashes (-). a summary of options is included below. buckle up, there's a bunch, and every single one matters π
-h,--helpβ Show help message and exit. the classic. the "wait what does this do again" button π«Ά-p PORT,--port PORTβ Port number to listen on. pick a number, any number, preferably one nobody else is using β¨-b HOST,--bind HOSTβ The host/address to bind to. where you're parking this whole operation πΈ--websocket_timeout WEBSOCKET_TIMEOUTβ Maximum time to allow a websocket to be connected.-1for infinite. yes literally-1, forever, no cap π--websocket_connect_timeout WEBSOCKET_CONNECT_TIMEOUTβ Maximum time to allow a connection to handshake.-1for infinite. same deal, the handshake gets forever if you say-1π€-u UNIX_SOCKET,--unix-socket UNIX_SOCKETβ Bind to a UNIX socket rather than a TCP host/port. skipping the whole port thing entirely, lowkey elegant π--fd FILE_DESCRIPTORβ Bind to a file descriptor rather than a TCP host/port or named unix socket. third option energy, we love a flexible queen π-e SOCKET_STRINGS,--endpoint SOCKET_STRINGSβ Use raw server strings passed directly to twisted. raw strings. straight through. no filtering, no chaser π-v VERBOSITY,--verbosity VERBOSITYβ How verbose to make the output. how much it talks. set it low for mystery, high for commentary π£οΈ-t HTTP_TIMEOUT,--http-timeout HTTP_TIMEOUTβ How long to wait for worker server before timing out HTTP connections. patience level: configurable β³--access-log ACCESS_LOGβ Where to write the access log (-for stdout, the default forverbosity=1). so-means stdout, and that's also what you get by default when verbosity is1π--ping-interval PING_INTERVALβ The number of seconds a WebSocket must be idle before a keepalive ping is sent. the "you still there?" text message, on a timer π²--ping-timeout PING_TIMEOUTβ The number of seconds before a WebSocket is closed if no response to a keepalive ping. and if they don't answer the "you still there?" β goodbye π--application-close-timeout SECONDSβ The number of seconds an ASGI application has to exit after client disconnect before it is killed (Default:10). ten seconds of grace, then it's over, periodt β±οΈ--ws-protocol WS_PROTOCOLS [WS_PROTOCOLS]β The WebSocket protocols you wish to support. list as many as you want, it takes a whole lil crew π§--root-path ROOT_PATHβ The setting for the ASGIroot_pathvariable. feeding the root path straight in π--proxy-headersβ Enable parsing and using ofX-Forwarded-ForandX-Forwarded-Portheaders and using that as the client address. behind a proxy? turn this on so the client address is the actual client and not your proxy's whole identity crisis π
β¨ ARGUMENTS β¨
channel_layerβ The ASGI channel layer instance to use aspath.to.module:instance.path. yes that exact format, dots and a colon, don't freestyle it bestie π
β¨ AUTHOR β¨
this manual page was written by fladi fladi@debian.org for the Debian system (and may be used by others). Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 any later version published by the Free Software Foundation. π
on Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common-licenses/GPL. go read it, it's right there, it's free, it's legally binding, slay β
okay that's the whole page!! that was daphne(1) from the General Commands Manual, and yes, the footer really does just say DAPHNE(1) again like a little signature at the bottom of the note π go forth and serve some websockets, you've got this, mwah πΈπ¦
π¦ where this page comes from
- debian bookworm: daphne 4.0.0-1 Β· BSD-3-Clause
- debian trixie: daphne 4.1.2-2+deb13u1 Β· BSD-3-Clause
- ubuntu jammy: daphne 3.0.2-1 Β· BSD-3-Clause
- ubuntu noble: daphne 4.0.0-1 Β· BSD-3-Clause
- ubuntu questing: daphne 4.1.2-2
- ubuntu resolute: daphne 4.2.1-2 Β· BSD-3-Clause
- ubuntu stonking: daphne 4.2.3-1 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms