~vcs-imports-ii/znc/master

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