]>
Commit | Line | Data |
---|---|---|
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 | |
18 | Core: | |
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 | |
25 | SSL support: | |
e6bff0c3 | 26 | |
7cb4c3fc | 27 | - openssl 0.9.7d or later (try installing openssl-dev, openssl-devel or |
28 | libssl-dev) | |
54d8cd68 | 29 | |
7a157b26 | 30 | modperl: |
54d8cd68 | 31 | |
8a2ef66b | 32 | - This needs perl and its bundled libperl |
54d8cd68 US |
33 | |
34 | modpython: | |
35 | ||
36 | - This needs perl(!) and python's bundled libpython | |
37 | ||
71df50ec | 38 | cyrusauth: |
54d8cd68 | 39 | |
7a157b26 | 40 | - This module needs cyrus-sasl2 |
41 | ||
9aa1df15 | 42 | ## Installing ZNC |
7a157b26 | 43 | |
79821695 MS |
44 | If you are building from git, you will need to run `./autogen.sh` first to |
45 | produce the `configure` script. Note that this requires `automake` and | |
46 | `gettext` to be installed. | |
991e7f2f | 47 | |
de99f5b1 TW |
48 | Installation is done with the `./configure ; make ; make install` commands. |
49 | ||
79821695 MS |
50 | You can use `./configure --help` if you want to get a list of options, |
51 | though the defaults should be suiting most needs. After you compiled it | |
52 | with 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 | 57 | For 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 | 60 | If you are using SSL you should do `znc --makepem` |
7a157b26 | 61 | |
9aa1df15 | 62 | ## Special config options |
b475f5d6 | 63 | |
79821695 MS |
64 | When you create your ZNC configuration file via --makeconf, you are asked |
65 | two questions which might not be easy to understand. | |
b475f5d6 | 66 | |
67 | > Number of lines to buffer per channel | |
e6bff0c3 | 68 | |
79821695 MS |
69 | How many messages should be buffered for each channel. When you connect to |
70 | ZNC you get a buffer replay for each channel which shows what was said | |
71 | last. This option selects the number of lines this replay should consist | |
72 | of. Increasing this can greatly increase ZNC's memory usage if you are | |
73 | hosting 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 | 77 | If this is disabled, you get the buffer playback only once and then it is |
79821695 MS |
78 | deleted. If this is enabled, the buffer is not deleted. This may be useful |
79 | if you regularly use more than one client to connect to ZNC. | |
b475f5d6 | 80 | |
9aa1df15 | 81 | ## Using ZNC |
7a157b26 | 82 | |
79821695 MS |
83 | Once you have started ZNC you can connect with your favorite IRC-client to |
84 | ZNC. You should use `username:password` as the server password (e.g. | |
85 | `/pass user:pass`). | |
7a157b26 | 86 | |
e6bff0c3 | 87 | Once you are connected you can do `/msg *status help` for some commands. |
79821695 MS |
88 | Every module you have loaded (`/msg *status listmods`) should additionally |
89 | provide `/msg *modulename help` | |
7a157b26 | 90 | |
9aa1df15 | 91 | ## File Locations |
7a157b26 | 92 | |
e6bff0c3 | 93 | In its data dir (`~/.znc` is default) ZNC saves most of its data. The only |
79821695 MS |
94 | exception are modules and module data, which are saved in |
95 | `<prefix>/lib/znc` and `<prefix>/share/znc`, and the znc binary itself. | |
7cb4c3fc | 96 | More modules (e.g. if you install some later) can be saved in |
e6bff0c3 | 97 | `<data dir>/modules` (-> `~/.znc/modules`). |
7a157b26 | 98 | |
79821695 | 99 | In the datadir is only one file: |
e6bff0c3 | 100 | |
79821695 MS |
101 | - `znc.pem` - This is the server certificate ZNC uses for listening and is |
102 | created with `znc --makepem`. | |
7a157b26 | 103 | |
104 | These 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 | |
116 | This file shouldn't be too hard too understand. An explanation of all the | |
79821695 MS |
117 | items 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 | 125 | If you changed some settings while ZNC is running, a simple |
79821695 MS |
126 | `pkill -SIGUSR1 znc` will make ZNC rewrite its config file. Alternatively |
127 | you can use `/msg *status saveconfig` | |
c2e87beb | 128 | |
9aa1df15 | 129 | ## Writing own modules |
7a157b26 | 130 | |
8ca1859a | 131 | You can write your own modules in either C++, python or perl. |
7a157b26 | 132 | |
79821695 MS |
133 | C++ modules are compiled by either saving them in the modules source dir |
134 | and running make or with the `znc-buildmod` shell script. | |
7a157b26 | 135 | |
4abf3fea | 136 | For additional info look in the wiki: |
9aa1df15 | 137 | |
f621627d | 138 | - [Writing modules](http://wiki.znc.in/Writing_modules) |
7a157b26 | 139 | |
79821695 MS |
140 | Perl modules are loaded through the global module |
141 | [ModPerl](http://wiki.znc.in/Modperl). | |
6a2b5a23 | 142 | |
79821695 MS |
143 | Python modules are loaded through the global module |
144 | [ModPython](http://wiki.znc.in/Modpython). | |
7a157b26 | 145 | |
9aa1df15 | 146 | ## Further infos |
7a157b26 | 147 | |
79821695 MS |
148 | Please visit http://znc.in/ or |
149 | [#znc on freenode](ircs://irc.freenode.net:6697/#znc) if you still have | |
150 | questions. | |
7a157b26 | 151 | |
ed178040 | 152 | You can get the latest development version with git: |
79821695 | 153 | `git clone https://github.com/znc/znc.git --recursive` |