]> Cypherpunks.ru repositories - nncp.git/blob - doc/cfg.texi
Document onlinedeadline
[nncp.git] / doc / cfg.texi
1 @node Configuration
2 @unnumbered Configuration file
3
4 Example YAML configuration file:
5
6 @verbatim
7 spool: /var/spool/nncp
8 log: /var/spool/nncp/log
9 notify:
10   file:
11     from: nncp@localhost
12     to: user+file@example.com
13   freq:
14     from: nncp@localhost
15     to: user+freq@example.com
16 self:
17   id: TIJQL...2NGIA
18   exchpub: CYVGQ...PSEWQ
19   exchprv: 65PUY...MPZ3Q
20   signpub: 2NMVC...CMH5Q
21   signprv: 555JD...RGD6Y
22   noiseprv: D62XU...NKYPA
23   noisepub: KIBKK...ESM7Q
24 neigh:
25   self:
26     id: TIJQL...2NGIA
27     exchpub: CYVGQ...PSEWQ
28     signpub: 2NMVC...CMH5Q
29     noisepub: KIBKK...ESM7Q
30     sendmail: [/usr/sbin/sendmail]
31   alice:
32     id: XJZBK...65IJQ
33     exchpub: MJACJ...FAI6A
34     signpub: T4AFC...N2FRQ
35     noisepub: UBM5K...VI42A
36     sendmail: ["/bin/sh", "-c", "false"]
37     incoming: /home/alice/incoming
38     onlinedeadline: 3600
39     addrs:
40       lan: "[fe80::1234%igb0]:5400"
41       internet: alice.com:3389
42   bob:
43     id: 2IZNP...UYGYA
44     exchpub: WFLMZ...B7NHA
45     signpub: GTGXG...IE3OA
46     sendmail: [/usr/sbin/sendmail]
47     freq: /home/bob/pub
48     via: [alice]
49 @end verbatim
50
51 @strong{spool} field contains an absolute path to @ref{Spool, spool}
52 directory. @strong{log} field contains an absolute path to @ref{Log,
53 log} file.
54
55 @strong{notify} section contains notification settings for successfully
56 tossed file and freq packets. Corresponding @strong{from} and
57 @strong{to} fields will substituted in notification email message.
58 @emph{neigh/self/sendmail} will be used as a local mailer. You can omit
59 either of those two @emph{from}/@emph{to} sections to omit corresponding
60 notifications, or the whole section at once.
61
62 @strong{self} section contains our node's private keypairs.
63 @strong{exch*} and @strong{sign*} are used during @ref{Encrypted,
64 encrypted} packet creation. @strong{noise*} are used during @ref{Sync,
65 synchronization protocol} working in @ref{nncp-call}/@ref{nncp-daemon}.
66
67 @strong{neigh} section contains all known neighbours information. It
68 always has @strong{self} neighbour that is copy of our node's public
69 data (public keys). It is useful for copy-paste sharing with your
70 friends. Each section's key is a human-readable name of the neighbour.
71
72 Except for @emph{id}, @emph{exchpub} and @emph{signpub} each neighbour
73 node has the following fields:
74
75 @table @strong
76
77 @item noisepub
78 If present, then node can be online called using @ref{Sync,
79 synchronization protocol}. Contains authentication public key.
80
81 @item sendmail
82 An array containing path to executable and its command line arguments
83 that is called for mail sending.
84
85 @item incoming
86 Full path to directory where all file uploads will be saved. May be
87 omitted to forbid file uploading on that node.
88
89 @item freq
90 Full path to directory from where file requests will queue files for
91 transmission. May be omitted to forbid freqing from that node.
92
93 @item via
94 An array of node identifiers that will be used as a relay to that node.
95 For example @verb{|[foo,bar]|} means that packet can reach current node
96 by transitioning through @emph{foo} and then @emph{bar} nodes. May be
97 omitted if direct connection exists and no relaying is required.
98
99 @item addrs
100 Dictionary containing known network addresses of the node. Each key is
101 human-readable name of the link/address. Values are @verb{|addr:port|}
102 pairs pointing to @ref{nncp-daemon}'s listening instance. May be omitted
103 if either no direct connection exists, or @ref{nncp-call} is used with
104 forced address specifying.
105
106 @anchor{Onlinedeadline}
107 @item onlinedeadline
108 Online connection deadline of node inactivity in seconds. It is the time
109 connection considered dead after not receiving/sending any packets and
110 node must disconnect. By default it is set to 10 seconds -- that means
111 that disconnecting after 10 seconds when no packets received and
112 transmitted. This can be set to rather high values to keep connection
113 alive (to reduce handshake overhead and delays), wait for appearing
114 packets ready to send and notifying remote side about their appearance.
115
116 @end table