Documentation
Note: This documentation is always trying to cover the newest WeIRCd versions. It might be inacurrate for older versions.
You read through everything you could find here and it didn't help you to fix your problem? Get support.
You might also want to report bugs and errors in WeIRCd.
This section is still being worked on. Expect to read very incomplete and rare information.
This is the user documentation. What you can find here:
- 1 How to install and startup WeIRCd
- 2 Using and configuring WeIRCd
- 3 Runtime module handling
- 4 Advanced technical information
1 How to install and startup WeIRCd
1.1 Installing WeIRCd on Windows
1.1.1 Fresh installation on Windows systems
The installation on Microsoft Windows doesn't include much more than starting up the installer and following its instructions (just click at the big green download button at the front page).
The graphical installer will ask you for the install location, you can proceed with the default.
After the installation, you may start WeIRCd's graphical administration panel. A click on "Start server" will immediately start the server (eventually asking for an IRC op password). The "Settings" tab will allow you to easily change the server settings also while it is already running.
If you run into any issues regarding the installation, contact us to ask for assistance.
1.1.2 Update to a newer version on Windows systems
An update on a windows system is as easy as a fresh installation. Just download the graphical setup for the new version and start it, it will detect that you already have an older version installed and lead you through the updating process.
If you run nevertheless into any complications, contact us and tell us about it.
1.2 Installing WeIRCd on Unix systems
This section covers how to do a fresh WeIRCd install on any Unix system and how to update a previous installation.
1.2.1 Fresh installation on Unix systems
- autoconf
- automake
- libtool
- GNU make
- SQlite3 including dev files (used by the services)
Warning: This guide is for WeIRCd 0.7.5 or newer
First, you need to obtain the source code:
Getting the source code
This will obtain you a file named “WeIRCd0.7-src.tar.gz” or similar.
Now, extract this file (it will automatically extract everything into a sub folder, so you don't need to manually do this in an explicitely created sub folder):
Now, you should have a new sub directory named after your obtained WeIRCd version, e.g. WeIRCd0.7.5.
We will now move into that directory by using the “cd” command so we can execute the following steps from there:
The installation
You can now start the installation by entering:
The installation will ask you for some path values. When you're not sure what they mean, you should probably go with the default (just press enter).
In the end, the setup will show you a summary which you need to confirm by typing Y and pressing enter. Then it will start to configure and compile.
When the installation script finished, type sudo make install to complete the installation.
Get a configuration file
We don't have a configuration file yet, so WeIRCd wouldn't startup. To solve this, download the current example config.
Examine it and most importantly, change the default password. To do this, search the following block:
IrcOps { //this is where you place your IRC op accounts
DefaultOp {
Password = XXXX
Host = superadmin.mynet.net
Flags = Global + Linking + Services + SetHost + Shutdown + Connections + Rehash + Modules;
}
}The inner part titled "DefaultOp" contains the settings of the admin account named "DefaultOp", also the password which is set to "XXXX". Simply set it to something else (please note it may not contain space chars or a ";" character).
For more detailed config help, see the documentation section about configuration.
When you're done, save the configuration file to /etc/weircd/weircd.conf (or in any other configuration directory you chose during configuration).
Run the server
Very important: No server should normally be run with root user privilegues, but starting WeIRCd up as root will not only make it automatically create a normal user account, but also make sure that user account has the needed file access rights to read and modify (for updating it) the configuration file and to create the necessary files in the data directory. It is therefore encouraged to startup WeIRCd with root privilegues especially when you're not an experienced system administrator.
If you receive any error messages when starting up, especially config related ones, please note this is not uncommon and that many users run into trouble at this point. Just read the error message (it will most likely tell you the line where things went wrong) and read the guide on configuring WeIRCd. If that all doesn't help, don't feel desperate and get support!
1.2.2 Update to a newer version on Unix systems
To update an installation on unix systems, just go through the installation again but keep your old configuration file.
Finally, you need to update your configuration in case the syntax changed. The best thing is to read the README or changelog.txt shipped with your WeIRCd update. Given there are any changes, you will be notified of details there and how to update it.
If you are unable to get the update working, contact us and tell us about it.
2 Using and configuring WeIRCd
This section is not written yet.
3 Runtime module handling
4 Advanced technical information
4.1 IRC commands supported by WeIRCd
This section is a reference of IRC commands which WeIRCd supports. Please note it always refers to the latest release and therefore you might need to update your server before having access to all commands listed here.
This is independent from the RFC documents specifying the IRC protocol. When there are any difference between this reference and the RFC, this document always takes precedence.
4.1.1 Using IRC commands
Most IRC clients will allow you to execute those commands by prefixing them with a / slash:
/COMMAND Parameters
In case this doesn't work properly, you might need to contact your client's support for help.
Parameters put in [Brackets] are optional and not necessary to execute the command.
For the GLINE/KLINE command, the brackets indicate a set of different options of which only one must be supplied.
4.1.2 Command list
| Command syntax | Resulting action |
| AWAY [reason] | Tell others that you are away with a specified reason (e.g. “I'm busy”). No reason tells others that you are back (but some clients will explicitely need you to use /back instead which is a client-side implementation). |
| GLINE [+mask timespan reason|-mask|<no params>] | Either add a gline mask with a specific expiration timespan and reason, remove a gline mask or simply list all glines. A gline is a global ban which will keep the affected users that match the mask from connecting to any server in a network, showing the reason to them as explanation. The glines will expire after the expiration time span is over. |
| INFO | Displays some information about the server software. |
| INVITE user channel | Invite the given user into a channel you're currently in. |
| ISON user | Checks if a specific user is online. |
| JOIN channel [password] | Join the channel with the specified channel name. Channel names always start with a # char. You may open any channel you wish (although a channel name cannot contain a space char and some special characters do not work). If that channel already exists and that channel is password protected, you need to specify the password aswell or it won't work. |
| KICK channel nickname [reason] | Allows channel operators (or channel halfops) to throw out the specified user of the specified channel with optional a given reason. Please note that people with halfop state can only throw out people having only voice status or less, whereas real channel operators can throw out everyone, including themselves. |
| KILL nickname reason | Disconnect a specific user from the server. Can only be used by IRC operators/administrators. Please note that the kill reason is not optional. |
| KLINE [+mask timespan reason|-mask|<no params>] | Similar to GLINE, but instead of issuing a global ban this issues a local ban that is only affecting users connecting to the specific server where this command has been used. |
| LINKS | Display all the servers this server is connected to. |
| LIST | Get a list of all currently opened channels. |
| LISTMODE | An implementation of Shane Mc Cormack's LISTMODE extension. |
| LUSERS | Display some information on the users currently online (amount etc). |
| MODE channel | Implements the MODE command to change channel and user modes. Details are specified in RFC 1459. |
| MODULES [...parameters...] | Runtime module handling: Unloading/loading and examining modules at runtime (see module handling section). |
| MOTD [server] | Print the local message of the day, or when specified the motd of the target server that is part of the network. |
| NAMES channel | Request a list of users in that channel. Your client might be using this command automatically to display you a graphical user list. |
| NICK nickname | Change your current nickname to the specified one. |
| NOTICE target :message | Comparable to PRIVMSG, this also sends a message to the target. It is considered more unobtrusive and may not be answered automatically. |
| OPER account password | Login as IRC operator/administrator with the respective account name and password. Please note that both parameters are case sensitive. |
| PART channel [reason] | Leave a specific channel you are already in, optionally with displaying a reason why you left it. |
| PASS password | This command is used during the login procedure. You will most likely never use it manually. |
| PING value | Ping the server you are currently on. You will most likely not use that yourself, but your client will maybe do that internally. |
| PONG value | Respond to a PING that the server has sent to you. This is done by your client automatically and you will most likely never use this yourself. |
| PRIVMSG target :message | Sends a message to the target (target can be a channel name or a user name). |
| QUIT [reason] | Leave the server, while optionally displaying a reason why you left. |
| REHASH | Rehash the server configuration. Can only be used by IRC operators/administrators. |
| RULES | Alternate name for the MOTD command. |
| SETHOST host | Change your own host to any type of vhost. Can only be used by IRC operators on themselves. |
| STATS | Currently unimplemented and will always return an error about missing privilegues. |
| TIME [server] | Show the time of your current server's clock (ideally being the same as yours) or optionally also of another server your current server is connected to. |
| TOPIC channel [new] | Show the topic of a channel or set it to something new. |
| USER ... | This command is used during the login procedure. You will most likely never use it manually. |
| USERHOST nickname | Get details about the target user's host. |
| VERSION | Display this server's program version. |
| WHO target | WHO shows information about a specific user or a group of users, whereas target can be a nickname or a channel (which then shows information about all the users in the channel). The output is less detailed than the WHOIS output, but allows for easy examination of all the users in a channel. |
| WHOIS nickname | Get a very detailed WHOIS output for a specific user. Contains information like host, real name (or what the user specified for it), the channels the user is in etc. |
| WHOWAS nickname | Get information about the earlier usage of some nick. Currently, WeIRCd will never show any valuable information for this command. |
4.2 Channel and user modes supported by WeIRCd
The channel modes, user modes and ban list types supported by WeIRCd in its latest release.
Please note some modes specified by RFC1459 are not specified here. This is not a mistake, but just a development decision to not support them.
4.2.1 Channel modes
Channel modes can be set and removed by channel operators and half operators using the MODE command.
Those channel modes are supported by WeIRCd:
| Mode and its parameters | Resulting effect |
| +c | Forbid any coloured channel messages (formatting like bold or underlined is still allowed). |
| +i | Make the channel invite only. People must be invited by a channel operator to be able to join the channel. |
| +k password | Specify a channel password that needs to be specified when joining the channel. |
| +l amount | Allow only the specified amount of people to join the channel. When the amount is reached, noone else will be able to enter the channel anymore. |
| +m | Mute users that don't have channel op, halfop and voice status. Anyone having voice status or better will still be able to speak. Useful for lectures. |
| +n | Don't allow users that are not in a channel to send messages to it. This mode is always enforced on WeIRCd for security and spam reasons. |
| +r | Can't be set manually. Indicates that a channel is registered through services. |
| +s | Make the channel secret. That means it won't be shown in the global channel list accessible by anyone and will also be excluded from the WHOIS channel list of any user. |
| +t | Only allow halfops and ops to change the channel topic. Prevents normal users from editing your channel topic. |
4.2.2 Channel ban lists
WeIRCd only allows classical +b ban lists so far, no ban exclusion list or similar.
4.2.3 User modes
User modes affect a specific user and apart from the server, only the user himself can change those modes.
The following user modes are supported by WeIRCd:
| Mode | Resulting effect |
| +B | Mark yourself as being an IRC bot. Should only be used by bots to mark themselves accordingly. |
| +c | Mark yourself for receiving notices for every new established connection to the IRC network. May only be used by IRC ops with the "Connections" oper flag. |
| +F | The user is not affected by flood protection. May only be used by IRC ops with the "NoFlood" oper flag. |
| +h | Indicates that you have an altered host and will prevent your host from being changed on login. Can't be changed manually. |
| +o | Only the server can set this. Shows that you have IRC operator privilegues (will be set on oper login). |
| +r | Only the server or a services bot can set this. Indicates that the user's nickname is registered through services. |
| +S | Only the server can set this. Indicates that the user is a services bot and has the respective privilegues. |
4.2.4 Channel status levels
The modes for channel status levels are technically channel modes but aren't part of the channel mode reply when set, instead they are shown through a NAMES reply (users will be prefixed with the appropriate status) or also a WHO reply or inside a user's list of channels in a WHOIS reply.
The modes for channel status levels take a user as an argument and may set the status level for that user or remove it.
Example usage (passes Voice channel status inside the channel named #chan to the user named foobar):
| Mode | What can be done | What can't be done |
| +v (Voice) |
|
|
| +h (HalfOp) |
|
|
| +o (Op) |
|
|
4.3 Linking protocols supported by WeIRCd
This section is not written yet.