SirvNET Services v2.9.0-Public (Atafix)


                    TABLE OF CONTENTS:
                 -_-_-_-_-_-_-_-_-_-_-_-_


  1)  ..........................  Introduction
  1.1)  ........................  Features
  1.2)  ........................  Requirements
  2)  ..........................  Installation
  3)  ..........................  services.conf
  3.1)  ........................  services.conf lines
  3.2)  ........................  services.conf options
  3.3)  ........................  services.conf auto settings
  4)  ..........................  oper.conf
  5)  ..........................  E-Mail Signature
  5.1) .........................  Authorization E-Mail customization
  6)  ..........................  News Updates
  7)  ..........................  Help Files
  8)  ..........................  HTML Dumping
  9)  ..........................  Running for first time
  10)  ..........................  Support
  11)  ..........................  Installation FAQ
  12)  ..........................  Documentations
  13.1)  ........................  Beta testers
  13.2)  ........................  Web/FTP sites


1) (-- INTRODUCTION --)

     SirvNET Services are powerful tools for Internet Relay Chat
  networks.  The main purpose in having services are for
  nickname and channel registrations.  Registration basically
  gives the user ownsership.  This enhances IRC's flexibility
  and gives IRC operators much more options in controlling
  the network.

     Services are ran as a process daemon, similar to the
  operation of the IRC daemon (ircd).  Services run and
  connect to a server on a network the same way another
  IRC server connects.  Services have been coded to
  primarly rely on the RFC 1459 IRC protocol, but, more
  specifically, the DALnet dreamforge 4.6.x ircd.
  As of version 0.8.4 (which was a pre-release), supports
  the new TS3 Protocol (DALnet's bahamut ircd).
  Services may run successfully with other varients of ircd,
  however for optimal performance, try to use the ircd
  mentioned above.  Future versions may be specifically
  supported, but not at this time.


1.1) (-- FEATURES --)

     SirvNET Services have a broad list of features and
  advantages.  Online help files have been included in
  this package and binary you have received.  For the
  best way to view them all, run services and use the
  commands: /msg <service> HELP  ie: /msg nickserv help
  If you are an IRC Operator, an additional list of
  functions may be found via /msg <service> OHELP.

     For completeness, provided below are just a few
  of the features you will find in SirvNET Services.

     USERS:

     * Nick/Channel Registrations.
     * Ability to kill ghosts via password.
     * Ability to force a person to give you your nick.
     * Easy channel management with access levels
                     - Auto-Voice   - Auto-Op
                     - Super-Op     - Co-Founder
     * Less chances of channel take-overs.
     * Ability to auto-kick users from a channel.
     * Restricted access settings available to founder.
     * Channel mode lockings.
     * Memo feature to leaves notes when users are offline.
     * Channel memos: sent to everyone on the chan access list.
     * Ability to have memos sent via email.
     * Memo unsend/delete/purge features.


     OPERS:

     * 4 Services levels of access
                 - Help Operator   - Services Operator
                 - Services Admin  - Services Root
     * Global Autokill feature to ban user host for the
       entire network.
     * Jupe feature to prevent servers from connection.
     * Stats feature to view network information.
     * Clone warnings.
     * Trigger system to control clone warnings.
     * Abiltly to be send organized services logs via email.
     * AbuseServ to control abusive clients.
     * Getpass to retreive lost nick/chan passwords.
     * Services timed ignores.
     * Channel MARK/HOLD/FREEZE/SUSPEND/DELETE features.
     * Services Q-Line system.
     * Real-Name catching feature. (Detects key-words in /whois real-name)
     * Channel levels to only allow access to opers/services admins/etc


     MISC:

     * Nick/Chan/Memo configurable expiry times.
     * Flood level control.
     * ChanServ recognizes multiple identified nicks.
     * Channels expire with nick expiry.

   This is just a small list.  Many more features are included
   in the package.  View the  CHANGES  file for version updates.


1.2) (-- REQUIREMENTS --)

     In the way of requirements, not much is needed.  The most obvious
  requirement would to first of all have a network to link SirvNET 
  Services to.  Also, if this is a large network, an internet connection
  of a T1 or greater is recommended.  As for the system, the following
  systems and platforms have been tested:

     AMD 5x86 133 running FreeBSD 2.2.6 and FreeBSD 2.2.8  (16MB EDO)
     AMD K6-233 running FreeBSD 2.2.7 and 2.2.8.           (64MB SDRAM)
     AMD K6-233 running Linux RedHat 5                     (64MB SDRAM)
     Cyrix 6x86 running Linux Slackware 3                  (32MB EDO)
     Intel P200 running FreeBSD 2.2.6                      (128MB SDRAM)
     Intel P2-400 running Linux 2.0.34                     (256MB SDRAM)
     Intel P233 running Freebsd 2.2.8                      (96MB EDO)
     Intel P2-300 running Linux S.u.S.e                    (192MB SDRAM)
    

     Currently, only FreeBSD and Linux have been tested, and
     that is the only available binaries for SirvNET Services.


2) (-- INSTALLATION --)


***** PRE-COMPILED BINARY INSTALLATION *****

     Installing SirvNET Services should not be very time consuming,
  following you read the instructions.  Firstly, it is imperative
  that you chose the proper binary for the operating system you
  are using.  Below explains this in detail:

  Currently, 2 platform binaries are available: Linux, and FreeBSD.

  Sirv[Version]-(Release).(Platform)(Content)

  Example:  Sirv1.0.0-pub.lb-bahamut <-- Compiled specifically for Bahamut
             |  |-|-|  |  ||---  Binary
             |    |    |  |----  Linux Version
             |    |    |-------  Public Release
             |    |------------  Version Number
             |-----------------  Name of services

  Example:  Sirv1.0.0-beta.fs-bahamut
             |  |-|-|  |   ||--  Source
             |    |    |   |---  FreeBSD Version
             |    |    |-------  Beta Release
             |    |------------  Version Number
             |-----------------  Name of services

     Since there is no need to compile, all that is
   required of you is to make the services.conf,
   and run the binary.

   Read "RUNNING INSTRUCTIONS" found below, and read
   the services.conf sections for further information.



**** SOURCE COMPILE INSTALLATION *****

      Installing the source version is not much more different
   than the binary versions. The only difference is, you need
   to compile the source into your own binary. There should
   be very little problems with proceeding to do this.
   If you encounter problems, and you're not an expert
   on the operating system, look into downloading a
   pre-compiled binary version.

      One advantage of compiling yourself is that
   you are able to edit basic strings services
   use. You may even add colour strings, however
   this is not recommended. These strings may
   be found, and modified in messages.h
   Keep in mind, unless you know what you are
   doing, do NOT edit this file. It is quite
   similar to ircd's s_err.c file.

      Also, if you want to change the maximum limits for your
   Services Opers/Admins/Roots,etc, you may find those limits
   in config.h. (Defaults are 32 each).
   

      I have made compiling as simple as it can get.
   Firstly, change into the directory you uncompressed
   the source files into, then type:
  
     ./configure

   Lastly, all you need to do, is type "./Install" and after a
   few moments, you will have a newly created "services"
   executable. 

   Now, all you need to do is follow the instructions
   below, and the services.conf sections.



***** RUNNING INSTRUCTIONS *****


     Now, ensure that the directory data/logs exists.
  DataBase files will be saved in the "data" sub-directory.
  Log files will be stored in the "logs" data-sub-directory.
  For Example, if you uncompressed SirvNET Services into:
  /usr/home/mydir/sirv/services
  You would want to make sure /usr/home/mydir/sirv/services/data/logs
  exists.  Yes, I could have made this automatically create, but
  this way I know you read the documentation :-)

     SirvNET Services needs vital information that it looks
  for in the services.conf file. Make sure you read
  those sections, or you will run into errors or
  configuration options you do not want, or can't
  support.
 
   The binary currently has 2 parameter options:

      -nofork = do not send it to the background
      -readonly = no registration/db updates

   IE: ./services -readonly -nofork

  Also, MAKE SURE *ALL* your servers have a U:line for
  services, or else chaos will break out.


3) (-- services.conf --)

     You have read this far, don't let this scare you away.
  If you follow this section closly, you should have no problems.
  The purpose of the serices.conf file is so SirvNET Services can
  be configured for your network's needs.  The following
  sub-sections go into detail about each setting.  You firstly
  should understand the difference between "lines" and
  "options".  These are in no way a golden rule for all
  software, just a SirvNET Services rule.

     A services.conf "line" is much like an ircd.conf line.
  For Example:   "P:6667" is a services.conf configuration
  line to set the connection port to 6667.

     A services.conf "option" is almost identical to a "line".
  For Example:   "NICKSERV:NickServ" is a services.conf
  configuration option.

     What is the difference, you ask?.  A "line" only has one
  character to the left of the ":".  Every configuration "line"
  is manadatory to exist or services will not run.  An "option"
  always has more than one character to the left of the ":",
  and every option is not mandatory.  By setting an "option"
  will change the default settings.  The default settings are
  found below with the explaination of each setting.

     In addition, any line starting with a "#" will be
  omitted and considered a comment line. The only rule to
  this is, there must be a space between the the # and the
  comment.  IE: #My Config - is illegal.  # MY Config - legal.

     Also, No particular order is necessary of the "lines" or
  the "options".  Each "line" or "option" must be on a new line,
  and must start at the very first space.  By keeping these rules
  in mind, proceed to the next sections.

--Note: These options are in no means the "recommended"
        settings. Larger networks may have very different
        settings than smaller networks.  It is the
        responsibility of the services master to keep
        services running efficiently.


3.1) (-- services.conf lines --)


CONNECTION INFORMATION LINE - (C: LINE)

  * Syntax - C:<services name>:<remote password>:<remote server>:<port>

     The "services name" is what you wish the services server to be called.
  "Remote password" is the connection password you will share with the
  server that services will be connected to. This is the same password
  you place in your C/N lines in ircd.conf.
  "Remote server" is the IP or dns pointer of the server that services
  connect to. And Lastly, "port" will be the socket port services will
  use to connect to the server.

  ***   This command replaces the old N/S/X/P lines that were used prior
  ***   to version 2.0.0. The old lines are still accepted for older
  ***   configuration files, however using the C: line is encouraged.



  Examples:
            C:Services.sirv.net:greEn01:irc.myserver.com:7325
            C:Services.sirv.net:greEn01:200.100.200.50:6667


DESCRIPTION LINE - (D: LINE)

  * Syntax - D:DESCRIPTION

     The description line is similar the the ircd.conf m:line.
  This contains the description of the server.  This is the only
  line that may contain spaces.

 Example:
         D:My Network's Services Database


USER LINE - (U: LINE)

  * Syntax - U:USER

     The user line is the ident field each pseudo services client
  will use. --> USER@mynet.net.

 Example: (will show service@whatever.net)
     
           U:service


HOST LINE - (H: LINE)

  * Syntax - H:HOST

    The host field is the same as the U:LINE but is the host field
  for the pseudo clients. --> service@HOST.net.

 Example: (will show whatever@GreenNet.org)

           H:GreenNet.org


NETWORK NAME LINE - (A: LINE)

  * Syntax - A:NAME

    The A:line is used to defining the Network Name.  Do NOT confuse this
  with the H:line.  For Example, people connect to GreenNet.org, but
  the network name is GreenNet.

 Example:
         A:GreenNet


SERVICES MASTER LINE - (M: LINE)

  * Syntax - M:nick

     The M:line should be a nick of a competent person, most likely
  the network's CEO or founder.  This is the nick that needs to be
  registered to add the first people to operserv access lists.

  Example:
           M:Priority1


3.2) (-- services.conf options --)


NICKSERV:name  (or NS:name)

* Name of NickServ. Default: NickServ


CHANSERV:name (or CS:name)

* Name of ChanServ. Default: ChanServ


MEMOSERV:name (or MS:name)

* Name of MemoServ. Default: MemoServ


HELPSERV:name (or HS:name)

* Name of HelpServ. Default: HelpServ


OPERSERV:name (or OS:name)

* Name of OperServ. Default: OperServ


ROOTSERV:name (or RS:name)

* Name of RootServ. Default: RootServ

GLOBAL:name

* Name of the Global Noticer. Default: Global


HELP:dir

* Name of the help files sub-directory (in Data/). Default: helpfiles


UPDATE:secs

* The number of seconds between DataBase update/expires.
  Default: 1800 (30 Minutes)


TIMEOUT:secs

* Number of seconds between routine checking.  This may need to be
  adjusted for optimal performance.  Slower systems should set this
  around 5 or 6.  Quicker systems could handle even down to 1 or 2
  seconds.  If you are daring, possibly 0, but your CPU will
  really have a work-out. Default: 2
  

PW_LIMIT:num

* Number of invalid nick/channel passwords until services
  kills the user. 0 disables this. Default: 5


PW_TIMEOUT:num

* Number of seconds before services decides to forget about
  the previous password attempts. Default: 3600 (1 hour)
  

MEMOMAX:num

* Number of memos permitted per nick. Default: 50


MEMO_WAIT:num

* Number of seconds that must elapse between sending memos. Default: 5


NICKEXP:num

* Number of days until nicks expire. Default: 30


CHANEXP:num

* Number of days until channels expire. Default: 30


MEMOEXP:num

* Number of days until memos expire. Default: 30


JUPES:num

* Maximum permitted "jupitered" servers. Default: 12; 0 Disables


TRIGGERS:num

* Maximum permitted triggers. Default: 128; 0 Disables


AKILLEXP:num

* Default AKILL expiry time in seconds. Default: 86400 (1 day)


IGNEXP:num

* Default Ignore expiry time in seconds. Default: 86400 (1 day)


CLONES:num

* The number of clients found from a host before warning about clones.
  Default: 5


CLONE_WARN:num

* The number of seconds between consecutive clone warnings from the
  same host. Default: 10
--Note: It will not keep warning unless more clones are loaded.


MEMO_LEN:num

* Maximum characters permitted in a memo. Default: 255


LOGS:num

* Enable or Disable sending log files via email.
  1 = Enable, 0 = Disable.  Default: 1
--Note: Even when disabled, services will still dump
        daily logs into the data/logs directory.

C_ACC_MAX:num

* Maximum permitted enteries per channel access list.
  Access list = AVOICE+AOP+SOP+CFOUNDER as a sum.
  Default: 900; 0 Disables

U_ACC_MAX:num

* Maximum permitted mask enteries per nick access list.
  Default: 20; 0 Disables


R_MODES:num

* Enable +r cmode and umodes.  DreamForge IRCD permits +r
  settings to be set via services.  The umode +r will
  append a "<nick> is a registered nick" to the whois.
  A channel set +r means the channel is registered.
  Channel umode +R means only registered nicks may
  join.  Enable = 1; Disable = 0; Default = 1
  *Note: With this option enabled, services will
         not set channels +R. User definable

UMODE_a:num

* Enable Services +a umode flag. With this setting
  enabled, any services admin identifying to their
  nick will have services set umode +a.  This is
  yet another DreamForge option.  This option
  also allows services admins to use /samode.
  Enable = 1; Disable = 0; Default = 1


QLINES:num

* Maximum permitted Services q:lines. These are
  viewed via /stats q, not /stats Q.
  Default = 64; 0 Disables

GLINES:num

* Maximum permitted Services g:lines.
  These can be viewed via /stats g.
  Only for Bahamut 1.4.7 or later only.
  Glines are used to qurantine the "real name" fields.
  Default = 64; 0 Disables


ZLINES:num

* Maximum permitted Services global z:lines.
  Default: 128, 0 Disables

EMAIL:num

* Allow users to have their memos sent via email.
  Also allows services to use nick registration
  authorization, and nick/chan expiry warning emails.
  Sendmail must be working on the computer services
  are running from.
  This command is highly recommeneded to be enabled.
  Default = 1; 0 Disables


REGEMAIL:num


* This enables nickserv to ask for a nick email
  during registration. By providing an e-mail at
  registration time, a user takes an extra step
  in securing their nick. Once a reg-email is
  set, an oper can always SENDPASS (not getpass)
  a nick, and their pass will be sent to their
  original e-mail. THIS IS NOT THE SAME AS
  NS SET EMAIL!. reg-email is perfectly secret
  and impossible to be retreived for privacy
  reasons. If this option is disabled, so will
  the sendpass options.


RESET:num
TLEV:num

* TLEV and RESET are flood level configurations.
  TLEV is the amount of messages allowed until
  a flood level (flev) is reached. After 4,
  the user is killed for flooding services.
  RESET is the amount of time before services
  resets the TLEV value.
  Clarification Example:
  If RESET was set to 8, and TLEV to 20,
  a user would have to message services
  20 times without a 8 second break
  within those commands. Each flood
  level (FLEV) that is reached, a
  different action is taken.
  FLEV 1 - Grace Level
  FLEV 2 - Warns user, globops network
  FLEV 3 - Warns user, globops network again with "SEVERELY" message
  FLEV 4 - User is killed.
  Once an FLEV level has been reached, it is not reset until
  the user goes offline. Only the TLEV and RESET levels reset
  after time. These levels may be seen via OS UINFO <nick>.
  TLEV default = 10; RESET default = 15


TAG:num

* Option to have taglines on each configuration write.
  Default: 0; Enable = 1


USE_ABUSE:num

* If you wish to have AbuseServ functional, set this
  value to 1. AbuseServ's primary function is for
  an Abuse Team (AT LIST) to control abusive opers
  if it ever occured. At some point on every network,
  someone will get out of hand, and AbuseServ can
  deny them access until it can be sorted out.
  This is in so many words, a services for opers
  you do not feel trustworthy. This service is
  generally not recommended, and has not been
  tested thoroughly. It was mostly coded by
  someone else, and I've just left it in the
  package.
  Default: 0; Enable = 1
  

SNOOPCHAN:#chan

* Changes default #Snoop channel.


RELEASE:num

* Ammount of seconds to automatically release an enforced nick.
  Default: 30

CUSTOM:num

*    If you wish to have your own notice when any client
  connects, enable this, and edit "messages.h" where it
  says "CUSTOM_WELCOME". You must recompile in order for
  it to take effect. 1 = Enable, 0 = Disable; Default: 0


GENERIC:num
 
*   If you want to keep the generic welcome notice each
    unregistered nick receives on connection, enable this.
    1 = Enable, 0 = Disable; Default: 1


AKILL_REASON:num

*   When enabled, users will be /kill'ed off the network with
    the specified AKILL reason the operator gave. When disabled,
    the generic AKILL message will be given. (Found in messages.h)
    1 = Enable, 0 = Disable. Default: 1  


EXTRA_SNOOP:num

*   This option is not limited entirely to snoop, but also log files.
    When enabled, extra information will be logged, and if snoop
    is enabled, sent to the snoop channel. On larger networks,
    it may be wise to disable this to save on disk space for logs
    and avoid being flooded in the snoop channel. Only non-essential
    information will be stripped, ie: valid identifies, etc.
    1 = Enable, 0 = Disable. Default: 1


CHANREG:num

*   Maximum channels permitted to be registered per user.
    Default: 20, 0 = Disable


AKICK_REASON:message

* Default AKICK reason.
  EX -> AKICK_REASON:You have been akicked from this channel by the operators.
  Default:User has been banned off the channel


AKICK:num

* Maximum amount of auto-kick's for a channel.
  Default: 100, 0 = Disable


SUSPEND:num

* Maximum channel suspensions services will keep.
  Default: 256


REG_SAVES:num

* Number of registrations until services will
  automatically update the databases, regardless
  of next scheduled event. Valid for nicks & channels.
  0 = Disables, 1 = Enables; Default: 0


DISPLAY_UPDATES:num

* Enable displaying routine database expire & save
  global notices.
  Default: 1, Disable = 0


CHANNEL_INHABIT:num

* Defines how long, in seconds, ChanServ should retain in
  a channel after a masskick or suspension.
  Default: 15


UPTIME:num

* This allows services to display the uptime in the MOTD.
  Enable: 1, Disable: 0; Default: 1


MOTD_UPDATE:num

* This allows services to display the time time until the next
  database update in the MOTD.
  Enable: 1, Disable: 0; Default: 1


TOPICFIX:num

* TOPICFIX is a feature that probably will only need to be
  used on DreamForge or other ircd's similar to it.
  Bahamut should never require this. This option will prevent
  services from adding duplicate nicks to the topic.
  Enable: 1, Disable: 0; Default: 0


MLOCK:+modes-modes

* This setting controls the default mlock modes upon registration
  of a channel. Valid modes are tnimspcR. If additional characters
  are added to the value, services will ignore them and only
  use the valid modes given in the conf.
  IE: +tny-di   - services will set +tn-i and ignore the +y-d modes
  If MLOCK is not specified, +tn is used.
  Default: +tn, Disable: +


PERCENT:num

* This setting defines the maximum effected akill users permitted until
  services prevents the akill from being placed.
  ie: You don't wany any more than 75% of your network akilled for
      security reasons. Set this value to "75" and any akill set
      that would effect 75% or more of the network, will be disallowed,
      and a global warning will be sent to all operators.
  Note: Decimals are permitted. 
    ie:  78.21 - who knows why you'd want that exact percentage =)

  Default: 50, Disable: 101

BACKUP:num

*  This feature will allow services to create a duplicate
   back-up database after <num> database updates.
   The backup database will be stored in data/backup.
   Default: 10; 0 Disables

REMIND:num

*  REMIND will send an email to a nick if his/her nick/chan
   is about to expire. EMAIL must be turned on, and the nick
   must have a valid email set. num is the value in days before
   services sends an email warning the nick/chan will expire.
   Default: 3; 0 Disables


SENDMAIL:<path>

* Path to your system's sendmail.
  Default: /usr/sbin/sendmail


RETURN:<return@email.com>

* The return email services gives with each email sent.
  Common replies are those such as admin@mynet.com 
  or service@mynet.com
  Default: sirv@localhost


NOHOST:num

* When enabled, the NS SET NOHOST command will be available
  to all users. When SET NOHOST is turned on, the user's
  host will not be displayed in NS INFO requests.
  Enable: 1, Disable: 0; Default: 0


LIST:num

* Enables/Disables the use of the NickServ/ChanServ LIST command.
  Note: Opers can still use this command regardless
  1 = Enable, 0 = Disable; Default: 1


XAUTH:num

* Strictly enforces nick authorization. When enabled, unauthorized
  nicks will not be permitted to use the NS SET commands or
  register any channel.
  NOTE: REGEMAIL must be enabled for this to take effect
  1 = Enable, 0 = Disable; Default: 0


XAUTHACC:num

* Another additional nick authorization enforcement which prevents
  unauthorized nicks to be added to any channel access list
  (for the exception of the akick list) [IE: AVOICE/AOP/SOP/CF lists]
  NOTE: REGEMAIL must be enabled for this to take effect
  1 = Enable, 0 = Disable; Default: 0


AUTODEL:num

* If you have REGEMAIL enabled, this option will automatically
  expire unauthorized nicks after <num> days.
  If you do NOT have XAUTH enabled, any of the channels the nick
  has registered will also be dropped.
  Disable = 0; Default: 0


REMOVE:num

* Allows users to remove their nicks from channel access lists.
  1 = Enable, 0 = Disable; Default: 1


DEBUG:num

* Dump debug information in debug.log
  1 = Enable, 0 = Disable; Default: 0


CLONEKILL:num

* Set this target number as the number of clones detected until
  services will akill the host. I do NOT recommened using this
  option for multiple reasons. The largest reason is because
  not all clone warnings are true clones!. Some are legitimate
  users on Shared IP's at schools and internet cafes.
  If you are running a small network, this is probably not the
  case and this feature will be of some use.
  However, larger networks: USE THIS WITH CARE!
  A triggered host will NEVER be automaticalled akilled,
  regardless of the setting. However, clones from a triggered
  host will still warn the network like usual.
  If you must use this option, set the target high!
  I recommend atleast 30 or higher..
  NOTE: Keep this number higher than the CLONES:<num> option
        or it will not work!.
        ie:   CLONES:5        (warns the network at 5 possible clones)
              CLONEKILL:30    (akills the host at 30 possible clones)
  Default: 0 - Disabled


CLONETIME:time

* Set this to how long you want the automated clone akill
  to be. This works like OPERSERV AKILL TIME.
  ie: 30 minutes would be - 30m
      2 hours would be - 2h
      1 day would be - 1d or 24h
  Default: 30m


HTML:<num>

* When enabled, services will dump HTML files into the
  data/html directory. This is an option in early development
  that will prove more flexible in the future.
  1 = Enable, 0 = Disable; Default: 0

INDEX:name.html

* HTML file name of the index to hold all the hyperlinked
  logfiles.
  Default: index.html


DATACHANGE:num

* This will display the "Next Database update in xxx<time>xxx"
  notice whenever a user changes information that needs to
  be saved.
  Enable = 1, Disable = 0; Default: 1


GETPASS:num

* Toggle to disable GETPASS. For those who wish to have
  a more secure network, disable GETPASS and only use
  sendpass. In order to use sendpass, REGEEMAIL must be
  enabled. Enable = 1, Disable = 0; Default: 1


CHANLISTS:num

* Toggle to disable NS LISTCHANS. When enabled, users may
  use this command to list all the channels they have access
  to. However, this command is considered quite resource
  intensive, especially for larger networks - and could be
  abused by users to attempt to lag services.
  Enable = 1, Disable = 0; Default: 1
   

ENFORCE:num

* Toggle to set nickserv enforcement by default at register
  time. (/nickserv set enforce on)
  Enable = 1, Disable = 0; Default: 0


3.3) (-- services.conf auto settings --)

SET_FLOOD:num

* Allow flood levels. These are used to warn the network
  of abusive users that are flooding. Services will first
  warn via globops, and notice the user, then warn if
  the user is severely flooding services.  Further abuse
  results in the user being killed. Default = 1; 0 Disables


SET_IGNORE:num

* Allow ignore code to be used. When enabled, services
  admins will be able to make use of the OS IGNORE
  command to have services ignore all commands from
  a nick!user@host.
  Default = 1; 0 Disables


SET_RO:num

* Have services set Read Only mode. Any commands
  that may effect databases will not be permitted.
  Default: 0; 1 Enables; 0 Disables;


SET_CLONES:num

* With this enabled, services will use clone detection.
  Default: 1; 0 Disables


SET_RN:num

* This setting enables "Real Name Catching". Services
  will match /whois realnames against an internal list
  provided.  Whois' which contain words such as "*admin*"
  or "irc*op*" will be triggered and globoped with a
  warning.
  Default: 1; 0 Disables
  

SET_SNOOP:num

* Snoop is a large security risk if not set up correctly.
  When enabled, this feature will send filtered logs to
  the channel #Snoop.  These logs contain OperServ commands,
  along with failed/successful identifies, nick/chan
  registration and drops, etc.  If this option is enabled,
  I highly suggest having #Snoop set to a level such
  as Services Roots Only, however this is up to you.
  To set the security of the channel, look into
  /msg chanserv LEVEL.
  Default: 0; 1 Enables


AUTO_HIDE:num

* This command ties in with the use of NOHOST.
  If AUTO_HIDE is enabled, the user's host will
  automatically not be displayed in NS INFO.
  If AUTO_HIDE is enabled, and NOHOST is
  disabled, the user's host under no
  circumstances will be displayed in NS INFO.
  Enable: 1, Disable: 0; Default 0



4) (-- OPER.CONF --)

     There is now a way to configure each of the services oper
  command permissions. In English? - Well, this means if you
  want GETPASS to only be available to SRA and not SA, you can
  modify it. Each network has its own needs, and I have gone
  the extra mile to make SirvNET Services even that little more
  configurable. Creating an oper.conf file is completely
  optional, and even if you decide to make one, each command
  is optional. If you only want to change one command permission,
  then thats all you have to state in the oper.conf. Also,
  services will automatically update the help files of your
  configuration. The same rules apply for oper.conf that does
  for services.conf.


  The settings for each option can be either 0, 1, 2, 3, or 4.

         0 == OPER
         1 == Services Operator (SOP)
         2 == Services Adminstrator (SA)
         3 == Services Root (SRA)
         4 == Services Master.

  There is one thing to note:
    *  Any commands you want to change with RootServ may only
       be changed to root (3) or Master (4).
       ie: SRAW may only be toggled between setting 3 or 4.
           SRAW can't be level 0-2.
        This is because only SRA+ access may use RootServ.


  *** LIST OF OPTIONS ARE:

         FORBID                     INFO   (MemoServ Info)
         GETPASS                    LIMIT
         HOLD                       GLOBAL (MemoServ Global Memo)
         MARK                       TRIGGER
         SENDPASS                   UINFO
         DELETE                     AKILL
         FREEZE                     CLEAR
         LEVEL                      IGNORE
         SUSPEND                    HOP
         TOPIC                      SOP
         WIPE                       SA
         JUPE                       SRA
         SENDLOGS                   SQLINE
         UPDATE                     ZLINE
         CHANSNOOP                  FLOODRESET
         INJECT                     SET
         SRAW                       SEARCH
         OSEND                      SGLINE


Examples:  (in oper.conf)

  SOP:2         (Services Admins+ can add services operators)
  JUPE:3        (Services Roots+ can only add jupes)
  TRIGGER:0     (Any IRC Operator can use OS TRIGGER)
  MARK:1        (Services Operators+ can mark nicks and chans)
  SET:5         (ILLEGAL! can only be 0-4)
  SET:4         (Correct! Only Services Master can use RS SET)
  INJECT:2      (ILLEGAL! inject is a RS command, can only be 3-4)
  INJECT:3      (Correct! Roots and Master can now use INJECT)


5) (-- E-MAIL SIGNATURE --)

    SirvNET Services now allow you to create your own signature
  file that will be appended to each e-mail services sends.
  The file can be located in the services root directory
  under the name "services.sig". If you delete this file
  then no signature will be displayed.


5.1) (-- AUTHORIZATION E-MAIL CUSTOMIZATION --)

     Editing "auth.email" in the services root directory
  (same dir services.conf is in) will append that
  text into the registration e-mail sent to the user.
  The Default breifly states to log back onto your network
  and type command with auth code. This will still be
  displayed with the addition of the file.
  Editing the auth.email file is the same as the services.sig
  file.


6) (-- NEWS UPDATES --)

     Services has the added feature of a NEWS function.
   This works quite simply, and as follows:

       i) Create a file called "news" in data/helpfiles/
      ii) When logging in, user will see a news update notice
     iii) User can retreive news via /msg memoserv news
      iv) once news has been read, services will no longer notify user
       v) When the news file is changed, user will be notified again


7) (-- HELP FILES --)

     All services help files (exception of OHELP) may be
  modified.  The default helpfile directory is found in
  <services-dir>/data/helpfiles
  This directory may be changed in the services.conf
  (see above).  Each service has its own help file
  directory.  Each help file is a simple text file
  that services calls when requested.  In addition,
  creating the file "hello" in the "memoserv"
  directory will be shown if a user types:
  "/msg memoserv help hello".

     Feel free to modify any of these files to
  suit your networks specifications.  HelpServ
  may be the most ideal to modify.  You may wish
  to create your own list of help commands to
  be related to services, IRC, or client support.

  IMPORTANT NOTE:
    If you change the services pseudo client names
    (ie: you changed the name of NickServ to NameServ)
    you MUST also rename the helpfiles directory for
    that service. In this case, I must rename
    data/helpfiles/nickserv to data/helpfiles/nameserv.
    This only applies to nickserv/chanserv/memoserv.
    If you do not do this, helpfiles will not be
    displayed.



8) (-- HTML DUMPING --)

   This is an early development project which will increase in
  flexibility in the future. As of right now, if HTML is enabled,
  services will create an HTML file daily with log enteries such
  as registrations, drops, invalid identifies, etc.
  It will copy the day's log file into the html directory,
  and update index.html to include the log file in the index
  list. This will be done each night at 12 midnight.

  The HTML directory may be found under data/html (just like data/logs).
  index.html has the tree of all the services logs. All the other files
  will be logs, identified by the file name (which will be a date,
  such as: Nov_5). You can then easily copy these files to a webserver
  for you and your staff to lookup logs. I HIGHLY suggest finding
  some kind of secure website password protection for this.
  
  For more information, see the HTML: and INDEX: config options.

  In the future, I plan on creating a sirv's own website server
  to host the log files upon.


9) (-- RUNNING FOR FIRST TIME --)

   When you run services for the firs time, the following
  list is suggested to be followed:

    i)   Register the nick you set as the M:line nick in services.conf.
         Without this nick being registered, no nicks may be entered
         into the OperServ access list.

   ii)   Add yourself (M:line nick) to the SRA list. This is not
         mandatory, but for completeness (and a little showing off :-)
         Do this via: /msg RootServ SRA add <nick>.

  iii)   At this point, you should see yourself as a SRA [Master] in
         the OperServ admin list: /msg OperServ listadm
         You may now add further staff to the SRA/SA/SOP OperServ lists.
         Additional SRA nicks have the same privledges as the M:line nick.

   iv)   You may now wish to secure the channel #Snoop, if enabled.
         Join #Snoop and register it via:
         /msg ChanServ register #Snoop <pass> <desc>
         Then, it is up to you to set this channel restricted,
         or a LEVEL.  I recommend setting the channel SRA ONLY:
         /msg ChanServ LEVEL #Snoop SRA
         I also recommend keeping this channel secret or/and
         invite only.  You may do this my setting the mlocks
         to +si.

    v)   Everything is now secure.  You may now enjoy what
         SirvNET Services provide.  All online help may be found
         via /msg <service> help. For Oper help,
         /msg <service> ohelp. Enjoy!



10) (-- SUPPORT --)

     First of all, do NOT email me with problems until you are
  absolutely positive that it is an error in the services.
  Secondly, I am not earning any profit from this.  Therefore,
  I don't mean to sound rude, but I have no obligation in
  giving support.  That does not mean I won't, if you're
  polite, chances are I'll be more than willing.  I wrote
  out this whole documentation, didn't I? ;-)

     Secondly, if its not a "MUST FIX" problem, then
  be patient and chances are it will be corrected in the
  next version.  My Beta testers weren't just picked to
  look pretty.  If You have found bugs, and its still not
  corrected, then feel free to email the problems to me,
  or one of the members of the Beta team.

  The following Sections will contain information
  on receiving support.

** It may be possible to find me online DALnet,
   under the nick, Priority1 or Talinon.

11) (-- Installation FAQ --)


    Q: When I type "make clean", it says it can't find a rule
       for Makefile.inc. What is Makefile.inc?

    A: The Makefile searches for Makefile.inc which is generated
       by the configure script. Assuming that you need to perform
       a cleaning action, these files should already be generated.
       Reasons: 1) Makefile.inc got deleted somehow, or
                2) You havn't installed yet.
       Either way, just type ./configure, then run "make clean"
       again and it will work.


    Q: When I compile and run services, they connect, but no
       services clients appear on the network. What gives?

    A: You are most likely running Bahamut IRCd, but do not
       have services running with Bahamut support.
       Run the "configure" script again, and chose option 2
       for Bahamut. Re-compile and run services.


    Q: When link services to the network, the services
       clients have no "real name" field.
       
    A: This is reverse to the previous question. You are
       running services with bahamut support when you are
       not using a Bahamut IRCd. Run "configure" and chose
       option 1. Then Re-compile and run services again.


    Q: When I run the services binary, they seem to start
       up, but they do not connect to my server, and they
       do not show up in a process list (ie: ps x).

    A: Services will first try to attempt to initiate a
       socket connection to your IRC server. If this fails,
       services will automatically terminate. There are many
       different reasons for this to occur. The most likely
       reason is you have mis-configured services somewhere.
       Firstly, make sure you have given the correct ip/host
       in the services configuration. Secondly, make sure the
       port you are using to connect is free on the machine.
       If this still doesn't work, try using only the numeric
       IP in the S: line, instead of a hostmask. Possibly your
       system is having resolving problems. Lastly, as a final
       troubleshoot, oper on your server, then try to run
       services again. Possibly services are trying to attempt
       to connect, and you can see the attempt notice on IRC.
       Maybe there is a c/n password conflict, etc.

    Q: Okay, services run, but it seems almost everytime someone
       changes their nick, we experience a nick collide. What
       could be causing this?

    A: This was a bug that took me quite some time to track down.
       This is a bug in the early releases of bahamut IRCd.
       If umode +r is set, and a client changes their nick,
       a nick collide will occur. You have 2 choices to correct
       this. #1) Upgrade your bahamut IRCd, or #2) as a quick fix,
       disable or set R_MODES to "2" in the services.conf.
       Setting of 2 only uses cmode +r.


    Q: When I tried to rehash, services timed out and left the
       network. Why?

    A: This is because you added something illegal to the
       services.conf file. If services crash when you
       rehash, try loading them manually, they will tell
       you exactly what is wrong in the shell, and log it.
       Fix the conf line, and re-load services. Be more
       careful next time you edit the conf! =)


    Q: Everything seems to be running, but, when I msg
       services with "help" it says "no help available"
       (or something similar), wtf?


    A: There are two possible solutions for this common
       error. First, check to see if you have a help-file
       directory under the data/ subdirectory (should be
       "data/helpfiles" by default). Secondly, if you
       defined HELP: in the services.conf, make sure its
       the same directory name as it is under the data/
       subdirectory. Keep in mind, if you do not specify
       HELP: in the conf, it will use data/helpfiles by
       default. If you do not have a help directory
       under data/ then you didn't uncompress the
       archive correctly. Re-uncompress and try again.

    Q: For some reason, chanserv never deops me, even
       when I'm not in the channel access list.
       
    A: Most likely you have SRA+ access. With this
       level, chanserv will not de-op you for most
       things.


12) (-- DOCUMENTATIONS --)

     First of all.  This is called a documentation, use it.
  There are also sample files included in your package, read
  them.  On the website there may be a FAQ created or general
  help files (not promising this).


13.1) (-- BETA TESTERS --)

     I encourage you to rather email one of the members of
  my Beta team rather than myself.  I am quite a busy person,
  and my team are fully competent to receive email and answer
  questions.  If you have found bug fixes, I still encourage
  you to send them to my team.  If its something relevant,
  it will be passed onto me.

    The following members are the Beta testers:

               John Smith:  john@sirv.net
           Greg Robertson:  robertsog@hotmail.com

  If you find it absolutely necessary to email me: priority1@dal.net


13.2) (-- Web/FTP Sites --)

  The Official WebSite may be found at: http://www.sirv.net
  All updates, mirrors, additional ftp sites, etc, are listed there.

  View the website for a list of FTP sites that carry this product.
  SirvNET Services is copyright(c) 1998-1999 Trevor Klingbeil.




  SirvNET Services documentation.   Revision 1.3   By Trevor Klingbeil
