# Configuration file of TWiki Collaboration Platform, http://TWiki.org/
#
# Copyright (C) 1999-2006 Peter Thoeny, peter@thoeny.org
# and TWiki Contributors. All Rights Reserved. TWiki Contributors
# are listed in the AUTHORS file in the root of this distribution.
# NOTE: Please extend that file, not this notice.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version. For
# more details read LICENSE in the root of this distribution.
#
# As per the GPL, removal of this notice is prohibited.
#
# This configuration file is held in 'twiki/lib' directory. You can edit
# this file directly to set your configuration, but it's much MUCH better
# to leave this file untouched and create a new file called "LocalSite.cfg"
# That way, there is no risk of your local settings being overwritten when
# you upgrade.
#
# See 'setlib.cfg' in 'bin' directory to configure non-standard location
# for 'lib' directory or Perl modules.
#
# Note that the comments in this file are formatted specifically so
# that the 'configure' script can extract documentation from here.
# You are *strongly* advised not to edit this file!
#
# You can alter the most recent revision of a topic using 
# /edit/web/topic?cmd=repRev
#    * use only as a last resort, as history is altered
#    * you must be in TWikiAdminGroup
#    * you will be presented with normal edit box, but this will also
#      include meta information, modify this with extreme care
#
# You can delete the most recent revision of a topic using
# /edit/web/topic?cmd=delRev
#    * use only as a last resort, as history is lost
#    * you must be in TWikiAdminGroup
#    * fill in some dummy text in the edit box
#    * ignore preview output
#    * when you press save, last revision will be deleted
#
# ======================================================================
# This page is used to set up the configuration options for TWiki. Certain of
# the settings are required; these are marked with a
# <font color="red">*</font>. Fill in the settings, and then select 'Update'.
# The settings will be updated and you will be returned to this page. Any
# errors in your configuration will be <font color="red">highlighted</font>
# below.
# <p />
# If you are installing TWiki for the first time, and you are on a
# Unix or Linux platform and behind a firewall, the only section you
# should need to worry about below is "General path settings".
# <p />
# If you are on a public site, you will need to consider carefully
# how you are going to manage authentication and access control.
# <p />
# There are a number of documentation topics describing how to
# configure TWiki for different platforms, and a lot of support
# available at TWiki.org. The configuration settings currently in
# use can be managed using the 'configure' script.
#
# If your TWiki site is working, the front page should be
# <a href="$TWiki::cfg{ScriptUrlPath}/view$TWiki::cfg{ScriptSuffix}">right here</a>

# Set some default values for use within expressions in this file.
# It is important *not* to refer to $cfg{...} in values in this file
# (or in LocalSite.cfg) because of the chicken-and-egg problem created
# when those values are not defined.
my $defaultUrlHost = $cfg{DefaultUrlHost} || '';
my $dataDir = $cfg{DataDir} || '';
my $pubDir = $cfg{PubDir} || '';
my $logDir = $cfg{LogDir} || $dataDir;
my $OS = $cfg{OS} || '';
# Note that the general path settings are deliberately commented out.
# This is because they *must* be defined in LocalSite.cfg, and *not* here.

#---+ General path settings
# If you are a first-time installer; once you have set up the next
# six paths below, your TWiki should work - try it. You can always come
# back and tweak other settings later.<p />
# <b>Security Note:</b> Only the URL paths listed below should
# be browseable from the web. If you expose any other directories (such as
# lib or templates) you are opening up routes for possible hacking attempts.

# **URL M**
#  This is the root of all TWiki URLs e.g. http://myhost.com:123.
# $cfg{DefaultUrlHost} = 'http://your.domain.com';

# **PATH M**
# This is the 'cgi-bin' part of URLs used to access the TWiki bin
# directory e.g. /twiki/bin<p />
# See http://twiki.org/cgi-bin/view/TWiki.ShorterURLCookbook for more information on setting up
# TWiki to use shorter script URLs.
# $cfg{ScriptUrlPath} = '/twiki/bin';

# **URLPATH M**
# Attachments URL path e.g. /twiki/pub
# <p /><b>Security Note:</b> files in this directory are *not*
# protected by TWiki access controls. If you require access controls, you
# will have to use webserver controls (e.g. .htaccess on Apache)
# $cfg{PubUrlPath} = '/twiki/pub';

# **PATH M**
# Attachments store (file path, not URL), must match /twiki/pub e.g.
# /usr/local/twiki/pub
# $cfg{PubDir} = '/home/httpd/twiki/pub';

# **PATH M**
# Template directory e.g. /usr/local/twiki/templates
# $cfg{TemplateDir} = '/home/httpd/twiki/templates';

# **PATH M**
# Topic files store (file path, not URL) e.g. /usr/local/twiki/data
# $cfg{DataDir} = '/home/httpd/twiki/data';

# **PATH M**
# Translation files directory (file path, not URL) e.g. /usr/local/twiki/locales
# $cfg{LocalesDir} = '/home/httpd/twiki/po';

# **STRING 10**
# Suffix of TWiki CGI scripts (e.g. .cgi or .pl). You may need to set this
# if your webserver requires an extension.
$cfg{ScriptSuffix} = '';

#---+ Operating system

# **STRING 20**
# {OS} and {DetailedOS} are calculated in the TWiki code. <b>You
# should only need to override if there is something badly wrong with
# those calculations.</b><br />
# {OS} may be one of UNIX WINDOWS VMS DOS MACINTOSH OS2
# $cfg{OS} =
# **STRING 20**
# The value of Perl $OS
# $cfg{DetailedOS} =

#---+ Security setup

$cfg{Password} = '';

#---++ Sessions

# **BOOLEAN**
# You can use persistent CGI session tracking even if you are not using login.
# This allows you to have persistent session variables - for example, skins.
# Client sessions are not required for logins to work, but TWiki will not
# be able to remember users unless there is some other mechanism - such as
# browser cacheing of authentication - available.
#
# See TWiki.TWikiUserAuthentication for a full discussion of the pros and
# cons of using persistent sessions.
$cfg{UseClientSessions} = 1;

# **BOOLEAN**
# If you have persistent sessions enabled, then TWiki will use a cookie in
# the browser to store the session ID. If the client has cookies disabled,
# then TWiki will not be able to record the session. As a fallback, TWiki
# can rewrite local URLs to pass the session ID as a parameter to the URL.
# This is a potential security risk, because it increases the chance of a
# session ID being stolen (accidentally or intentionally) by another user.
# If this is turned off, users with cookies disabled will have to
# re-authenticate for every secure page access (unless you are using
# {Sessions}{MapIP2SID}).
$cfg{Sessions}{IDsInURLs} = 0;

# **BOOLEAN**
# It's important to check that the user trying to use a session is the
# same user who originally created the session. TWiki does this by making
# sure, before initializing a previously stored session, that the IP
# address stored in the session matches the IP address of the user asking
# for that session. Turn this off if a client IP address may change during
# the lifetime of a session (unlikely)
$cfg{Sessions}{UseIPMatching} = 1;

# **BOOLEAN**
# For compatibility with older versions, TWiki supports the mapping of the
# clients IP address to a session ID. You can only use this if all
# client IP addresses are known to be unique.
# If this option is enabled, TWiki will <b>not</b> store cookies in the
# browser.
# The mapping is held in the file $cfg{Sessions}{Dir}/ip2sid. If you turn
# this option on, you can safely turn {Sessions}{IDsInURLs} <i>off</i>.
$cfg{Sessions}{MapIP2SID} = 0;

# **STRING 100**
# Absolute file path of the directory in which session files are stored.
# Defaults to /tmp.
# <b>Security Note:</b> The directory must <b>not</b> be
# browseable from the web, otherwise it could be used to mount an attack on
# the server!
$cfg{Sessions}{Dir} = '/tmp';

# **STRING 20**
# Set the session timeout, in seconds. The session will be cleared after this
# amount of time without the session being accessed. The default is 6 hours
# (21600 seconds).<p />
# <b>Note</b>By default, session expiry is done "on the fly" by the same
# processes used to
# serve TWiki requests. As such it imposes a load on the server. When
# there are very large numbers of session files, this load can become
# significant. For best performance, you can set {Sessions}{ExpireAfter}
# to a negative number, which will mean that TWiki won't try to clean
# up expired sessions using CGI processes. Instead you should use a cron
# job to clean up expired sessions. The standard maintenance cron script
# <tt>tools/tick_twiki.pl</tt> includes this function.
$cfg{Sessions}{ExpireAfter} = 21600;

#---++ Authentication
# **SELECT none,TWiki::Client::ApacheLogin,TWiki::Client::TemplateLogin**
# TWiki supports different ways of responding when the user asks to log
# in (or is asked to log in as the result of an access control fault).
# They are:
# <ol><li>
# none - Don't support logging in, all users have access to everything.
# </li><li>
# TWiki::Client::TemplateLogin - Redirect to the login template, which
#   asks for a username and password in a form. Does not cache the ID in
#   the browser, so requires client sessions to work.
# </li><li>
# TWiki::Client::ApacheLogin - Redirect to an '...auth' script for which
#   Apache can be configured to ask for authorization information. Does
#   not require client sessions, but works best with them enabled.
# </li></ol>
$cfg{LoginManager} = 'none';

# **STRING 100**
# Comma-separated list of scripts that require the user to authenticate.
# With TemplateLogin, any time an unauthenticated user attempts to access
# one of these scripts, they will be redirected to the login script. With
# ApacheLogin, they will be redirected to the logon script (note
# login and logon; they are different scripts). This approach means that
# only the logon script needs to be specified as require valid-user when
# using Apache authentication.
# <p/>
# If you want finer access control (e.g. authorised users only in one web
# but open access in another) then you should *clear* this list, and use
# TWiki Permissions to control access. Users wishing to make changes will
# have to log in by clicking a "log in" link instead of being automatically
# redirected when they try to edit.
$cfg{AuthScripts} = 'attach,edit,manage,rename,save,upload,viewauth,rdiffauth';

# **STRING 80**
# Authentication realm. This is normally only used in the login prompt
# screen by the TWiki::Client::TemplateLogin manager.
$cfg{AuthRealm} =
'Enter your TWiki.LoginName. (Typically First name and last name, no space, no dots, capitalized, e.g. !JohnSmith, unless you chose otherwise). Visit TWiki.TWikiRegistration if you do not have one.';

# **STRING 20**
# Guest user's login name (guest)
$cfg{DefaultUserLogin} = 'guest';

# **STRING 20**
# Guest user's wiki name (TWikiGuest)
$cfg{DefaultUserWikiName} = 'TWikiGuest';

# **STRING 20**
# An admin user login is is required by the install script for some addons and 
# plugins, usually to gain write access to the TWiki web. (TWikiAdminGroup)
$cfg{AdminUserWikiName} = 'TWikiAdminGroup';

#---++ Passwords
# **SELECT none,TWiki::Users::HtPasswdUser,TWiki::Users::ApacheHtpasswdUser**
# Name of the password handler implementation. The password handler manages
# the passwords database, and provides password lookup, and optionally
# password change, services. TWiki ships with two alternative implementations:
# <ol><li>
# TWiki::Users::HtPasswdUser - handles 'htpasswd' format files, with
#   passwords encoded as per the HtpasswdEncoding
# </li><li>
# TWiki::Users::ApacheHtpasswdUser - should behave identically to
# HtpasswdUser, but uses the CPAN:Apache::Htpasswd package to interact
# with Apache. It is shipped mainly as a demonstration of how to write
# a new password manager.
# </li></ol>
# You can provide your own alternative by implementing a new subclass of
# TWiki::Users::Password, and pointing {PasswordManager} at it in
# lib/LocalSite.cfg.<p />
# If 'none' is selected, users will not be able to change passwords, and
# will always be authenticated by the TemplateLogin manager, regardless of
# what username or password they enter. This may be useful when you want to
# enable logins so TWiki can identify contributors, but you don't care about
# passwords.
$cfg{PasswordManager} = 'TWiki::Users::HtPasswdUser';

# **PATH**
# Path to the file that stores passwords, for the TWiki::Users::HtPasswdUser
# password manager. You can use the <tt>htpasswd</tt> Apache program to create a new
# password file with the right encoding.
$cfg{Htpasswd}{FileName} = "$dataDir/.htpasswd";

# **SELECT crypt,sha1,md5,plain**
# Password encryption, for the TWiki::Users::HtPasswdUser password manager.
# You can use the <tt>htpasswd</tt> Apache program to create a new
# password file with the right encoding.
# <dl>
# <dt>crypt</dt><dd>is the default, and should be used on Linux/Unix.</dd>
# <dt>sha1</dt><dd> is recommended for use on Windows.</dd>
# <dt>md5</dt><dd> may be useful on sites where password files are required
# to be portable. In this case, the {AuthRealm} is used with the username
# and password to generate the encrypted form of the password, thus:
# <tt>user:{AuthRealm}:password</tt>. Take note of this, because it means that
# if the {AuthRealm} changes, any existing MD5 encoded passwords will be
# invalidated by the change!</dd>
# <dt>plain</dt><dd> stores passwords as plain text (no encryption).</dd>
# </dl>
$cfg{Htpasswd}{Encoding} = 'crypt';

# **BOOLEAN**
# If you want users to be able to use a login ID other than their
# wikiname, you need to turn this on. It controls whether the 'LoginName'
# box appears during the user registration process. If you are using
# intranet authentication instead of TWiki authentication, you probably
# need to turn this on.
$cfg{Register}{AllowLoginName} = $FALSE;

# **BOOLEAN**
# Hide password in registration email to the *user*
# Note that TWiki sends admins a separate confirmation.
$cfg{Register}{HidePasswd} = $FALSE;

# **BOOLEAN**
# Whether registrations must be verified by the user following
# a link sent in an email to the user's registered email address
$cfg{Register}{NeedVerification} = $TRUE;

# **BOOLEAN**
# Map login name to Wiki name via the mapping in the topic named
# in {UsersTopicName}. Set this to $FALSE for .htpasswd
# authenticated sites where the user's wiki name is the
# name they use to log in, or if you have some other way of
# making the mapping to a Wiki name (e.g. a local Plugin).
$cfg{MapUserToWikiName} = $TRUE;

# **STRING 20**
# Group of users that can use special action=repRev and action=delRev
# on =save= and ALWAYS have edit powers. See TWiki.TWikiDocumentation
# for an explanation of twiki groups. This user will also run all the
# standard cron jobs, such as statistics and mail notification.
# <b>Make sure you edit this topic if you enable authentication</b>
$cfg{SuperAdminGroup} = 'TWikiAdminGroup';

# **STRING 20**
# Name of topic in the {UsersWebName} web where registered users
# are listed. Automatically maintained by the standard
# registration scripts. <b>If you change this setting you will have to
# use TWiki to manually rename the existing topic</b>
$cfg{UsersTopicName} = 'TWikiUsers';

# **PATH**
# Path control. If set, overrides the default PATH setting to control
# where TWiki looks for programs. Check notes for your operating
# system. NOTE: it is better to use full pathnames in the paths to
# external programs, rather than relying on this path.
# <ol>
#  <li> Unix or Linux
#   <ul>
#    <li> path separator is :</li>
#    <li> ensure diff and shell (Bourne or bash type) is found on 
#      the path.</li>
#   </ul>
#  </li>
#  <li> Windows ActiveState Perl, with non-Cygwin RCS, OR no
#      PERL5SHELL setting.
#   <ul>
#    <li> path separator is ;</li>
#    <li> The Windows system directory (e.g. c:\winnt\system32) is
#      required in this path.</li>
#    <li> Must NOT use '/' in pathnames as this upsets cmd.exe -
#      single '' is OK using Perl single-quoted string.</li>
#   </ul>
#  </li>
#  <li> Windows: ActiveState Perl, with Cygwin RCS and PERL5SHELL set
#      to 'c:/cygwin/bin/bash.exe -c'
#   <ul>
#    <li> path separator is ;</li>
#    <li> best to avoid 'c:/foo' type paths, because it can cause a
#      Perl 'Insecure directory in $ENV{PATH}' error.
#      The best approach is to convert 'c:/foo' to '/cygdrive/c/foo'
#      - odd looking but it works!  The Windows system directory 
#      (e.g. /cygdrive/c/winnt/system32) is required in this path.
#      For example:
#      /cygdrive/c/YOURCYGWINDIR/bin;/cygdrive/c/YOURWINDOWSDIR/system32</li>
#   </ul>
#  </li>
#  <li> Windows: ActiveState Perl, with non-Cygwin RCS,
#       OR no PERL5SHELL setting.
#   <ul>
#    <li> path separator is ';'</li>
#    <li> The Windows system directory is required in this path.
#       Must NOT use / in directories on the path as this upsets
#       cmd.exe - single '\' is OK using Perl single quoted string.
#       </li>
#   </ul>
#  </li>
# </ol>
$cfg{SafeEnvPath} = '/bin:/usr/bin';

# **BOOLEAN**
# Remove .. from %INCLUDE{filename}%, to stop includes
# of relative paths.
$cfg{DenyDotDotInclude} = $TRUE;

# **BOOLEAN**
# Allow the use of SCRIPT tags in content. if this is set false, all
# SCRIPT sections will be removed from the body of topics. They can still
# be used in the HEAD section, though. Note that this may prevent some
# plugins from functioning correctly.
$cfg{AllowInlineScript} = $TRUE;

# **REGEX**
# Filter-in regex for uploaded (attached) file names (Matching
# filenames will have .txt appended) WARNING: Be sure to update
# this list with any configuration or script filetypes that are
# automatically run by your web server
$cfg{UploadFilter} = qr/^(\.htaccess|.*\.(?i)(?:php[0-9s]?|phtm[l]?|pl|py|cgi))$/;

# **REGEX**
# Filter-in regex for webnames, topic names, usernames, include paths
# and skin names
$cfg{NameFilter} = qr/[\s\*?~^\$@%`"'&;|<>\x00-\x1f]/;

# **BOOLEAN**
# If this is set, the the search module will use more relaxed
# rules governing regular expressions searches.
$cfg{ForceUnsafeRegexes} = $FALSE;

# **BOOLEAN**
# Build the path to /twiki/bin from the URL that was used to get this
# far. This can be useful when rewriting rules or redirection are used
# to shorten URLs. Note that displayed links are incorrect after failed
# authentication if this is set, so unless you really know what you are
# doing, leave it alone.
$cfg{GetScriptUrlFromCgi} = $FALSE;

# **BOOLEAN**
# Remove port number from URL. If set, and a URL is given with a port
# number e.g. http://my.server.com:8080/twiki/bin/view, this will strip
# off the port number before using the url in links.
$cfg{RemovePortNumber}  = $FALSE;

#---+ Anti-spam measures

# Standard TWiki incorporates some simple anti-spam measures to protect
# e-mail addresses and control the activities of benign robots. These
# should be enough to handle intranet requirements. Administrators of
# public (internet) sites are strongly recommended to investigate the
# <a href="http://twiki.org/cgi-bin/view/Plugins/BlackListPlugin">
# BlackListPlugin </a>

# **STRING 50**
# Text added to email addresses to prevent spambots from grabbing
# addresses e.g. set to 'NOSPAM' to get fred@user.co.ru
# rendered as fred@user.co.NOSPAM.ru
$cfg{AntiSpam}{EmailPadding} = '';

# **BOOLEAN**
# By default, a META tag is generated to tell robots not to index pages
# viewed in TWiki. You can ask for this tag to be <b>removed</b> in the event
# that you <b>want</b> topics to be indexed by robots, such as Google. Note
# that only "normal  view" pages can be indexed. If there are <i>any</i>
# parameters to the view, then it can never be indexed. This is to help
# prevent inappropriate pages (like the raw view) from ever being spidered.
$cfg{AntiSpam}{RobotsAreWelcome} = $TRUE;

#---+ Log files

# **BOOLEAN**
# Whether or not to to log different actions in the Access log
# (in order of how frequently they occur in a typical installation).
# Information in the Access log is used in gathering web statistics,
# and is useful as an audit trail of TWiki activity.
$cfg{Log}{view}     = $TRUE; # very frequent, every page view
# **BOOLEAN**
$cfg{Log}{search}   = $TRUE;
# **BOOLEAN**
$cfg{Log}{changes}  = $TRUE; # infrequent if you use WebChanges
# **BOOLEAN**
$cfg{Log}{rdiff}    = $TRUE; # whenever revisions are differenced
# **BOOLEAN**
$cfg{Log}{edit}     = $TRUE; # fairly frequent, every time a page is edited
# **BOOLEAN**
$cfg{Log}{save}     = $TRUE;
# **BOOLEAN**
$cfg{Log}{upload}   = $TRUE; # whenever a new attachment is created
# **BOOLEAN**
$cfg{Log}{attach}   = $TRUE;
# **BOOLEAN**
$cfg{Log}{rename}   = $TRUE; # when a topic or attachment is renamed
# **BOOLEAN**
$cfg{Log}{register} = $TRUE; # rare, when a new user registers

# Names of the various log files. You can use %DATE% (which gets expanded
# to YYYYMM e.g. 200501) in the pathnames to cause the file to be renewed
# every month e.g. /var/log/TWiki/log.%DATE%.
# {LogDir} directory must be writable by the CGI user
# It defaults to the data dir

# **PATH**
# File for configuration messages generated by the configure script.
# (usually very very low volume).
$cfg{ConfigurationLogName} = "$logDir/configurationlog.txt";

# **PATH**
# File for debug messages (usually very low volume). %DATE% gets expanded
# to YYYYMM (year, month), allowing you to rotate logs.
$cfg{DebugFileName} = "$logDir/debug.txt";

# **PATH**
# Warnings - low volume, hopefully! %DATE% gets expanded
# to YYYYMM (year, month), allowing you to rotate logs.
$cfg{WarningFileName} = "$logDir/warn%DATE%.txt";

# **PATH**
# Access log - high volume, depending on what you enabled in {Log} above.
# %DATE% gets expanded to YYYYMM (year, month), allowing you to rotate logs.
$cfg{LogFileName} = "$logDir/log%DATE%.txt";

#---+ Localisation

# <p>
# Configuration items in this section control two things: recognition of
# national (non-ascii) characters and the system locale used by TWiki, which
# influences how programs TWiki and external programa called by it behave
# regarding internationalization.
# </p>
# <p>
# <b>Note:</b> for user interface internationalization, the only settings that
# matter are {UserInterfaceInternationalisation}, which enables user interface
# internationalisation, and {Site}{CharSet}, which controls which charset TWiki
# will use for storing topics and displaying content for the users. As soon as
# {UserInterfaceInternationalisation} is set and the required
# (<code>Locale::Maketext::Lexicon</code> and <code>Encode</code>/MapUTF8 Perl
# modules) are installed (see the <em>CGI Setup</em> section above), the
# multi-language user interface will <em>just</em> work.
# </p>

# **BOOLEAN**
# Enable user interface internationalisation, i.e. presenting the user
# interface in the users own language.
# <p />
# Under {UserInterfaceInternationalisation}, check every language that you want
# your site to support. This setting is only used when
# {UserInterfaceInternationalisation} is enabled. If you disable all languages,
# internationalisation will also be disabled, even if
# {UserInterfaceInternationalisation} is enabled: internationalisation support
# for no languages doesn't make any sense.
# <p />
# Allowing all languages is the best for <em>really</em> international sites.
# But for best performance you should enable only the languages you really
# need. English is the default language, and is always enabled.
$cfg{UserInterfaceInternationalisation} = $FALSE;

# *LANGUAGES* Marker used by bin/configure script - do not remove!
$cfg{Languages}{da}{Enabled} = 1;
$cfg{Languages}{de}{Enabled} = 1;
$cfg{Languages}{es}{Enabled} = 1;
$cfg{Languages}{fr}{Enabled} = 1;
$cfg{Languages}{nl}{Enabled} = 1;
$cfg{Languages}{pt}{Enabled} = 1;
$cfg{Languages}{'zh-cn'}{Enabled} = 1;
$cfg{Languages}{'zh-tw'}{Enabled} = 1;

# **SELECT gmtime,servertime**
# Set the timezone (this only effects the display of times,
# all internal storage is still in GMT). May be gmtime or servertime
$cfg{DisplayTimeValues} = 'gmtime';

# **BOOLEAN**
# Locale - set to enable operating system level locales and
# internationalisation support for 8-bit character sets
$cfg{UseLocale} = $FALSE;

# **STRING 50**
# Site-wide locale - used by TWiki and external programs such as grep, and to
# specify the character set in which content must be presented for the user's
# web browser.
# <br/>
# The language part also prevents English plural handling for non-English
# languages. If the language is not English, TWiki won't try to calculate
# plurals for WikiNames automatically.
# <br/>
# Note that {Site}{Locale} is ignored unless {UseLocale} is set.
# <br />
# Locale names are not standardised - check 'locale -a' on your
# system to see what's installed, and check this works using command
# line tools.  You may also need to check what charsets your browsers
# accept - the 'preferred MIME names' at
# http://www.iana.org/assignments/character-sets are a good starting
# point.
# <br />
# WARNING: Topics are stored in site character set format, so data
# conversion of file names and contents will be needed if you change
# locales after creating topics whose names or contents include 8-bit
# characters.
# <br />
# Examples:<br />
# <code>de_AT.ISO-8859-15</code> - Austria with ISO-8859-15 for Euro<br />
# <code>ru_RU.KOI8-R</code> - Russia<br />
# <code>ja_JP.eucjp</code> - Japan <br />
# <code>C</code> - English only; no I18N features regarding character
# encodings and external programs.
$cfg{Site}{Locale} = 'en_US.ISO-8859-1';

# **BOOLEAN**
# Disable to force explicit listing of national chars in
# regexes, rather than relying on locale-based regexes. Intended
# for Perl 5.6 or higher on platforms with broken locales: should
# only be disabled if you have locale problems.
$cfg{Site}{LocaleRegexes} = $TRUE;

# **STRING**
# If a suitable working locale is not available (i.e. {UseLocale}
# is disabled), OR  you are using Perl 5.005 (with or without working
# locales), OR {Site}{LocaleRegexes} is disabled, you can use WikiWords with
# accented national characters by putting any '8-bit' accented
# national characters within these strings - i.e. {UpperNational}
# should contain upper case non-ASCII letters.  This is termed
# 'non-locale regexes' mode.
# If 'non-locale regexes' is in effect, WikiWord linking will work,
# but  some features such as sorting of WikiWords in search results
# may not. These features depend on {UseLocale}, which can be set
# independently of {Site}{{LocaleRegexes}, so they will work with Perl
# 5.005 as long as {UseLocale} is set and you have working
# locales.
$cfg{UpperNational} = '';
# **STRING**
$cfg{LowerNational} = '';

# **STRING 50**
# Change this only if you must match a specific locale (from 'locale -a')
# whose character set is not supported by your chosen conversion module
# (i.e. Encode for Perl 5.8 or higher, or Unicode::MapUTF8 for other Perl
# versions).  For example, if the locale 'ja_JP.eucjp' exists on your system
# but only 'euc-jp' is supported by Unicode::MapUTF8, set this to 'euc-jp'.
# If you don't define it, it will automatically be defaulted from the
# {Site}{Locale}. Only used if {UseLocale} is set.
$cfg{Site}{CharSet} = undef;

# **STRING 20**
# Site language - change this from the default if it is incorrect. Only
# used if {UseLocale} is set.
$cfg{Site}{Lang} = undef;

# **STRING 20**
# Site language - change this from the default if it is incorrect. Only
# used if {UseLocale} is set.
$cfg{Site}{FullLang} = undef;

# **BOOLEAN**
# Change non-existant plural topic name to singular,
# e.g. TestPolicies to TestPolicy. Only works in English.
$cfg{PluralToSingular} = $TRUE;

#---+ Store settings

# **SELECT RcsWrap,RcsLite,Subversive**
# Default store implementation.
# <ul><li>RcsWrap uses normal RCS executables.</li>
# <li>RcsLite uses a 100% Perl simplified implementation of RCS.
# RcsLite is useful if you don't have, and can't install, RCS - for
# example, on a hosted platform. It will work, and is compatible with
# RCS, but is not quite as fast.</li>
# <li>Subversive is a thin layer over the Subversion version control system.
# It is designed for use by developers in a subversion checkout area,
# and is probably not useful to anyone else.</li></ul>
$cfg{StoreImpl} = 'RcsWrap';

# The quote used for command arguments is normally ' for
# unix, and " for Windows.
# <b>Note: If you override any of the paths, parameters of the form
# %ARG|T% must <em>NOT</em> be enclosed in any kind of quotes.</b> 
# Otherwise the quotes will be treated as part of the parameter value.

$cfg{RCS}{BinDir} ||= '/usr/bin';
unless( defined($cfg{RCS}{ExtOption})) {
    $cfg{RCS}{ExtOption} = "";
    $cfg{RCS}{ExtOption} = "-x,v" if $OS eq "WINDOWS";
}

# **BOOLEAN**
# Some file-based Store implementations (RcsWrap and RcsLite for
# example) store attachment meta-data separately from the actual attachments.
# This means that it is possible to have a file in an attachment directory
# that is not seen as an attachment by TWiki. Sometimes it is desirable to
# be able to simply copy files into a directory and have them appear as
# attachments, and that's what this feature allows you to do.
# Considered experimental.
$cfg{AutoAttachPubFiles} = $TRUE;

# **REGEX**
# Perl regular expression matching suffixes valid on plain text files
# Defines which attachments will be treated as ASCII in RCS
$cfg{RCS}{asciiFileSuffixes} = '.(txt|html|xml|pl)$';

# **OCTAL**
# File security for new directories. You may have to adjust these
# permissions to allow (or deny) users other than the webserver user access
# to directories that TWiki creates. This is an *octal* number
# representing the standard UNIX permissions (e.g. 755 == rwxr-xr-x)
$cfg{RCS}{dirPermission}= 0775;

# **OCTAL**
# File security for new files. You may have to adjust these
# permissions to allow (or deny) users other than the webserver user access
# to files that TWiki creates.  This is an *octal* number
# representing the standard UNIX permissions (e.g. 644 == rw-r--r--)
$cfg{RCS}{filePermission}= 0644;

# **BOOLEAN**
# Set this if you want to use RCS subdirectories instead of storing
# ,v files alongside the topics. Not recommended.
$cfg{RCS}{useSubDir} = $FALSE;

# **BOOLEAN**
# Set this if your RCS cannot check out using the -p option.
# May be needed in some windows installations (not required for cygwin)
$cfg{RCS}{coMustCopy} = $FALSE;

# **PATH**
# Full path to GNU-compatible egrep program. This is used for searching.
# %CS{|-i}% will be expanded
# to -i for case-sensitive search or to the empty string otherwise.
# Similarly for %DET, which controls whether matching lines are required.
# (see the documentation on these options with GNU grep for details).
$cfg{RCS}{EgrepCmd} = "/bin/egrep" . ' %CS{|-i}% %DET{|-l}% -H -- %TOKEN|U% %FILES|F%';

# **PATH**
# Full path to GNU-compatible fgrep program. This is used for searching.
$cfg{RCS}{FgrepCmd} = "/bin/fgrep" . ' %CS{|-i}% %DET{|-l}% -H -- %TOKEN|U% %FILES|F%';

# **COMMAND**
# RcsWrap initialise a file as binary.
# %FILENAME|F% will be expanded to the filename.
$cfg{RCS}{initBinaryCmd} = "$cfg{RCS}{BinDir}/rcs $cfg{RCS}{ExtOption} -q -i -t-none -kb %FILENAME|F%";
# **COMMAND**
# RcsWrap initialise a topic file.
$cfg{RCS}{initTextCmd} = "$cfg{RCS}{BinDir}/rcs $cfg{RCS}{ExtOption} -q -i -t-none -ko %FILENAME|F%";
# **COMMAND**
# RcsWrap uses this on Windows to create temporary binary files during upload.
$cfg{RCS}{tmpBinaryCmd}  = "$cfg{RCS}{BinDir}/rcs $cfg{RCS}{ExtOption} -q -kb %FILENAME|F%";
# **COMMAND**
# RcsWrap check-in.
# %USERNAME|S% will be expanded to the username.
# %COMMENT|U% will be expanded to the comment.
$cfg{RCS}{ciCmd} =
    "$cfg{RCS}{BinDir}/ci $cfg{RCS}{ExtOption} -q -m%COMMENT|U% -t-none -w%USERNAME|S% -u %FILENAME|F%";
# **COMMAND**
# RcsWrap check in, forcing the date.
# %DATE|D% will be expanded to the date.
$cfg{RCS}{ciDateCmd} =
    "$cfg{RCS}{BinDir}/ci $cfg{RCS}{ExtOption} -q -m%COMMENT|U% -t-none -d%DATE|D% -u -w%USERNAME|S% %FILENAME|F%",
# **COMMAND**
# RcsWrap check out.
# %REVISION|N% will be expanded to the revision number
$cfg{RCS}{coCmd} =
    "$cfg{RCS}{BinDir}/co $cfg{RCS}{ExtOption} -q -p%REVISION|N% -ko %FILENAME|F%";
# **COMMAND**
# RcsWrap file history.
$cfg{RCS}{histCmd} =
    "$cfg{RCS}{BinDir}/rlog $cfg{RCS}{ExtOption} -h %FILENAME|F%";
# **COMMAND**
# RcsWrap revision info about the file.
$cfg{RCS}{infoCmd} =
    "$cfg{RCS}{BinDir}/rlog $cfg{RCS}{ExtOption} -r%REVISION|N% %FILENAME|F%";
# **COMMAND**
# RcsWrap revision info about the revision that existed at a given date.
# %REVISIONn|N% will be expanded to the revision number.
# %CONTEXT|N% will be expanded to the number of lines of context.
$cfg{RCS}{rlogDateCmd} =
    "$cfg{RCS}{BinDir}/rlog $cfg{RCS}{ExtOption} -d%DATE|D% %FILENAME|F%";
# **COMMAND**
# RcsWrap differences between two revisions.
$cfg{RCS}{diffCmd} =
    "$cfg{RCS}{BinDir}/rcsdiff $cfg{RCS}{ExtOption} -q -w -B -r%REVISION1|N% -r%REVISION2|N% -ko --unified=%CONTEXT|N% %FILENAME|F%";
# **COMMAND**
# RcsWrap lock a file.
$cfg{RCS}{lockCmd} =
    "$cfg{RCS}{BinDir}/rcs $cfg{RCS}{ExtOption} -q -l %FILENAME|F%";
# **COMMAND**
# RcsWrap unlock a file.
$cfg{RCS}{unlockCmd} =
    "$cfg{RCS}{BinDir}/rcs $cfg{RCS}{ExtOption} -q -u %FILENAME|F%";
# **COMMAND**
# RcsWrap delete a specific revision.
$cfg{RCS}{delRevCmd} =
    "$cfg{RCS}{BinDir}/rcs $cfg{RCS}{ExtOption} -q -o%REVISION|N% %FILENAME|F%";

# **PATH**
# Path to the directory where the RCS store implementation will create
# plugin work areas. Plugin work areas are directories that are managed
# by plugins, for example for temporary files. The directory has to be
# readable and writable by the webserver user.
$TWiki::cfg{RCS}{WorkAreaDir} = "$pubDir/_work_areas";

# **BOOLEAN**
# Set to enable hierarchical webs. Without this setting, TWiki will only
# allow a single level of webs. If you set this, you can use
# multiple levels, like a directory tree, i.e. webs within webs. See
# TWiki.MultiLevelWikiWebs for more details.
$cfg{EnableHierarchicalWebs} = 1;

# **STRING 20**
# Name of the web where documentation and default preferences are held. If you
# change this setting, you must make sure the web exists and contains
# appropriate content, and upgrade scripts may no longer work (i.e. don't
# change it unless you are certain that you know what you are doing!)
$cfg{SystemWebName} = 'TWiki';

# **STRING 20**
# Name of the web used as a trashcan (where deleted topics are moved)
# If you change this setting, you must make sure the web exists.
$cfg{TrashWebName} = 'Trash';

# **STRING 20**
# Name of the web where usertopics are stored. If you
# change this setting, you must make sure the web exists and contains
# appropriate content, and upgrade scripts may no longer work
# (i.e. don't change it unless you are <b>certain</b> that you know what
# you are doing!)
$cfg{UsersWebName} = 'Main';

#---+ Mail and Proxies
# **STRING 20**
# Name of topic in each web that has notification registrations.
# <b>If you change this setting you will have to
# use TWiki to manually rename the topic in all existing webs</b>
$cfg{NotifyTopicName}     = 'WebNotify';

# **BOOLEAN**
# Remove IMG tags in notification mails.
$cfg{RemoveImgInMailnotify} = $TRUE;

# **COMMAND**
# Mail program. If Net::SMTP is installed, it will be used in preference.
# Otherwise this needs to be a command-line program that accepts
# MIME format mail messages on standard input, and mails them.
$cfg{MailProgram} = '/usr/sbin/sendmail -t -oi -oeq';

# **STRING 30**
# Mail host for outgoing mail. This is only used if Net::SMTP is installed.
# Examples: mail.your.company
# <b>CAUTION</b> This setting can be overridden by a setting of SMTPMAILHOST
# in TWikiPreferences. Make sure you delete that setting if you are using a
# TWikiPreferences topic from a previous release of TWiki.
$cfg{SMTP}{MAILHOST} = '';

# **STRING 30**
# Mail domain sending mail, required if you are using Net::SMTP. SMTP
# requires that you identify the server sending mail. If not set, 
# Net::SMTP will guess it for you. Example: twiki.your.company.
# <b>CAUTION</b> This setting can be overridden by a setting of SMTPSENDERHOST
# in TWikiPreferences. Make sure you delete that setting if you are using a
# TWikiPreferences topic from a previous release of TWiki.
$cfg{SMTP}{SENDERHOST} = '';

# **STRING 30**
# Some environments require outbound HTTP traffic to go through a proxy
# server. (e.g. proxy.your.company).
# <b>CAUTION</b> This setting can be overridden by a PROXYHOST setting
# in TWikiPreferences. Make sure you delete the setting from there if
# you are using a TWikiPreferences topic from a previous release of TWiki.
$cfg{PROXY}{HOST} = '';

# **STRING 30**
# Some environments require outbound HTTP traffic to go through a proxy
# server. Set the port number here (e.g: 8080).
# <b>CAUTION</b> This setting can be overridden by a PROXYPORT setting
# in TWikiPreferences. Make sure you delete the setting from there if you
# are using a TWikiPreferences topic from a previous release of TWiki.
$cfg{PROXY}{PORT} = '';

#---+ Miscellaneous settings

# **STRING 50**
# Set to enable experimental mirror-site support. If this name is
# different to MIRRORSITENAME, then this TWiki is assumed to be a
# mirror of another. You are <b>highly</b> recommended not
# to dabble with this experimental, undocumented, untested feature!
$cfg{SiteWebTopicName} = '';

# **STRING 20**
# Name of site-level preferences topic in the {SystemWebName} web.
# <b>If you change this setting you will have to
# use TWiki and *manually* rename the existing topic.</b>
# (i.e. don't change it unless you are <b>certain</b> that you know what
# you are doing!)
$cfg{SitePrefsTopicName} = 'TWikiPreferences';

# **STRING 40**
# Web.TopicName of the site-level local preferences topic. If this topic
# exists, any settings in it will <b>override</b> settings in
# {SitePrefsTopicName}.<br />
# You are <b>strongly</b> recommended to keep all your local changes in
# a {LocalSitePreferences} topic rather than changing TWikiPreferences,
# as it will make upgrading a lot easier.
$cfg{LocalSitePreferences} = 'Main.TWikiPreferences';

# **STRING 20**
# Name of main topic in a web.
# <b>If you change this setting you will have to
# use TWiki to manually rename the topic in all existing webs</b>
# (i.e. don't change it unless you are <b>certain</b> that you know what
# you are doing!)
$cfg{HomeTopicName} = 'WebHome';

# **STRING 20**
# Name of preferences topic in a web.
# <b>If you change this setting you will have to
# use TWiki to manually rename the topic in all existing webs</b>
# (i.e. don't change it unless you are <b>certain</b> that you know what
# you are doing!)
$cfg{WebPrefsTopicName} = 'WebPreferences';

# **STRING 20**
# Name of statistics topic
$cfg{Stats}{TopicName} = 'WebStatistics';

# **NUMBER**
# Number of top viewed topics to show in statistics topic
$cfg{Stats}{TopViews} = 10;

# **NUMBER**
# Number of top contributors to show in statistics topic
$cfg{Stats}{TopContrib} = 10;

# **NUMBER**
# How many links to other revisions to show in the bottom bar. 0 for all
$cfg{NumberOfRevisions} = 4;

# **NUMBER**
# If this is set to a > 0 value, and the revision control system
# supports it (RCS does), then if a second edit of the same topic
# is done by the same user within this number of seconds, a new
# revision of the topic will NOT be created (the top revision will
# be replaced). Set this to 0 if you want <b>all</b> topic changes to create
# a new revision (as required by most formal development processes).
$cfg{ReplaceIfEditedAgainWithin} = 3600;

# **NUMBER**
# When a topic is edited, the user takes a "lease" on that topic.
# If another user tries to also edit the topic while the lease
# is still active, they will get a warning. Leases are released
# automatically when the topic is saved; otherwise they remain active
# for {LeaseLength} seconds from when the edit started (or was checkpointed).
# <p />Note: Leases are <b>not</b> locks; they are purely advisory. Leases
# can always be broken, but they are valuable if you want to avoid merge
# conflicts (e.g. you use highly structured data in your topic text and
# want to avoid ever having to deal with conflicts)
$cfg{LeaseLength} = 3600;

# **NUMBER**
# Even if the other users' lease has expired, then you can specify that
# they should still get a (less forceful) warning about the old lease for
# some additional time after the lease expired. You can set this to 0 to
# suppress these extra warnings completely, or to -1 so they are always
# issued, or to a number of seconds since the old lease expired.
$cfg{LeaseLengthLessForceful} = 3600;

# **PATH**
# Pathname to file that maps file suffixes to MIME types :
# For Apache server set this to Apache's mime.types file pathname,
# for example /etc/httpd/mime.types, or use the default shipped in
# the TWiki data directory.
$cfg{MimeTypesFileName} = "$dataDir/mime.types";

# **PATH**
# Directory where registration approvals are held. Should be somewhere
# that is not browsable from the web.
$cfg{RegistrationApprovals} = "$dataDir/RegistrationApprovals";

# **BOOLEAN**
# If set, this will cause TWiki to treat warnings as errors that will
# cause TWiki to die. Provided for use by Plugin and Skin developers,
# who should develop with it switched on.
$cfg{WarningsAreErrors} = $FALSE;

#---+ Plugins
# The plugins listed below were discovered by searching the @INC path for
# modules that match the TWiki standard e.g. TWiki/Plugins/MyPlugin.pm.
# see <a href="view/TWiki/InstalledPlugins">Installed Plugins</a> for
# diagnostics

# *PLUGINS* Marker used by bin/configure script - do not remove!
$TWiki::cfg{Plugins}{PreferencesPlugin}{Enabled} = 1;
$TWiki::cfg{Plugins}{SmiliesPlugin}{Enabled} = 1;
$TWiki::cfg{Plugins}{CommentPlugin}{Enabled} = 1;
$TWiki::cfg{Plugins}{SpreadSheetPlugin}{Enabled} = 1;
$TWiki::cfg{Plugins}{InterwikiPlugin}{Enabled} = 1;
$TWiki::cfg{Plugins}{TablePlugin}{Enabled} = 1;
$TWiki::cfg{Plugins}{EditTablePlugin}{Enabled} = 1;
$TWiki::cfg{Plugins}{SlideShowPlugin}{Enabled} = 1;

# **STRING 80**
# Plugins evaluation order. If set to a comma-separated list of plugin names,
# will change the execution order of plugins so the listed subset of plugins
# are executed first. The default execution order is alphabetical on plugin
# name.
$cfg{PluginsOrder} = 'SpreadSheetPlugin';

1;
