There are three ways to install [Limnoria] depending on your operating system. If you are on Debian-based Linux distribution e.g. [Debian], [*Ubuntu], [Linux Mint] you can install the Debian package. Or then you can install from source which should work on all other OSes too (at least Mac OS X, I don't have successful experience with Windows) and you can also install for current user only.
This method requires root access.
First become root by running
sudo su
Then download the Debian package. Here you have to choice do you install the stable version or testing version.
Replace "VERSIONHERE" with "master" to get stable version or "testing" to get testing version.
wget http://compiler.progval.net/limnoria-VERSIONHERE-HEAD.deb
dpkg -i limnoria-VERSIONHERE-HEAD.deb
apt-get install -f
The "apt-get install -f" tries to fix broken packages by downloading and installing missing depedencies if there are them.
To upgrade just run the steps above. Remember that the Debian packages are daily builds, so they are changed every day. You can see the latest change on [compiler.progval.net]. The "-HEAD" packages are always the most recent version.
I recommend that you have [git] installed, because it will make upgrading easier and you don't have to find the [download links] from [GitHub].
If you are going to do a global installation you might want to become root now, otherwise skip the next command
sudo su
Now download (or "clone") the git repository.
git clone git://github.com/ProgVal/Limnoria.git
move into the cloned repository
cd Limnoria
and decide do you want install stable or testing version.
In case you want the testing version, change into the testing branch. If you want the stable version skip this.
git checkout -b testing origin/testing
Now if you are root and what global installation, you run
python setup.py install
or local installation
python setup.py install --user
Limnoria is now installed and you can move to configuring it.
[Arch Linux] users (and users of other distributions which use python3 by default instead of python"): REPLACE "python" WITH "python2" in all commands!
Return to the git repository or if you have removed it, follow the installation steps again.
Update the cloned repository by running
git pull
and then reinstall
python setup.py install
or only for current user
python setup.py install --user
If you installed [Limnoria] as root, you can skip the next section and move to "running Supybot-wizard".
Limnoria's binaries were installed to ~/.local/bin which isn't in default $PATH. This means that you must either type the whole path always when you want to run Limnoria or add ~/.local/bin to your PATH. We do the previously mentioned.
You can add it to the PATH by running the following commands:
echo "PATH=$HOME/.local/bin:$PATH" >> ~/.bashrc
echo "PATH=$HOME/.local/bin:$PATH" >> ~/.zshrc
If you type only one ">" instead of ">>" in those commands, you will replace the content of those files with "PATH=HOME / . local / bin: PATH" instead of appending it into them.
then run
source .bashrc
or with zsh
source .zshrc
and you should be able to run the commands without needing to type the whole PATH, so you can now move into configuring.
NOTE: You don't need to do this again after upgrading.
First return to your home folder if you aren't there already.
cd ~
Now create a folder for your bot, move into it and run supybot-wizard.
mkdir bot
cd bot
supybot-wizard
This is a wizard to help you start running supybot. What it will
do is create the necessary config files based on the options you
select here. So hold on tight and be ready to be interrogated :)
First of all, we can bold the questions you're asked so you can
easily distinguish the mostly useless blather (like this) from
the questions that you actually have to answer.
Would you like to try this bolding? [y/n] (default: y)
y
Yes, we do. This bolding should work on both Linux and Mac OS X.
Do you see this in bold? [y/n]
y
I can't answer for you, but at least I see it in bold, so I selected y.
Great!
We've got some preliminary things to get out of the way before we
can really start asking you questions that directly relate to
what your bot is going to be like.
We want to know if you consider yourself an advanced Supybot user
because some questions are just utterly boring and useless for
new users. Others might not make sense unless you've used Supybot
for some time.
Are you an advanced Supybot user? [y/n] (default: n)
n
I am actually advanced Supybot user in my opinion, but in this guide we aren't advanced users :).
This version of Supybot (known as Limnoria) includes another
language. This can be changed at any time. You need to answer
with a short id for the language, such as 'en', 'fr', 'it'
(without the quotes). If you want to use English, just press
enter.
What language do you want to use? (default: en)
en
Supported languages are currently en, fr, fi, it, hu. I am the Finnish translator and I know that there are big issues with some translations. If you decide to use fi and notice issues, please report them at [issue tracker of my Limnoria fork at GitHub].
Your bot needs to create some directories in order to store the
various log, config, and data files.
Where would you like to create these directories? (default: .)
.
We created this new folder just for our bot.
Good! We're done with the directory stuff.
Now we're going to ask you things that actually relate to the bot
you'll be running.
First, we need to know the name of the network you'd like to
connect to. Not the server host, mind you, but the name of the
network. If you plan to connect to irc.freenode.net, for
instance, you should answer this question with 'freenode'
(without the quotes).
What IRC network will you be connecting to?
freenode
[Freenode] is very popular IRC network and Limnorias support channels are there too.
Network names should always be typen with small letters to avoid issues with some plugins e.g. [Relay] & [LinkRelay].
What server would you like to connect to?
irc.freenode.net
irc.freenode.net should put us into some server which is part of [freenode].
Found freenode (no network available).
IRC Servers almost always accept connections on port 6667. They
can, however, accept connections anywhere their admin feels like
he wants to accept connections from.
Does this server require connection on a non-standard port? [y/
n] (default: n)
y
We probably want to use [SSL] to make people on same (W)LAN unable to spy everything what the bot sees. SSL wasn't supported in [Supybot] directly without [Twisted], but it is in [Limnoria] and [Gribble].
What port is that?
6697
[SSL ports of freenode] are listed on their [homepage]. 6697 is popular SSL port as the wizard told previously in case you listened to the longer explanation :).
What nick would you like your bot to use?
You must use your imanigation and take a nick which you like.
Some servers require a password to connect to them. Most public
servers don't. If you try to connect to a server and for some
reason it just won't work, it might be that you need to set a
password.
Do you want to set such a password? [y/n] (default: n)
[Freenode] allows identifying to services with password username:password, but it's recommended to use [SASL] instead. I will tell how to use it after the wizard.
``` Of course, having an IRC bot isn't the most useful thing in the world unless you can make that bot join some channels.
Do you want your bot to join some channels when he connects? [y/ n] (default: y) ``` > y
Separate channels with spaces. If the channel is locked with a
key, follow the channel name with the key separated by a comma.
For example: #supybot-bots #mychannel,mykey #otherchannel
What channels? (default: )
limnoria-bots #supybot-bots
These two are bot testing channels for all [Limnorias] & [Supybots] & [Gribbles] which anyone can join with his/her bot.
Beginning configuration for Admin...
Done!
Beginning configuration for User...
Done!
Beginning configuration for Channel...
Done!
Beginning configuration for Misc...
Done!
Beginning configuration for Config...
Done!
Now we're going to run you through plugin configuration. There's
a variety of plugins in supybot by default, but you can create
and add your own, of course. We'll allow you to take a look at
the known plugins' descriptions and configure them if you like
what you see.
Would you like to look at plugins individually? [y/n]
y
Why not? We can see this list later by running "list --unloaded" with the bot.
What plugin would you like to look at? [Alias/Anonymous/
AutoMode/BadWords/ChannelLogger/ChannelStats/Conditional/Ctcp/
Dict/Dunno/Factoids/Filter/Format/Games/Google/Herald/
Internet/Karma/Lart/Later/Limiter/Math/MessageParser/
MoobotFactoids/Network/News/NickAuth/NickCapture/Nickometer/
Note/Plugin/PluginDownloader/Praise/Protector/Quote/QuoteGrabs/
RSS/Relay/Reply/Scheduler/Seen/Services/ShrinkUrl/Status/
String/Success/Time/Todo/Topic/URL/Unix/Utilities/Web]
NickAuth
NickAuth is very useful plugin which allows you to identify to your bot by identifying to network services. I will talk more about it later. NickAuth is currently only in testing version.
Don't load plugins which you don't need!
Add a description of the plugin (to be presented to the user inside the wizard)
here. This should describe *what* the plugin does.
Would you like to load this plugin? [y/n] (default: y)
y
...
We just found a bug! Good thing that I just told you what this plugin does.
This bug is now fixed.
Support authentication based on nicks and network services.
Would you like to load this plugin [y/n] (default: y)
y
See above.
Beginning configuration for NickAuth...
Done!
Would you like add another plugin? [y/n]
n
You can add other plugins if you want, but remember that you can see the list of unloaded plugins with "list --unloaded".
In advanced user mode you are asked a list of all plugins which you want to load instead of load one by one.
Although supybot offers a supybot-adduser script, with which you
can add users to your bot's user database, it's *very* important
that you have an owner user for you bot.
Would you like to add an owner user for your bot? [y/n]
(default: y)
y
I must tell you about supybot-adduser later. It's very helpful and so are the commands to give CTRL - C from terminal or reload the configuration from terminal.
What should the owner's username be?
Mkaysi
but you should probably use your own nick here.
What should the owner's password be?
password
DO NOT USE THAT PASSWORD!
Re-enter password:
password
DO NOT USE THAT PASSWORD!
Of course, when you're in an IRC channel you can address the bot
by its nick and it will respond, if you give it a valid command
(it may or may not respond, depending on what your config
variable replyWhenNotCommand is set to). But your bot can also
respond to a short "prefix character," so instead of saying "bot:
do this," you can say, "@do this" and achieve the same effect. Of
course, you don't *have* to have a prefix char, but if the bot
ends up participating significantly in your channel, it'll ease
things.
Would you like to set the prefix char(s) for your bot? [y/
n] (default: y)
y
Enter any characters you want here, but be careful: they should
be rare enough that people don't accidentally address the bot
(simply because they'll probably be annoyed if they do address
the bot on accident). You can even have more than one. I
(jemfinch) am quite partial to @, but that's because I've been
using it since my ocamlbot days.
What would you like your bot's prefix character(s) to be?
Qwerty123
By giving invalid prefix character, we get list of allowed prefix characters.
Value must contain only ~!@#$%^&*()_-+=[{}]\|'";:,<.>/?
What would you like your bot's prefix character(s) to be?
Just select something. You can later specify any character you want by using reply.whenaddressedby.strings. I will return to it later.
There are a lot of options we didn't ask you about simply because
we'd rather you get up and running and have time left to play
around with your bot. But come back and see us! When you've
played around with your bot enough to know what you like, what
you don't like, what you'd like to change, then take a look at
your configuration file when your bot isn't running and read the
comments, tweaking values to your heart's desire.
All done! Your new bot configuration is <BOTNICK>.conf. If you're
running a *nix based OS, you can probably start your bot with the
command line "supybot <BOTNICK>.conf". If you're not running a *nix
or similar machine, you'll just have to start it like you start
all your other Python scripts.
As the Wizard says, just run
supybot botnick.conf
which works even with local installation if you added ~/.local to $PATH.
COMING SOON(ER OR LATER)
Limnoria supports SASL thanks to nyuszika7h. SASL allows you to identify before you are even connected to the network.