Finding a Shell
To run an Eggdrop bot, you need a "shell account". This is your own personal space on computer linked to the Internet via high-speed connections, typically housed in a data facility or colocation centre alongside many other computers configured as dedicated "servers". A shell server runs a Unix-derived operating system, such as GNU/Linux or FreeBSD. You can upload files to and run programs on your account using FTP, telnet, or SSH. Shell accounts are very similar to web hosting accounts, but are more basic, cheaper, and feature the tools necessary to compile your own programs, like Eggdrop. The term "shell" comes from the text-based command line interface you use to manage your account on the Unix server.
Unfortunately, unlike Eggdrop, shell accounts generally aren't free. But since they're always connected to the Internet, they are the most popular and cost-effective platform for hosting IRC bots. Shell accounts can also be used for other things, from IRC-related stuff like running a bouncer or your own IRC server, to sending/receiving e-mail, maintaining a web site, and downloading files at high speed for temporary storage (until you're ready to download them to your own machine). You don't have to be experienced with Unix in order to set up and maintain a bot on a shell account, but you will need to learn a few basic commands.
Once upon a time, ISPs provided a Unix shell account free with their dialup accounts. Bots, however, were usually not permitted on such accounts, and the tools needed for compiling and running Eggdrop were often missing. This led to the creation of specialist providers offering "Eggable" shells, and these shell providers proliferated as ISPs dropped the Unix shell altogether as a feature of their services. Though some people are lucky enough to have a free shell on a friend's private "box", and many people nowadays have their own Linux or BSD system with a high-speed connection, the best option for most people wanting an IRC bot to sit on their channel around-the-clock is to get account with a commercial shell provider.
The provision of shell accounts for bots is a competitive industry and almost exclusively the domain of small business, so there's no shortage of choice and diversity of services offered. The going rate for a shell account that can host an Eggdrop or two has fallen sharply in recent years, with many now costing US$5 per month or less, sometimes with a small setup fee. Providers can be found worldwide, and using the region search options of the Shell Provider List, you should be able to find a shell provider either in your country or a neighbouring one. Some providers only accept customers from particular countries or regions, though most, particularly those in the United States, accept customers from all over the world. Payment options may include credit card, PayPal, Western Union, direct deposit, cheque, and money order, though not all providers offer all these methods.
When hunting for a shell provider, the main thing you have to go by is reputation. Claims like "99.9% uptime" and "excellent support" on a shell provider's home page often have very little meaning and are just part of the standard sales pitch. The shell market is particularly volatile—a provider offering a seemingly great deal on a shell account may be there one month but gone the next—the result of a high failure rate for new shell businesses. Just take a look at the deleted providers list to see how many go out of business. Inexperienced entrepreneurs unprepared for the difficulties in running a commercial shell service often discontinue shells after just a few months to focus on services where abuse is less of a problem (such as web hosting), or close shop completely, abandoning customers who've paid for the service in advance.
You are much less likely to get burned if you go with a well-established provider with a reputation for being professional about the way they run the service and deal with customers. Some things to watch out for are shell providers who don't publish their full (and valid) address and contact details, providers that require you pay for many months of service in advance, and those that offer an unusually large number of processes or disk space for a very low price - these things are possible indications of a shonky business. If you can't find the provider's street address and phone number on their website, be wary. If you can, give them a call and make sure there's an answer. It's also a good idea to look up the WHOIS information for their domain name to check that they don't have suspicious contacts listed (e.g. Hotmail or other free e-mail services for their e-mail contacts).
Most shells have a certain amount of downtime each month due to problems (both expected and unexpected) and upgrades. Downtimes result in your bot going offline. The length of the downtime can range from a simple reboot which only lasts a few minutes, to several hours and even days. The best shell providers have very little downtime (less than one hour per month). Your average shell will probably have a few downtimes totalling several hours, while the worst shells can go up and down like a see-saw. What you need to look for is a shell provider that has very few and very short downtimes. Long, unbroken 'uptime' stretches are nice, but not quite as important.
These days, commercial shell providers often experience DoS (Denial of Service) attacks, frequently caused by people trying to take over an IRC channel by attacking the bot's shell. A serious attack will generally cause your bot to 'ping out' and leave IRC because it's too lagged to stay connected, and access to the shell will often be inaccessible or very lagged until the attack is over, so DoS attacks are a lot like downtimes. An attack may not necessarily be caused by an attack on your bot, but more often than not an attack on someone else's bot on the same shell. Shell providers with fast connections, and, often more importantly, good firewall systems, will generally be less vulnerable to attacks. Unfortunately, serious DoS attacks against shell providers often force them to leave the shell business.
Monitoring and security are other things you to look at when purchasing a shell, as these things can contribute significantly to the amount of downtime and DoS attacks. Poorly monitored shells and those with inexperienced administrators will be vulnerable to 'cracking', which could compromise the security of your bot and channels (if the shell your bot is on is cracked, then the attacker can add themselves to your bot and take control of any channels the bot is opped on). The best shells always have experienced staff keeping a close eye on the shell and its users to keep things running smoothly, and swiftly deal with any abusive users. Without this, the quality of a shell can deteriorate very quickly, with frequent attacks and downtimes due to abusive users and admins who aren't around to fix any problems.
Support and responsiveness are important for many people, the former being important for 'newbies', the latter also for experienced users. Unfortunately, a lot of shell providers fall short in these areas. Many shells are relatively unresponsive to users and fall far short of expectations as far as customer service is concerned. Some shell providers, for example, have an IRC channel for support, but in many cases such IRC channels rarely have anyone around willing to respond to a question about your account or help you with a problem. Some providers, on the other hand, have outstanding support, with friendly and responsive staff willing to answer questions promptly. They also keep their users informed of planned downtimes and changes. Reputation and word of mouth are the best ways to find out about the responsiveness of a shell provider's staff.
Shell accounts vary in the types of features offered. Below are descriptions of some shell features you need to be familiar with before purchasing a shell account.
Number of processes: this is the number of 'background' processes you're allowed to run. An Eggdrop counts as one background process. A basic shell account typically lets you run one or two background processes. Some shells allow multiple background processes, but only a certain number of Eggdrops (e.g. two processes, but only one of those may be a bot).
Disk quota: this is the amount of space you have on the shell. The amount of space an Eggdrop takes up depends on the flavour of Unix the shell is running, the version of Eggdrop, scripts you use, channel log files, etc. When first setting up the bot you will need enough space to extract the files to compile (around 5 MB) plus enough space for each bot (usually under 5 MB - it varies depending on the operating system your shell uses), so a quota of around 10 MB is enough for an Eggdrop. Keep in mind that the disk quota is often not the same as the amount of web space provided.
Web page and e-mail: most shell providers offer a web page and e-mail account as a standard feature. Your disk quota usually determines the amount of space you can use for a web page, but on many shells there are different amounts specified for disk quota and web space. E-mail is a low priority on most Eggdrop shells, so many don't offer POP3 e-mail for use with a Windows e-mail client.
Connection: this is the type of connection the shell provider's network has to the Internet, and mainly affects the speed at which you can download files to the shell via FTP. It can include anything from a single T1 line (1.54 Mb/s) to multiple OC-192 lines (9953.28 Mb/s each), though a shell server doesn't normally have such a high-speed line to itself. A provider may claim to have an OC-192, but the shell boxes may be colocated, sharing the connection with other machines. For running bots, speed is generally not as important as other factors such as price, reliability, security and support, as long as the provider's link isn't overloaded. A small provider with a relatively slow connection can sometimes be more stable than a large provider on an OC-192. Commercial shells on cable modem, DSL, and ISDN connections should generally be avoided, though.
Pricing and ordering: the cost for a basic shell account for IRC bots ranges from about US$3 to US$15 per month, with some providers also charging a setup fee within pretty much the same price range. Almost all providers require you to pay for the account in advance, and activation of the account will rarely occur until payment is received. Many shell providers allow you to order via credit card, which is most convenient for international customers. Due to a high rate of credit card fraud, most providers are very careful about credit card verification, and may require voice contact, or a photocopy of your card and some form of identification, before activating the account. Although this may be annoying or inconvenient, a provider who doesn't perform multiple credit card checks may have users who obtained accounts via credit card fraud, so a provider performing rigorous checking is a good sign. Other electronic payment methods include PayPal and Western Union. Almost all providers accept advance payment via post in the form of a cheque or money order. In some cases, direct transfer of funds to the shell provider's bank account is also an option.
Ordering is generally done via an online order form. Some shells don't have 'secure' forms for credit card ordering, so if you're ordering via credit card then you should make sure the online order form you're using is secure (most providers will let you phone or fax your credit card details instead of using the online order form). The amount of time it takes to activate in the account will depend on the provider - generally, with most providers, an account ordered by credit card will be activated within 24 hours, but others will take longer.
An important warning about advance payments - because of the volatility of the shell market, it's not a good idea to pay a large amount of cash up front. Don't pay for six months or a year's service up front without being aware of the risk that the shell provider may perform a vanishing act after just a couple of months. I've lost count of the number of e-mails I've received from people telling me they paid a year in advance only to find the provider went out of business after just a couple of months, or that the service was significantly degraded not long after they first signed up. It's generally best to pay on a monthly or quarterly basis, even if a yearly payment may look like a better deal.
Vhosts: short for 'virtual hosts' or 'vanity hosts'. By default, your bot will appear on IRC with the hostname of the shell (e.g. email@example.com). Vhosts let you use different hosts for your bot. These can look something like firstname.lastname@example.org, but can also use different domains like email@example.com. The vhosts offered by the shell are a set list (so you can't just have anything you like), although some shells can provide you with a personal custom vhost for a fee.
Policies: most shell providers have very similar policies and terms of service, generally prohibiting such things as spamming, cracking, warez (software piracy), and IRC channel takeovers. A typical policy statement will also outline the right of the shell provider to suspend or close your account without refund for breaching the rules. It's a good idea to read the policies / terms of service before ordering, but in general, these won't affect you unless you plan on being naughty. However, you should keep in mind that any files in your shell account may be inspected by the server administrators, so it's not a good idea to place any personal files there.