]> jfr.im git - irc/evilnet/znc.git/blame - README.md
Fix missing brace
[irc/evilnet/znc.git] / README.md
CommitLineData
9aa1df15
U
1#[![ZNC](http://wiki.znc.in/skins/common/images/wiki.png)](http://znc.in) - An advanced IRC bouncer
2
3## Table of contents
e6bff0c3 4
7a157b26 5- Minimal Requirements
6- Optional Requirements
7- Installing ZNC
8- Setting up znc.conf
b475f5d6 9- Special config options
7a157b26 10- Using ZNC
11- File Locations
12- ZNC's config file
13- Writing own modules
14- Further infos
15
9aa1df15 16## Minimal Requirements
7a157b26 17
18Core:
e6bff0c3 19
7a157b26 20 - GNU make (try gmake if make fails)
71df50ec 21 - GCC 4 or later
7a157b26 22
9aa1df15 23## Optional Requirements
7a157b26 24
25SSL support:
e6bff0c3 26
7cb4c3fc 27 - openssl 0.9.7d or later (try installing openssl-dev, openssl-devel or
28 libssl-dev)
54d8cd68 29
7a157b26 30modperl:
54d8cd68 31
8a2ef66b 32 - This needs perl and its bundled libperl
54d8cd68
US
33
34modpython:
35
36 - This needs perl(!) and python's bundled libpython
37
71df50ec 38cyrusauth:
54d8cd68 39
7a157b26 40 - This module needs cyrus-sasl2
41
9aa1df15 42## Installing ZNC
7a157b26 43
79821695
MS
44If you are building from git, you will need to run `./autogen.sh` first to
45produce the `configure` script. Note that this requires `automake` and
46`gettext` to be installed.
991e7f2f 47
de99f5b1
TW
48Installation is done with the `./configure ; make ; make install` commands.
49
79821695
MS
50You can use `./configure --help` if you want to get a list of options,
51though the defaults should be suiting most needs. After you compiled it
52with make (or gmake if make doesn't work) you can install it with
53`make install`.
7a157b26 54
9aa1df15 55## Setting up znc.conf
7a157b26 56
e6bff0c3 57For setting up a configuration file in `~/.znc` you can simply do
79821695 58`znc --makeconf` or `./znc --makeconf` for in-place execution.
7a157b26 59
79821695 60If you are using SSL you should do `znc --makepem`
7a157b26 61
9aa1df15 62## Special config options
b475f5d6 63
79821695
MS
64When you create your ZNC configuration file via --makeconf, you are asked
65two questions which might not be easy to understand.
b475f5d6 66
67> Number of lines to buffer per channel
e6bff0c3 68
79821695
MS
69How many messages should be buffered for each channel. When you connect to
70ZNC you get a buffer replay for each channel which shows what was said
71last. This option selects the number of lines this replay should consist
72of. Increasing this can greatly increase ZNC's memory usage if you are
73hosting many users. The default value should be fine for most setups.
b475f5d6 74
75> Would you like to keep buffers after replay?
e6bff0c3 76
b475f5d6 77If this is disabled, you get the buffer playback only once and then it is
79821695
MS
78deleted. If this is enabled, the buffer is not deleted. This may be useful
79if you regularly use more than one client to connect to ZNC.
b475f5d6 80
9aa1df15 81## Using ZNC
7a157b26 82
79821695
MS
83Once you have started ZNC you can connect with your favorite IRC-client to
84ZNC. You should use `username:password` as the server password (e.g.
85`/pass user:pass`).
7a157b26 86
e6bff0c3 87Once you are connected you can do `/msg *status help` for some commands.
79821695
MS
88Every module you have loaded (`/msg *status listmods`) should additionally
89provide `/msg *modulename help`
7a157b26 90
9aa1df15 91## File Locations
7a157b26 92
e6bff0c3 93In its data dir (`~/.znc` is default) ZNC saves most of its data. The only
79821695
MS
94exception are modules and module data, which are saved in
95`<prefix>/lib/znc` and `<prefix>/share/znc`, and the znc binary itself.
7cb4c3fc 96More modules (e.g. if you install some later) can be saved in
e6bff0c3 97`<data dir>/modules` (-> `~/.znc/modules`).
7a157b26 98
79821695 99In the datadir is only one file:
e6bff0c3 100
79821695
MS
101- `znc.pem` - This is the server certificate ZNC uses for listening and is
102created with `znc --makepem`.
7a157b26 103
104These directories are also in there:
e6bff0c3 105
79821695
MS
106- configs - Contains `znc.conf` (ZNC's config file) and backups of older
107 configs.
e6bff0c3
KF
108- modules - ZNC also looks in here for a module.
109- moddata - Global modules save their settings here.
110 (e.g. webadmin saves the current skin name in here)
79821695
MS
111- users - This is per-user data and mainly contains just a moddata
112 directory.
7a157b26 113
9aa1df15 114## ZNC's config file
7a157b26 115
116This file shouldn't be too hard too understand. An explanation of all the
79821695
MS
117items can be found on the
118[Configuration](http://wiki.znc.in/Configuration)-Page.
119**Warning: better not to edit config, while ZNC is running.** Use the
120[webadmin] and [controlpanel] modules instead.
7a157b26 121
79821695
MS
122[webadmin]:http://wiki.znc.in/Webadmin
123[controlpanel]:http://wiki.znc.in/Controlpanel
7a157b26 124
d252a2b4 125If you changed some settings while ZNC is running, a simple
79821695
MS
126`pkill -SIGUSR1 znc` will make ZNC rewrite its config file. Alternatively
127you can use `/msg *status saveconfig`
c2e87beb 128
9aa1df15 129## Writing own modules
7a157b26 130
8ca1859a 131You can write your own modules in either C++, python or perl.
7a157b26 132
79821695
MS
133C++ modules are compiled by either saving them in the modules source dir
134and running make or with the `znc-buildmod` shell script.
7a157b26 135
4abf3fea 136For additional info look in the wiki:
9aa1df15 137
f621627d 138- [Writing modules](http://wiki.znc.in/Writing_modules)
7a157b26 139
79821695
MS
140Perl modules are loaded through the global module
141[ModPerl](http://wiki.znc.in/Modperl).
6a2b5a23 142
79821695
MS
143Python modules are loaded through the global module
144[ModPython](http://wiki.znc.in/Modpython).
7a157b26 145
9aa1df15 146## Further infos
7a157b26 147
79821695
MS
148Please visit http://znc.in/ or
149[#znc on freenode](ircs://irc.freenode.net:6697/#znc) if you still have
150questions.
7a157b26 151
ed178040 152You can get the latest development version with git:
79821695 153`git clone https://github.com/znc/znc.git --recursive`