Permalink
Browse files

Start moving wiki to GitHub.

  • Loading branch information...
1 parent 4d46839 commit 36cbdad3a9e7bcd46e344d0f6be027042ea84eb4 @SaberUK SaberUK committed May 7, 2012
Showing with 370 additions and 4 deletions.
  1. +4 −0 .gitignore
  2. +37 −0 Contributing.md
  3. +161 −0 FAQ.md
  4. +22 −0 IRC-Channel-Rules.md
  5. +51 −0 Modules/spanningtree/Example-Traffic.md
  6. +0 −4 README
  7. +18 −0 README.md
  8. +12 −0 Release-Procedure.md
  9. +65 −0 SNOMASK.md
View
4 .gitignore
@@ -0,0 +1,4 @@
+*~
+.*
+!.git*
+
View
37 Contributing.md
@@ -0,0 +1,37 @@
+Introduction
+------------
+
+The InspIRCd project is quite open to all contributions, large and small.
+Whether you're a coder, documentation writer, tester or ''<insert role here>'', we're
+sure you will help out in a useful way.
+
+This page documents a bit of how we work internally as a project, so that you
+can better fit in and help out if you want.
+
+Development
+-----------
+
+The development team is of a loosely connected group of contributors,
+all working and collaborating on things they want to see done. We don't
+really assign work to anyone, they find stuff to work on on their own generally.
+
+You can find repositories on [GitHub](http://github.org/inspircd/).
+
+If you wish to contribute to development, feel free. File as many
+pull requests as you want. Pull requests that fix existing issues are especially welcome.
+
+If you ever need to make a release, see the [release procedure](https://github.com/inspircd/wiki/blob/master/Release-Procedure.md) page for help.
+
+Documentation
+-------------
+
+Not everyone who can code is stellar at writing things up in a clear, easy to use way - this is where people can help out quite often, by making our numerous features easy to understand. Alternatively, perhaps you are interested in helping to translate our documentation into the language of your choice. Most of the action in this department takes
+place here on our wiki.
+
+Support
+-------
+
+Support is a largely informal area, provided by other users and team members. To help out, hang around in [#inspircd](irc://irc.inspircd.org/inspircd)
+(we don't mind idlers!) and answer questions if you know what it's about.
+
+We don't bite. Honest.
View
161 FAQ.md
@@ -0,0 +1,161 @@
+Frequently Asked Questions
+--------------------------
+
+Why should I choose InspIRCd over some other IRC server?
+--------------------------------------------------------
+
+There are several reasons to choose InspIRCd over some other IRC server. These are:
+
+* InspIRCd is totally modular -- add and remove features as YOU please, not as we tell you to. This modular design also allows you to upgrade most parts (including but not limited to core commands, server linking and SSL support) without rebooting the IRC server.
+
+* InspIRCd offers its own free (as in beer *and* freedom) implementation of many features which developers of certain other IRC servers want to charge you for.
+
+* InspIRCd has a highly scalable ''non-blocking'' SQL API, supporting, MySQL, PostgreSQL, SQL Server and SQLite -- unseen in any other IRC server.
+
+* InspIRCd has high-performance socket engines such as epoll and kqueue, whereas other IRC servers with the same feature set do not. We also have some socket engines that no other IRC server has currently, such as Windows I/O Completion Ports, which increases the performance of our Windows builds beyond most other Windows IRC servers.
+
+* The InspIRCd development team welcome third party contributions, suggestions and criticism whereas many of the developers of alternative IRC servers do not.
+
+How much memory does InspIRCd use?
+----------------------------------
+
+A network with 3000-4000 locally connected clients and 10000 open channels experiences a constant 1-4% CPU use with 70MB of RAM use. This won't go up drastically, but it will go up. Around 40000 local clients means you'll be expecting some 500MB of RAM.
+
+How do I start InspIRCd?
+------------------------
+
+Navigate to the directory in which you installed InspIRCd and issue the following command:
+
+ ./inspircd start
+
+Note: these instructions only apply if you installed InspIRCd from source on a UNIX-like operating system. If you installed InspIRCd from a package manager it will probably not use this method.
+
+Can my network be the "official" InspIRCd network?
+--------------------------------------------------
+
+Sorry, no. That privilege is reserved for our own network at [irc.chatspike.net](irc://irc.chatspike.net/).
+
+What services package should I choose?
+--------------------------------------
+
+This is an extremely subjective question. It is advised that you trial multiple different packages and use the one that you feel fits your needs.
+
+Popular IRC services packages used with InspIRCd include:
+
+* [Anope](http://www.anope.org/)
+* [Atheme](http://www.atheme.net/)
+
+Use of [IRCServices](http://achurch.org/services/) is not recommended due to it being unsupported.
+
+Where should I report a bug/suggest a feature?
+----------------------------------------------
+
+On the appropriate issue tracker:
+
+* [Main](https://github.com/inspircd/inspircd/issues)
+* [Extras](https://github.com/inspircd/inspircd-extras/issues)
+* [Website](https://github.com/inspircd/inspircd.github.com/issues)
+* [Wiki](https://github.com/inspircd/wiki/issues)
+
+How can I contribute to InspIRCd?
+---------------------------------
+
+Take a look at our [Contributing](https://github.com/inspircd/wiki/blob/master/Contributing.md) page.
+
+
+Can I use InspIRCd on my large network?
+---------------------------------------
+
+Feel free! We have tested InspIRCd up to 80000 clients on a single server. If you have any statistics on performance you would like to share, then get in touch.
+
+Do any large networks use InspIRCd?
+-----------------------------------
+
+To our knowledge, the largest networks using InspIRCd are:
+
+* [IrCQ-Net](irc://irc.icq.com/) with 4000-6000 users
+* [Barafranca](irc://irc.barafranca.com/) with 1400-3500 users
+* [Chatspike](irc://irc.chatspike.net) with 600-1400 users
+
+Which socket engines are supported by InspIRCd?
+-----------------------------------------------
+
+The following high performance socket engines are supported:
+
+* **select** on all operating systems
+* **poll** on all UNIX-like operating systems
+* **kqueue** on BSD and Mac OS X
+* **epoll** on Linux.
+* **iocp** on Windows
+
+Please note that the performance improvements given by use of kqueue, iocp or epoll are very large performance gains over select(), and should be used wherever they are available. If you do not have any of these socket engines, you should seriously consider upgrading your operating system or kernel before running an IRC server.
+
+What IRCd is InspIRCd based on?
+-------------------------------
+
+None. Yes that's right, None. We didn't start from anyone else's code, at all. It is not based on Unreal, it is not based on Bahamut, nor is it based on any other IRCd. This is what makes it unique.
+
+Can I run InspIRCd as root?
+---------------------------
+
+You could run the InspIRCd binary with the --runasroot parameter, but we will not provide any support for doing this.If you want to bind InspIRCd to a privileged port, you should instead use a port forwarding rule in your firewall. For example, if you are using Linux with iptables:
+
+ iptables -t nat -A PREROUTING -p tcp -i eth0 -d 127.0.0.1 --dport 194 -j DNAT --to 127.0.0.1:6667
+ iptables -A FORWARD -p tcp -i eth0 -d 127.0.0.1 --dport 194 -j ACCEPT
+
+This will forward all traffic on port 194 to port 6667, on the IP 127.0.0.1. You should change this IP and port numbers as appropriate.
+
+If you are running Linux, another solution is to enable [file system capabilities](http://www.friedhoff.org/fscaps.html) in your kernel, which allows you to grant specific privileges (e.g. the ability to bind to ports under 1024) to any process without having to run it as root.
+
+On FreeBSD and similar systems, there is a sysctl OID for this, which you can set:
+
+ net.inet.ip.portrange.reservedlow=1
+ net.inet.ip.portrange.reservedhigh=1
+
+This will allow non-root processes to bind any ports which are above port 1, essentially all available port numbers.
+
+How do I run InspIRCd when the system starts?
+---------------------------------------------
+
+To launch InspIRCd when your system starts, you should place the following line into the crontab for your IRCd user (crontab -e):
+
+ @reboot cd /home/user/inspircd; ./inspircd start
+
+How do I get prefixes like `@`, `~` and `&`?
+-------------------------------------------
+
+If you are using InspIRCd 1.2, load [m_customprefix](https://github.com/inspircd/wiki/blob/master/Modules/customprefix.md).
+
+If you are using InspIRCd 2.0 or newer, load [m_halfop](https://github.com/inspircd/wiki/blob/master/Modules/halfop.md) and [m_chanprotect](https://github.com/inspircd/wiki/blob/master/Modules/halfop.md).
+
+Why does my server have none of the advertised features?
+--------------------------------------------------------
+
+By default, InspIRCd only supports features specified in [RFC 1459](http://tools.ietf.org/html/rfc1459). If you want to add extra features then you must load the correct modules. A list of modules can be found in `docs/inspircd.conf.example`.
+
+Why do I get a 'Loader/Linker' error when loading a module?
+-----------------------------------------------------------
+
+The version of InspIRCd which the module was compiled for is different to your server. Run `make clean` and then `make install` to rebuild everything on the same version.
+
+When I run my IRC server it exits saying 'Failed to write PID-file'
+-------------------------------------------------------------------
+
+There is a syntax error in your configuration file. To show the real error, move the \<pid\> tag to the top of your configuration.
+
+How can I use channel admin commands such as kick/mode without having op?
+-------------------------------------------------------------------------
+
+Load [m_override](https://github.com/inspircd/wiki/blob/master/Modules/override.md).
+
+Please note that this module must be loaded on all servers of your network or your mode changes may be reversed and/or you may cause desyncs.
+
+When users connect, InspIRCd never resolves their ident
+-------------------------------------------------------
+
+Ident lookups on InspIRCd are provided by [m_ident](https://github.com/inspircd/wiki/blob/master/Modules/ident.md). You must load this module for them to be resolved.
+
+Can InspIRCd make cheese sandwiches?
+------------------------------------
+
+Yes, providing that you load the [m_cheesesandwich](https://github.com/inspircd/wiki/blob/master/Modules/m_cheesesandwich.md) module.
View
22 IRC-Channel-Rules.md
@@ -0,0 +1,22 @@
+[#InspIRCd](irc://irc.chatspike.net/inspircd) Channel Rules
+===========================================================
+
+As with most IRC channels, the support channel has rules. These rules are as follows:
+
+* The main purpose of the channel is for support and discussion of InspIRCd. Other off-topic discussion is allowed, but keep it to a minimum when on-topic discussion is happening.
+
+* When asking for support make sure to state your full InspIRCd version as well as your Operating System name/version and compiler name/version.
+
+* We are here to contribute to the project in some way. Contribute positively. Avoid flaming and arguments.
+
+* Constructive criticism directly related to InspIRCd or an module of InspIRCd is welcomed. By constructive this means you must give recommendations of how it should be improved.
+
+* Outright bashing of people, programs, and ideas without a reasoned argument (e.g. just "its crap") its frowned upon and makes you look an idiot.
+
+* If you find a bug, PLEASE report it to the [bugtracker](https://github.com/inspircd/inspircd/issues) rather than the channel. This makes processing it much easier to manage.
+
+* Please use a [pastebin](http://nopaste.snit.ch) if you wish to contribute config file snippets or code to the channel, rather than pasting, or you will be automatically kicked.
+
+* No stupid scripts please (e.g. l33tsp33k-converters, 'thanks for the op' scripts, etc).
+
+* Idlers are welcome on #InspIRCd. Helpful people are even more welcome!
View
51 Modules/spanningtree/Example-Traffic.md
@@ -0,0 +1,51 @@
+Example Traffic
+---------------
+
+This is an example of a netburst and some random traffic between two 1.2.0 (Alpha 7) servers. Outbound traffic is indicated with a "->", inbound traffic is marked with "<-".
+
+<pre>
+-> CAPAB START
+-> CAPAB MODULES m_allowinvite.so,m_alltime.so,m_auditorium.so,m_banexception.so,m_blockcaps.so,m_blockcolor.so,m_botmode.so,m_callerid.so,m_cban.so,m_censor.so,m_chanfilter.so, m_chanprotect.so,m_chghost.so,m_chgident.so,m_chgname.so,m_cloaking.so,m_commonchans.so,m_dccallow.so,m_deaf.so,m_delayjoin.so,m_filter.so,m_globalload.so,m_globops.so, m_hidechans.so,m_hideoper.so,m_invisible.so,m_inviteexception.so,m_joinflood.so,m_kicknorejoin.so,m_knock.so,m_messageflood.so,m_nickflood.so,m_nicklock.so,m_noctcp.so
+-> CAPAB MODULES m_nokicks.so,m_nonicks.so,m_nonotice.so,m_operchans.so,m_permchannels.so,m_redirect.so,m_remove.so,m_sajoin.so,m_samode.so,m_sanick.so,m_sapart.so,m_saquit.so, m_services_account.so,m_servprotect.so,m_sethost.so,m_setident.so,m_setname.so,m_showwhois.so,m_shun.so,m_silence.so,m_stripcolor.so,m_svshold.so,m_swhois.so,m_timebans.so, m_watch.so
+-> CAPAB CAPABILITIES :NICKMAX=32 HALFOP=1 CHANMAX=65 MAXMODES=20 IDENTMAX=12 MAXQUIT=256 MAXTOPIC=308 MAXKICK=256 MAXGECOS=129 MAXAWAY=201 IP6NATIVE=0 IP6SUPPORT=1 PROTOCOL=1201 CHALLENGE=a%'ski?#-uo1y5u'kka PREFIX=(qaohv)~&@%+ CHANMODES=Ibeg,k,FJLfjl,ABCDGKMNOPQRSTcimnpstu SVSPART=1
+-> CAPAB END
+<- CAPAB START
+<- CAPAB MODULES m_allowinvite.so,m_alltime.so,m_auditorium.so,m_banexception.so,m_blockcaps.so,m_blockcolor.so,m_botmode.so,m_callerid.so,m_cban.so,
+m_censor.so,m_chanfilter.so,m_chanprotect.so,m_chghost.so,m_chgident.so,m_chgname.so,m_cloaking.so,m_commonchans.so,m_dccallow.so,m_deaf.so,m_delayjoin.so, m_filter.so,m_globalload.so,m_globops.so,m_hidechans.so,m_hideoper.so,m_invisible.so,m_inviteexception.so,m_joinflood.so,m_kicknorejoin.so,m_knock.so,m_messageflood.so, m_nickflood.so,m_nicklock.so,m_noctcp.so
+<- CAPAB MODULES m_nokicks.so,m_nonicks.so,m_nonotice.so,m_operchans.so,m_permchannels.so,m_redirect.so,m_remove.so,m_sajoin.so,m_samode.so,m_sanick.so,m_sapart.so,m_saquit.so, m_services_account.so,m_servprotect.so,m_sethost.so,m_setident.so,m_setname.so,m_showwhois.so,m_shun.so,m_silence.so,m_stripcolor.so,m_svshold.so,m_swhois.so, m_timedbans.so,m_watch.so
+<- CAPAB CAPABILITIES :NICKMAX=32 HALFOP=1 CHANMAX=65 MAXMODES=20 IDENTMAX=12 MAXQUIT=256 MAXTOPIC=308 MAXKICK=256 MAXGECOS=129 MAXAWAY=20 IP6NATIVE=0 IP6SUPPORT=1 PROTOCOL=1201 CHALLENGE=5g3#e/{kq5e-s5oo}a{ PREFIX=(qaohv)~&@%+ CHANMODES=Ibeg,k,FJLfjl,ABCDGKMNOPQRSTcimnpstu SVSPART=1
+<- CAPAB END
+-> SERVER test2.chatspike.net HMAC-SHA256:723921e3721e2a36a2a472c53c4773a0838eeb28e46a73f361eb2da9b61e9c22 0 751 :Test server
+<- SERVER test.chatspike.net HMAC-SHA256:8dfe2320a73ca5c8a7a95f2eceb9f8c1ebfd1e067dd28471c30f10abfe8ed8f0 0 037 :"Bollocks" Said pooh, as he caught his testicles in the vice.
+-> :751 BURST 1220196382
+-> :751 VERSION :InspIRCd-1.2 test2.chatspike.net :Linux brainwave 2.6.23-gentoo-r6 (InspIRCd-1.2.0a5+GreatCowGuru) [FLAGS=10222,epoll,751]
+-> :751 UID 751AAAAAA 1220196319 Brain brainwave.brainbox.cc netadmin.chatspike.net brain 192.168.1.10 1220196324 +Siosw +ACKNOQcdfgklnoqtx :Craig Edwards
+-> :751AAAAAA OPERTYPE NetAdmin
+-> :751 FJOIN #test 1220196321 +nt :o,751AAAAAA
+-> :751 ADDLINE E *@ircop.host.com <Config> 1220196315 0 :Opers hostname
+-> :751 ADDLINE Q *[rxHO]* <Config> 1220196315 0 :Script kiddiot.
+-> :751 ADDLINE Q ChanServ <Config> 1220196315 0 :Reserved For Services
+-> :751 ADDLINE Q MemoServ <Config> 1220196315 0 :Reserved For Services
+-> :751 ADDLINE Q NickServ <Config> 1220196315 0 :Reserved For Services
+-> :751 ADDLINE Q OperServ <Config> 1220196315 0 :Reserved For Services
+-> :751 ADDLINE Z 66.66.66.66 <Config> 1220196315 0 :This is the devils ip. You cannot use it.
+-> :751 ADDLINE Z 69.69.69.69 <Config> 1220196315 0 :No porn here thanks.
+-> :751 METADATA * filter :*BANTHIS* gline * 10 :Banned text
+-> :751 METADATA * filter :*BLOCKTHIS* block * 0 :Blocked text
+-> :751 METADATA * filter :*KILLTHIS* kill * 0 :Killed text
+-> :751 ENDBURST
+<- :037 BURST 1220196382
+<- :037 VERSION :InspIRCd-1.2 test.chatspike.net :FreeBSD neuron.brainbox.cc 5.4-RELEASE (InspIRCd-1.2.0a6+Tuxer) [FLAGS=10352,kqueue,037]
+<- :037 UID 037AAAAAA 1220196029 BrainNeuron synapse.brainbox.cc netadmin.chatspike.net brain 10.0.0.2 1220196034 +Sioswx +COQcdfkloqtx :Craig Edwards
+<- :037AAAAAA OPERTYPE NetAdmin
+<- :037 FJOIN #test 1220196030 +nt :o,037AAAAAA
+<- :037 ADDLINE E *@ircop.host.com <Config> 1220196025 0 :Opers hostname
+<- :037 ADDLINE Q *[rxHO]* <Config> 1220196025 0 :Script kiddiot.
+<- :037 ADDLINE Q ChanServ <Config> 1220196025 0 :Reserved For Services
+<- :037 ADDLINE Q MemoServ <Config> 1220196025 0 :Reserved For Services
+<- :037 ADDLINE Q NickServ <Config> 1220196025 0 :Reserved For Services
+<- :037 ADDLINE Q OperServ <Config> 1220196025 0 :Reserved For Services
+<- :037 ADDLINE Z 66.66.66.66 <Config> 1220196025 0 :This is the devils ip. You cannot use it.
+<- :037 ADDLINE Z 69.69.69.69 <Config> 1220196025 0 :No porn here thanks.
+<- :037 ENDBURST
+</pre>
View
4 README
@@ -1,4 +0,0 @@
-Github is a bit annoying in not allowing us to create an organisation wiki.
-
-Take a look at https://github.com/inspircd/wiki/wiki to see the real thing.
-
View
18 README.md
@@ -0,0 +1,18 @@
+Welcome!
+========
+
+Hello, and welcome to the InspIRCd documentation!
+
+Here are some resources that may (or may not!) be useful:
+
+* If you're stuck, the [Installation](https://github.com/inspircd/wiki/blob/master/Installation.md) and [Configuration](https://github.com/inspircd/wiki/blob/master/Configuration.md) pages might help get you going again.
+
+* Are you interested in [Contributing](https://github.com/inspircd/wiki/blob/master/Contributing.md)? We'd love to hear from you!
+
+* The [FAQ](https://github.com/inspircd/wiki/blob/master/FAQ.md) is a good place to start looking if you're new or curious!
+
+* To implement server software that talks to InspIRCd, the [Spanning Tree Protocol](https://github.com/inspircd/wiki/blob/master/Modules/spanningtree/Protocol.md) documentation might be useful.
+
+* If you spot a bug in the documentation then file an [issue](https://github.com/inspircd/wiki/issues) or a [pull request](https://github.com/inspircd/wiki/pulls).
+
+* If you'd like to talk to us, we're on IRC (of course) on [irc.chatspike.net #inspircd](irc://irc.chatspike.net/inspircd), but please make sure you read the [channel rules](https://github.com/inspircd/wiki/blob/master/IRC-Channel-Rules.md) first!
View
12 Release-Procedure.md
@@ -0,0 +1,12 @@
+To make a release:
+
+1. Ensure the branch builds
+2. Update src/version.sh
+3. Commit src/version.sh
+4. `git tag vX.Y.Z`
+5. `git archive vX.Y.Z --prefix inspircd/ | bzip2 > InspIRCd-X.Y.Z.tar.bz2`
+6. Upload the tarball to GitHub
+7. Generate a changelog for the website using `git shortlog --no-merges --pretty=short vX.Y.Z`
+8. Create a new post on the website using `rake post`
+9. Commit the new post.
+10. Update topic in #InspIRCd
View
65 SNOMASK.md
@@ -0,0 +1,65 @@
+Configuring SNOMASKs
+--------------------
+
+To set SNOMASKs, set user mode +s with the server notice masks you want as a parameter to the mode. For example, to see local and remote connections and quit notices, execute the following command:
+
+ /MODE YourNick +s +cCqQ
+
+To enable automatic setting of SNOMASKs upon opering, load [m_opermodes](https://github.com/inspircd/wiki/blob/master/Modules/opermodes.md) and set the modes in the type block. For example:
+
+ <type name="GlobalOp" classes="OperChat BanControl HostCloak Modular" host="globalop.chatspike.net" automodes="+s +cCqQ">
+
+To remove a SNOMASK, set user mode +s again, but remove masks by sending a 'negative' change. For example, to disable remote connection and quit notices, execute the following command:
+
+ /MODE YourNick +s -CQ
+
+To disable all server notice masks, simply remove user mode +s entirely:
+
+ /MODE YourNick -s
+
+A list of the valid server notice masks and what they do is listed below.
+
+Channel Logging
+---------------
+
+You can use the [m_chanlog](https://github.com/inspircd/wiki/blob/master/Modules/chanlog.md) module to send messages to a channel of your choice. You can even have multiple channels for different masks. Use local masks on every server to the same channel to receive messages globally in the channel.
+
+Valid Server Notice Masks
+-------------------------
+
+### Core Server Notice Masks
+
+These are the server notice masks implemented by the core. Modules (table #2) may implement extra notice masks.
+
+
+SNOTICE Mask | Function
+------------ | --------
+A | Allows receipt of global announcement messages
+a | Allows receipt of local announcement messages
+C | Allows receipt of remote connection messages
+c | Allows receipt of local connection messages
+Q | Allows receipt of remote quit messages
+q | Allows receipt of local quit messages
+k | Allows receipt of local kill messages
+K | Allows receipt of remote kill messages
+L | Allows receipt of linking related messages from other servers
+l | Allows receipt of linking related messages
+O | Allows receipt of remote oper-up, oper-down, and oper-failure messages
+o | Allows receipt of local oper-up, oper-down, and oper-failure messages
+d | Allows receipt of general (and sometimes random) debug messages
+X | Allows receipt of remote XLine notices (E/G/K/Q/Z as well as those provided by modules)
+x | Allows receipt of local XLine notices (E/G/K/Q/Z as well as those provided by modules)
+t | Allows receipt of attempts to use /STATS (local and remote)
+f | Allows receipt of flooding notices
+
+### Module Server Notice Masks
+
+SNOTICE Mask | Module | Function
+------------ | ------------ | --------
+g | m_globops | Allows receipt of local globops
+G | m_glopops | Allows receipt of remote globops
+n | m_seenicks | See local nickname changes
+N | m_seenicks | See remote nickname changes
+J | m_chancreate | Allows receipt of remote channel creation notices
+j | m_chancreate | Allows receipt of local channel creation notices
+v | m_override | Allows receipt of use of oper override

0 comments on commit 36cbdad

Please sign in to comment.