-
-
Notifications
You must be signed in to change notification settings - Fork 84
/
README
240 lines (172 loc) · 9.27 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
README
Please, at least SKIM this document before asking questions. In fact,
READ IT if you've never successfully set up an Eggdrop bot before.
NOTICE
Make SURE that you select your +n (owner) users wisely. They have 100%
access to your bot and account. ONLY GIVE THIS POWER TO SOMEONE YOU
TRUST COMPLETELY!
WHAT IS EGGDROP?
Eggdrop is the world's most popular Internet Relay Chat (IRC) bot; it
is freely distributable under the GNU General Public License (GPL).
Eggdrop is a feature-rich program designed to be easily used and
expanded upon by both novice and advanced IRC users on a variety of
hardware and software platforms.
An IRC bot is a program that sits on an IRC channel and performs
automated tasks while looking just like a normal user on the channel.
Some of these functions include protecting the channel from abuse,
allowing privileged users to gain op or voice status, logging channel
events, providing information, hosting games, etc.
One of the features that makes Eggdrop stand out from other bots is
module and Tcl and Python scripting support. With scripts and modules
you can make the bot perform almost any task you want. They can do
anything: from preventing floods to greeting users and banning
advertisers from channels.
You can also link multiple Eggdrop bots together to form a botnet.
This can allow bots to op each other securely, control floods
efficiently and even link channels across multiple IRC networks. It
also allows the Eggdrops share user lists, ban/exempt/invite lists,
and ignore lists with other bots if userfile sharing is enabled. This
allows users to have the same access on every bot on your botnet. It
also allows the bots to distribute tasks such as opping and banning
users. See doc/BOTNET for information on setting up a botnet.
Eggdrop is always being improved and adjusted because there are bugs
to be fixed and features to be added (if the users demand them and
they make actually sense). In fact, it existed for several years as
v0.7 - v0.9 before finally going 1.0. This version of Eggdrop is part
of the 1.9 tree. A valiant effort has been made to chase down and
destroy bugs.
This README file contains information about how to get Eggdrop,
command line options for Eggdrop, what you may need to do when
upgrading from older versions, a list of frequently asked questions,
how to set up a crontab, some boring legal stuff, some basics about
git usage and some channels where you might get help with Eggdrop.
HOW TO GET EGGDROP
There are two official methods to download Eggdrop source code.
Alternately, Eggdrop also comes as a docker image.
FTP
The latest Eggdrop stable source code is always located at
https://geteggdrop.com. You can also download the current stable,
previous stable, and development snapshot at
https://ftp.eggheads.org/pub/eggdrop/source
Git Development Snapshot
Eggdrop developers use git to manage the Eggdrop codebase for
development. If you are interested in trying out the VERY LATEST
updates to Eggdrop, you can use git to obtain most recent code from
the Eggheads repository. BE WARNED, the development branch of Eggdrop
is not to be considered stable and may (haha) contain significant bugs
still being worked on.
To obtain Eggdrop via the git repository (hosted by GitHub), you can
either clone the repository via git or download a development
snapshot.
To clone the repository, simply type:
git clone https://github.com/eggheads/eggdrop.git
Otherwise, you can download the development snapshot as a tar archive
from:
https://github.com/eggheads/eggdrop/archive/develop.tar.gz
Docker
You can pull the official Eggdrop Docker image via:
docker pull eggdrop:latest
Additional Eggdrop Docker documentation can be found at
https://hub.docker.com/_/eggdrop
SYSTEM PRE-REQUISITES
Before you can compile Eggdrop, Tcl must be installed on your system.
Many systems have Tcl installed on them by default (you can check by
trying the command "tclsh"; if you are given a '%' for a prompt, it
is, and you can type 'exit' to exit the Tcl shell. However, Eggdrop
also requires the Tcl development header files to be installed. They
can often be installed via an OS package manager, usually called
something similar to 'tcl-dev' for the package name. You can also
download Tcl source from
https://www.tcl.tk/software/tcltk/download.html.
Eggdrop also requires openssl (and its development headers) in order
to enable SSL/TLS protection of network data. The header files are
often called something similar to 'libssl-dev'. While not advised,
this requirement can be removed by compiling using
./configure --disable-tls, but you will not be able to connect to
TLS-protected IRC servers nor utilize secure botnet communication.
MINIMUM REQUIREMENTS
Some components of Eggdrop relies on a variety of third-party libraries,
documented here.
-----------------------------------------------------------------------
Functionality Package Minimum Version
------------------------------- ------------------- -------------------
Tcl interpreter (required) Tcl Dev Library 8.5.0
Secure communication OpenSSL 0.9.8
Python module Python 3.8.0
Compression module zlib Any
-----------------------------------------------------------------------
QUICK STARTUP
Please see the Install file after you finish reading this file.
UPGRADING
The upgrade process for Eggdrop is very simple, simply download the
new source code and repeat the compile process. You will want to read
the NEWS for any new configuration file settings you want to add.
Please see Upgrading for full details.
COMMAND LINE
Eggdrop has some command line options - not many, because most things
should be defined through the config file. However, sometimes you may
want to start up the bot in a different mode and the command line
options let you do that. Basically, the command line for Eggdrop is:
./eggdrop [options] [config-file]
The options available are:
-t: Don't background, use terminal. Your console will drop into an
interactive partyline session, similar to a DCC chat with the
bot. This is useful for troubleshooting connection issues with
the bot.
-c: Don't background, show channel info. Every 10 seconds your screen
will clear and you will see the current channel status, sort of
like "top".
-m: Create userfile. If you don't have a userfile, this will make Eggdrop
create one and give owner status to the first person that
introduces himself or herself to it. You'll need to do this when
you first set up your bot.
-h: Show help, then quit.
-v: Show version info, then quit.
Most people never use any of the options except -m and you usually
only need to use that once.
AUTO-STARTING EGGDROP
Systems go down from time to time, taking your Eggdrop along with it.
You may not be not around to restart it manually, so you can instead use
features of the operating system to automatically restart Eggdrop should
it quit for any reason. Eggdrop comes with an autobotchk shell script
that can create either a systemd or crontab entry. The systemd option
will monitor your Eggdrop and a) start it when the machine boots and b)
restart the Eggdrop if it crashes for any reason. The (older) crontab
option will check (by default) every 10 minutes to see if your Eggdrop
is still running, and attempt to restart it if it is not.
To auto-generate a systemd job, from the Eggdrop install directory,
simply run:
./scripts/autobotchk <Eggdrop config file> -systemd
To auto-geneerate a script to check Eggdrop's status and run it via a
crontab entry, simply run:
./scripts/autobotchk <Eggdrop config file>
This will crontab your bot using the default setup. If you want a list
of autobotchk options, type './autobotchk'. A crontab example with
options would be:
./scripts/autobotchk <Eggdrop config file> -noemail -5
This would setup crontab to run the botchk every 5 minutes and not
send you an email saying that it restarted your bot.
DOCUMENTATION
We're trying to keep the documentation up to date. If you feel that
anything is missing here or that anything should be added, etc, please
create an issue, or better yet a pull request, at
https://www.github.com/eggheads/eggdrop Thank you!
OBTAINING HELP
You can obtain help with Eggdrop in the following IRC channels:
- Libera Chat - #eggdrop (official channel), #eggheads
(development discussion)
- DALnet - #eggdrop
- EFnet - #egghelp
- IRCnet - #eggdrop
- QuakeNet - #eggdrop.support
- Undernet - #eggdrop
If you plan to ask questions in any of the above channels, you should
be familiar with and follow IRC etiquette:
- Don't type using CAPITAL letters, colors or bold.
- Don't use "!" and "?" excessively.
- Don't /msg people without their permission.
- Don't repeat or paste more than 4 lines of text to the channel.
- Don't ask to ask- just state your question, along with any
relevant details and error messages
Copyright (C) 1997 Robey Pointer Copyright (C) 1999 - 2024 Eggheads
Development Team