To create new wiki account, please join us on #znc at freenode and ask admins to create a wiki account for you. You can say thanks to spambots for this inconvenience.

Difference between revisions of "ZNC"

From ZNC
Jump to: navigation, search
(How does it work?)
 
(38 intermediate revisions by 10 users not shown)
Line 3: Line 3:
 
Welcome to the '''ZNC wiki''' where you may find and publish information about '''ZNC''', an advanced [http://en.wikipedia.org/wiki/BNC_%28software%29#IRC IRC bouncer] that is left connected so an IRC client can disconnect/reconnect without losing the chat session. Feel free to update pages which you think are improvable and don't hesitate to ask for help.
 
Welcome to the '''ZNC wiki''' where you may find and publish information about '''ZNC''', an advanced [http://en.wikipedia.org/wiki/BNC_%28software%29#IRC IRC bouncer] that is left connected so an IRC client can disconnect/reconnect without losing the chat session. Feel free to update pages which you think are improvable and don't hesitate to ask for help.
  
 +
[[File:Overview_network_scheme.png|right]]
 
[[File:Znc-0.99-black.png|right]]
 
[[File:Znc-0.99-black.png|right]]
  
You can find us in [irc://irc.efnet.org/znc #znc on EFNet] or on [irc://irc.freenode.net/znc freenode].
+
You can find us in [ircs://irc.freenode.net:6697/#znc #znc on freenode].
  
The latest stable release is '''{{ZNC-Version}}''' ([[ChangeLog]]).
+
== Download ZNC ==
 +
The latest stable release is '''{{ZNC-Version}}''' ([[ChangeLog/{{ZNC-Version}}|ChangeLog]]).
 +
You can find its source '''[https://znc.in/releases/znc-{{ZNC-Version}}.tar.gz <span style="color:#7F0000">here</span>]'''!
  
== News: License switch soon ==
+
Or you can try testing version, using [https://znc.in/nightly/?C=N&O=D nightly tarball] or [[Git]]{{#if:{{ZNC-Version-Alpha}}|, or '''[https://znc.in/releases/znc-{{ZNC-Version-Alpha}}.tar.gz <span style="color:#7F0000">ZNC {{ZNC-Version-Alpha}}</span>]'''|}}.
ZNC is going to switch license from [http://www.gnu.org/licenses/gpl-2.0.html GPLv2] to [http://www.apache.org/licenses/LICENSE-2.0.html Apache 2.0]. It will allow us to use various third-party libraries which can't be used currently. If you feel that you have some comments or concerns about the change, please join us at our IRC channels, [irc://irc.efnet.org/znc #znc on EFNet] or [irc://irc.freenode.net/znc freenode].
 
  
If you have contributed code to ZNC, please join us and explicitly agree or disagree with the change, otherwise we'll need to revert/rewrite your code.
+
Older versions can be found [https://znc.in/releases/ here].
  
== Download ZNC {{ZNC-Version}} ==
+
Several distros provide ZNC as a package, look at [[Installation]] page for details.
You can find the latest stable release '''[http://znc.in/releases/znc-{{ZNC-Version}}.tar.gz <span style="color:#7F0000">here</span>]'''!
 
 
 
Or you can try testing version, using [[git]]<!-- or from '''[http://people.znc.in/~darthgandalf/znc/1.0-rc1/znc-1.0-rc1.tar.gz <span style="color:#7F0000">ZNC 1.0-rc1</span>]''' tarball-->!
 
  
 
== How does it work? ==
 
== How does it work? ==
* Install ZNC on your server.
+
* [[Installation|Install]] ZNC on your server.
* Generate an initial [[configuration]] via <code>znc --makeconf</code>.
+
* Generate an initial configuration via <code>znc --makeconf</code>.
** (0.206 and earlier)
+
** Each ZNC user can connect to several IRC networks, though you'll need to connect your IRC client to ZNC several times (once per network).
*** '''For each IRC network, you need to create a ZNC user.'''
+
** You can later change settings (add more users, tune existing ones, etc.) via the [[webadmin|web interface]] or from [[controlpanel|IRC]].
*** For example, use one user for Freenode, one user for EFnet, one user for Quakenet, etc.
 
** (1.0)
 
*** Each ZNC user can connect to several IRC networks, though you'll need to connect your IRC client to ZNC several times.
 
** You can later change settings (add more users, tune existing ones, etc.) via the [[webadmin|web interface]] or from [[admin|IRC]].
 
 
* Configure your IRC client to connect to your ZNC server.
 
* Configure your IRC client to connect to your ZNC server.
** It's a good idea to use <code>username/network:password</code> as the '''password''' in your client, so that ''(even for broken clients)'' ZNC can figure out which user you are connecting as.
+
** If your client has separate '''username''' and '''password''' fields, that works fine.
 +
*** You can set ''username'' as <code>username@clientid/network</code> to connect to a specific network. The network needs to be configured already. Without <code>/network</code> client will be connected to some random network.
 +
** If your client is broken and doesn't support specifying username in well... username, you can use <code>username@clientid/network:password</code> as the ''password''.
 +
** The ''@clientid'' is included with ZNC starting from '''1.6.0'''. It's optional and is name that you give to your client to recognize it in <code>/msg *status listclients</code>. It's also used by some modules such as [[chanfilter]].
 
* Read the [[FAQ]] if you run into any problems. Feel free to ask on IRC if you need more help.
 
* Read the [[FAQ]] if you run into any problems. Feel free to ask on IRC if you need more help.
 
* Enjoy! (Profit?)
 
* Enjoy! (Profit?)
  
 
== Main Features ==
 
== Main Features ==
[[Image:Webadmin-settings-dark-clouds.png|thumb|Screenshot of the [[Webadmin]] module in action]]
+
[[Image:Webadmin-settings-dark-clouds.png|thumb|500px|Screenshot of the [[Webadmin]] module in action]]
 
; [[Modules|Modules]] : ZNC supports dynamic loading of [[Writing modules|C++]], [[modperl|Perl]], [[modpython|Python]] and [[modtcl|Tcl]] modules. To get a list of the available modules and more information follow the link.
 
; [[Modules|Modules]] : ZNC supports dynamic loading of [[Writing modules|C++]], [[modperl|Perl]], [[modpython|Python]] and [[modtcl|Tcl]] modules. To get a list of the available modules and more information follow the link.
 
; [[Detaching]] : ZNC will remain connected to IRC even while you are offline. You can then reattach later and catch up with what happened while you were gone, and your nick (and operator status) will have been kept for you.
 
; [[Detaching]] : ZNC will remain connected to IRC even while you are offline. You can then reattach later and catch up with what happened while you were gone, and your nick (and operator status) will have been kept for you.
 
; Multiple Users : You can add additional users under one running process. Useful for public shells that limit background processes.
 
; Multiple Users : You can add additional users under one running process. Useful for public shells that limit background processes.
 
; Multiple Networks : Each user can connect to several IRC networks at once, with an optional limit configured by ZNC admin.
 
; Multiple Networks : Each user can connect to several IRC networks at once, with an optional limit configured by ZNC admin.
; Multiple Clients : Connect to the same user/network with as many clients as you want.
+
; [[Multiple clients|Multiple Clients]] : Connect to the same user/network with as many clients as you want.
 
; Playback Buffers : Stay up-to-date with what happened and when it happened while you were detached, [[timestamps]] are also printed and can be manually configured.
 
; Playback Buffers : Stay up-to-date with what happened and when it happened while you were detached, [[timestamps]] are also printed and can be manually configured.
 
; SSL Support : Encryption for both the listen port and connecting to IRC servers. If your system has OpenSSL, ZNC automatically supports SSL connections.
 
; SSL Support : Encryption for both the listen port and connecting to IRC servers. If your system has OpenSSL, ZNC automatically supports SSL connections.
 
; IPv6 Support : Both IPv4 and IPv6 address families just work, if your system supports them.
 
; IPv6 Support : Both IPv4 and IPv6 address families just work, if your system supports them.
; Partyline : Using the global [[partyline]] module, you can join channels and query users on the internal ZNC network
 
 
; Web Administration : Using the global [[webadmin]] module, admins can add/remove/edit users and global settings and non admins can edit their own user settings.
 
; Web Administration : Using the global [[webadmin]] module, admins can add/remove/edit users and global settings and non admins can edit their own user settings.
  
 
== Getting started ==
 
== Getting started ==
 +
* [[Introduction]]
 
* [[Installation|Download and Installation]]
 
* [[Installation|Download and Installation]]
 
* [[Connecting to ZNC]]
 
* [[Connecting to ZNC]]
Line 54: Line 52:
  
 
== Further Info ==
 
== Further Info ==
* [[Using ident spoofs|Setting up ident spoofs via oidentd]]
+
* [[Identfile|Setting up ident spoofs via oidentd]]
 
* [[Chroot]]
 
* [[Chroot]]
 
* [[ZNC Backup]]
 
* [[ZNC Backup]]
 
* [[Running ZNC as a system daemon]]
 
* [[Running ZNC as a system daemon]]
* [[StartSSL|Using signed SSL cert]]
+
* [[Signed SSL certificate|Using signed SSL cert]]
 
* [[History]]
 
* [[History]]
 
* [[Configuration|Configuration parameters]]
 
* [[Configuration|Configuration parameters]]
* [[ZNC:Site support|Donate to ZNC]]
+
* [[Tor|Using with Tor]]
 +
* [[Reverse proxy|Webadmin behind HTTP reverse proxy]]
 +
* [https://github.com/znc/znc/releases.atom Subscribe to new releases]
  
 
=== Writing modules ===
 
=== Writing modules ===
Line 69: Line 69:
 
* [[modpython|Writing Python modules]]
 
* [[modpython|Writing Python modules]]
 
* [[Debugging]]
 
* [[Debugging]]
 +
 +
=== Internal docs ===
 +
* [[HowToRelease|How to release new ZNC version]]
  
 
== External Links ==
 
== External Links ==
Line 74: Line 77:
 
* [https://github.com/znc/znc ZNC project page on GitHub] - report bugs/issues here
 
* [https://github.com/znc/znc ZNC project page on GitHub] - report bugs/issues here
 
* [http://freshmeat.net/projects/znc ZNC on FreshMeat]
 
* [http://freshmeat.net/projects/znc ZNC on FreshMeat]
* [http://www.ohloh.net/p/znc ZNC on Ohloh]
+
* [http://www.openhub.net/p/znc ZNC on OpenHUB]
  
 
[[Category:ZNC]]
 
[[Category:ZNC]]

Latest revision as of 19:08, 21 October 2017

Welcome to the ZNC wiki where you may find and publish information about ZNC, an advanced IRC bouncer that is left connected so an IRC client can disconnect/reconnect without losing the chat session. Feel free to update pages which you think are improvable and don't hesitate to ask for help.

Overview network scheme.png
Znc-0.99-black.png

You can find us in #znc on freenode.

Download ZNC[edit]

The latest stable release is 1.6.5 (ChangeLog). You can find its source here!

Or you can try testing version, using nightly tarball or Git.

Older versions can be found here.

Several distros provide ZNC as a package, look at Installation page for details.

How does it work?[edit]

  • Install ZNC on your server.
  • Generate an initial configuration via znc --makeconf.
    • Each ZNC user can connect to several IRC networks, though you'll need to connect your IRC client to ZNC several times (once per network).
    • You can later change settings (add more users, tune existing ones, etc.) via the web interface or from IRC.
  • Configure your IRC client to connect to your ZNC server.
    • If your client has separate username and password fields, that works fine.
      • You can set username as username@clientid/network to connect to a specific network. The network needs to be configured already. Without /network client will be connected to some random network.
    • If your client is broken and doesn't support specifying username in well... username, you can use username@clientid/network:password as the password.
    • The @clientid is included with ZNC starting from 1.6.0. It's optional and is name that you give to your client to recognize it in /msg *status listclients. It's also used by some modules such as chanfilter.
  • Read the FAQ if you run into any problems. Feel free to ask on IRC if you need more help.
  • Enjoy! (Profit?)

Main Features[edit]

Screenshot of the Webadmin module in action
Modules 
ZNC supports dynamic loading of C++, Perl, Python and Tcl modules. To get a list of the available modules and more information follow the link.
Detaching 
ZNC will remain connected to IRC even while you are offline. You can then reattach later and catch up with what happened while you were gone, and your nick (and operator status) will have been kept for you.
Multiple Users 
You can add additional users under one running process. Useful for public shells that limit background processes.
Multiple Networks 
Each user can connect to several IRC networks at once, with an optional limit configured by ZNC admin.
Multiple Clients 
Connect to the same user/network with as many clients as you want.
Playback Buffers 
Stay up-to-date with what happened and when it happened while you were detached, timestamps are also printed and can be manually configured.
SSL Support 
Encryption for both the listen port and connecting to IRC servers. If your system has OpenSSL, ZNC automatically supports SSL connections.
IPv6 Support 
Both IPv4 and IPv6 address families just work, if your system supports them.
Web Administration 
Using the global webadmin module, admins can add/remove/edit users and global settings and non admins can edit their own user settings.

Getting started[edit]

Further Info[edit]

Writing modules[edit]

Internal docs[edit]

External Links[edit]

Please note that as of February 2011 we have abandoned SourceForge and moved to GitHub.