# Configuration file of TWiki Collaboration Platform, http://TWiki.org/ # # Copyright (C) 1999-2018 Peter Thoeny, peter[at]thoeny.org # Copyright (C) 2006-2018 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 3 # 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 # *. 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 highlighted # below. #

# 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". #

# If you are on a public site, you will need to consider carefully # how you are going to manage authentication and access control. #

# 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 # right here # NOTE FOR DEVELOPERS: you can use $TWiki::cfg variables in other settings, # but you must be sure they are only evaluated under program control and # not when this file is loaded. For example: ## $TWiki::cfg{Blah} = "$TWiki::cfg{DataDir}/blah.dat"; # BAD ## $TWiki::cfg{Blah} = '$TWiki::cfg{DataDir}/blah.dat'; # GOOD my $OS = $TWiki::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.

# Security Note: 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. It must # contain the protocol (http:// or https://) and domain name or IP address. # Add port number if needed. Do not add a trailing slash. # $TWiki::cfg{DefaultUrlHost} = 'http://your.domain.com'; # **REGEX EXPERT** # A server may have aliases. This is to specify a regular expression matching # possible server names. This regular expression suppose to span from the # protocol part up to the port number e.g. qr{http://(?:www\.)?domain\.com} # This is used to detect recursive INCLUDE loop such as: # INCLUDE{http://THIS_SERVER/cgi-bin/view/THIS_WEB/THIS_TOPIC} # Here are some notes: # * Please be careful not to have capturing groups in the value. # That's why the example above has (?:www\.) instead of (www\.). # * The value can either be a regex value (qr{...}) or a string. # * When you set a string value, please don't forget to escape \ # -- e.g. '\\.' matches a dot while '\.' matches any non-newline # character. $TWiki::cfg{UrlHostRegex} = ''; # **STRING** # If your host has aliases (such as both www.twiki.org and twiki.org, and some IP addresses) # you need to list them to tell TWiki that redirecting to them is OK. TWiki uses redirection # as part of its normal mode of operation when it changes between editing and viewing. # The security setting {AllowRedirectUrl} is per default disabled making redirecting to other # domains restricted to prevent TWiki from being used in phishing attacks to protect it from # middleman exploits. You can add additional URLs to this setting to enable redirects to # additional trusted sites. Enter comma-space separated list of URLs. Each URL must be of # form http://your.domain.com, e.g. it must contain the protocol (http:// or https://) and # domain name or IP address. Add port number if needed. Do not add a trailing slash. $TWiki::cfg{PermittedRedirectHostUrls} = ''; # **PATH M** # This is the 'cgi-bin' part of URLs used to access the TWiki bin # directory e.g. /twiki/bin
# Do not include a trailing /. #

# See http://twiki.org/cgi-bin/view/TWiki.ShorterUrlCookbook for more information on setting up # TWiki to use shorter script URLs. # $TWiki::cfg{ScriptUrlPath} = '/twiki/bin'; # **URLPATH M** # Attachments URL path e.g. /twiki/pub #

Security Note: 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) # $TWiki::cfg{PubUrlPath} = '/twiki/pub'; # **PATH M** # Attachments store (file path, not URL), must match /twiki/pub e.g. # /usr/local/twiki/pub # $TWiki::cfg{PubDir} = '/home/httpd/twiki/pub'; # **PATH M** # Template directory e.g. /usr/local/twiki/templates # $TWiki::cfg{TemplateDir} = '/home/httpd/twiki/templates'; # **PATH M** # Topic files store (file path, not URL) e.g. /usr/local/twiki/data # $TWiki::cfg{DataDir} = '/home/httpd/twiki/data'; # **PATH M** # Translation files directory (file path, not URL) e.g. /usr/local/twiki/locales # $TWiki::cfg{LocalesDir} = '/home/httpd/twiki/po'; # **PATH M** # Directory where TWiki stores files that are required for the management # of TWiki, but are not normally required to be browsed from the web. # A number of subdirectories will be created automatically under this # directory: #

# $TWiki::cfg{WorkingDir} = '/home/httpd/twiki/working'; # **STRING 10** # Suffix of TWiki CGI scripts (e.g. .cgi or .pl). You may need to set this # if your webserver requires an extension. $TWiki::cfg{ScriptSuffix} = ''; # ---+ Security setup # **STRING H** # Configuration password (not prompted) $TWiki::cfg{Password} = ''; #---++ Paths # **PATH M** # Path control. Overrides the default PATH setting to control # where TWiki looks for external programs, such as grep and rcs. # By restricting this path to just a few key # directories, you increase the security of your TWiki. #
    #
  1. Unix or Linux # #
  2. Windows ActiveState Perl, using DOS shell
  3. # #
  4. Windows Cygwin Perl
  5. # #
$TWiki::cfg{SafeEnvPath} = ''; #---++ 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 logged-in users consistently. # # See TWiki.TWikiUserAuthentication for a full discussion of the pros and # cons of using persistent sessions. Session files are stored in the # {WorkingDir}/tmp directory. $TWiki::cfg{UseClientSessions} = 1; # **STRING 20 EXPERT** # 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).

# NoteBy 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 # tools/tick_twiki.pl includes this function. $TWiki::cfg{Sessions}{ExpireAfter} = 21600; # **NUMBER EXPERT** # TemplateLogin only. # Normally the cookie that remembers a user session is set to expire # when the browser exits, but using this value you can make the cookie # expire after a set number of seconds instead. If you set it then # users will be able to tick a 'Remember me' box when logging in, and # their session cookie will be remembered even if the browser exits.

# This should always be the same as, or longer than, {Sessions}{ExpireAfter}, # otherwise TWiki may delete the session from its memory even though the # cookie is still active.

# A value of 0 will cause the cookie to expire when the browser exits. # One month is roughly equal to 2600000 seconds. $TWiki::cfg{Sessions}{ExpireCookiesAfter} = 0; # **BOOLEAN EXPERT** # 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}). $TWiki::cfg{Sessions}{IDsInURLs} = 0; # **BOOLEAN EXPERT** # 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) $TWiki::cfg{Sessions}{UseIPMatching} = 1; # **BOOLEAN EXPERT** # 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 not store cookies in the # browser. # The mapping is held in the file $TWiki::cfg{WorkingDir}/tmp/ip2sid. # If you turn this option on, you can safely turn {Sessions}{IDsInURLs} # off. $TWiki::cfg{Sessions}{MapIP2SID} = 0; #---++ Authentication # **SELECTCLASS none,TWiki::LoginManager::*Login** # 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: #

  1. # none - Don't support logging in, all users have access to everything. #
  2. # TWiki::LoginManager::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 it requires enabling {UseClientSessions} to track client # sessions. #
  3. # TWiki::LoginManager::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 if {UseClientSessions} is # enabled. #
$TWiki::cfg{LoginManager} = 'TWiki::LoginManager::TemplateLogin'; # **SELECTCLASS none,TWiki::LoginManager::*TwoStepAuth** # TWiki can be configured to require two-step authentication, which is more # secure because it makes it harder to impersonate a user. The first step is # the usual authentication with username and password. After a successful # first step, a second authentication step is required in order to log in. # The two steps should be of different types, such as something the user # knows (username and password), and something the user has # (mobile phone with SMS). Two-step authentication currently requires # {LoginManager} set to 'TWiki::LoginManager::TemplateLogin'. # Available two-step authentication managers: #
  1. # none - Disable two-step authentication. #
  2. # TWiki::LoginManager::EmailTwoStepAuth - Use e-mail for second step # authentication. User receives e-mail with one-time-use access code. # Requires installation of EmailTwoStepAuthContrib. # Requires enabling {UseClientSessions} to track client sessions. #
  3. # TWiki::LoginManager::SmsTwoStepAuth - Use SMS for second step # authentication. User receives e-mail with one-time-use access code. # Requires installation of SmsTwoStepAuthContrib. # Requires enabling {UseClientSessions} to track client sessions. #
$TWiki::cfg{TwoStepAuthManager} = 'none'; # **BOOLEAN EXPERT** # Browsers typically remember your login and passwords to make authentication # more convenient for users. If your TWiki is used on public terminals, or other # you can prevent this, forcing the user to enter the login and password every time. $TWiki::cfg{TemplateLogin}{PreventBrowserRememberingPassword} = 0; # **REGEX EXPERT** # The perl regular expression used to constrain user login names. Some # environments may require funny characters in login names, such as \. # This is a filter in expression i.e. a login name must match this # expression or an error will be thrown and the login denied. $TWiki::cfg{LoginNameFilterIn} = qr/^[^\s\*?~^\$@%`"'&;\\|<>\x00-\x1f]+$/; # **STRING 20 EXPERT** # Guest user's login name. You are recommended not to change this. $TWiki::cfg{DefaultUserLogin} = 'guest'; # **STRING 20 EXPERT** # Guest user's wiki name. You are recommended not to change this. $TWiki::cfg{DefaultUserWikiName} = 'TWikiGuest'; # **STRING 20 EXPERT** # An internal admin user login name (matched with the configure password, if set) # which can be used as a temporary Admin login (see: Main.TWikiAdminUser). # This login name is additionally required by the install script for some addons # and plugins, usually to gain write access to the TWiki web. # If you change this you risk making topics uneditable. $TWiki::cfg{AdminUserLogin} = 'admin'; # **STRING 20 EXPERT** # An admin user WikiName what is displayed for actions done by the AdminUserLogin # You should normally not need to change this. (you will need to move the # %USERSWEB%.TWikiAdminUser topic to match) $TWiki::cfg{AdminUserWikiName} = 'TWikiAdminUser'; # **STRING 20 EXPERT** # 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. # The default value "TWikiAdminGroup" is used everywhere in TWiki to # protect important settings so you would need a really special reason to # change this setting. $TWiki::cfg{SuperAdminGroup} = 'TWikiAdminGroup'; # **STRING 200 EXPERT** # This affects how isAdmin() result is cached. If each web has its own # admin group and $users->isAdmin($cUID, $topic, $web) is $web sensitive, # this needs to be set 'web'. Otherwise it needs to be 'site'. $TWiki::cfg{Access}{AdminDomain} = 'site'; # **STRING 20 EXPERT** # Name of topic in the {UsersWebName} web where registered users # are listed. Automatically maintained by the standard # registration scripts. If you change this setting you will have to # use TWiki to manually rename the existing topic $TWiki::cfg{UsersTopicName} = 'TWikiUsers'; # **STRING 100 EXPERT** # 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. #

# 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. $TWiki::cfg{AuthScripts} = 'attach,edit,manage,rename,save,upload,viewauth,rdiffauth,rest,mdrepo'; # **STRING 100 EXPERT** # Specify forbidden actions of users in the following format. # CanonUserName1: script1, script2; # canonUserName2: script3, script3; # ... # Please read TWiki.TWikiAccessControl#Forbid_certain_users_to_do_certa for # details. $TWiki::cfg{ForbidUserAction} = ''; # **STRING 80 EXPERT** # Authentication realm. This is # normally only used in md5 password encoding. You may need to change it # if you are sharing a password file with another application. $TWiki::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.'; #---++ User Mapping # **SELECTCLASS TWiki::Users::*UserMapping** # The user mapping is used to equate login names, used with external # authentication systems, with TWiki user identities. By default only # two mappings are available, though other mappings *may* be installed to # support authentication providers. #

  1. # TWiki::Users::TWikiUserMapping - uses TWiki user and group topics to # determine user information, and group memberships. #
  2. # TWiki::Users::BaseUserMapping - has only 2 users, {TWikiAdminUser} and # {TWikiGuestUser}, with the Admins login and password being set from this # configure script. Does not support User registration, and # only works with TemplateLogin. #
$TWiki::cfg{UserMappingManager} = 'TWiki::Users::TWikiUserMapping'; #---++ Registration # **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, and is used to tell # the User Mapping module whether to map login names to wikinames or not # (if it supports mappings, that is). $TWiki::cfg{Register}{AllowLoginName} = $FALSE; # **BOOLEAN EXPERT** # If a login name (or an internal user id) cannot be mapped to a wikiname, # then the user is unknown. By default the user will be displayed using # whatever identity is stored for them. For security reasons you may want # to obscure this stored id by setting this option to true. $TWiki::cfg{RenderLoggedInButUnknownUsers} = $FALSE; # **BOOLEAN** # by turning this option off, you can temporarily disable new user registration. # it will have no effect on existing users. $TWiki::cfg{Register}{EnableNewUserRegistration} = $TRUE; # **BOOLEAN EXPERT** # Hide password in registration email to the *user* # Note that TWiki sends admins a separate confirmation. # Regardless of this setting, the password is sent to the user in clear # text if the administrator registers a user with the "system generated # password" checkbox and the "must change password" checkbox checked. $TWiki::cfg{Register}{HidePasswd} = $TRUE; # **BOOLEAN EXPERT** # Allow system generated password. The registration form has a # "system generated password" checkbox if set and if the logged in user # is an administrator. $TWiki::cfg{Register}{AllowSystemGeneratedPassword} = $TRUE; # **BOOLEAN** # Whether registrations must be verified by the user following # a link sent in an email to the user's registered email address $TWiki::cfg{Register}{NeedVerification} = $FALSE; #---++ Passwords # **SELECTCLASS none,TWiki::Users::*User** # 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: #
  1. # TWiki::Users::HtPasswdUser - handles 'htpasswd' format files, with # passwords encoded as per the HtpasswdEncoding #
  2. # 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. #
# You can provide your own alternative by implementing a new subclass of # TWiki::Users::Password, and pointing {PasswordManager} at it in # lib/LocalSite.cfg.

# If 'none' is selected, users will not be able to change passwords # and TemplateLogin manager then will always succeed, 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. Using ApacheLogin and PassordManager set to 'none' (and # AllowLoginName = true) is a common Enterprise SSO configuration, in which # any logged in user can then register to create their TWiki Based identity. $TWiki::cfg{PasswordManager} = 'TWiki::Users::HtPasswdUser'; # **NUMBER** # Minimum length for a password, for new registrations and password changes. # If you want to allow null passwords, set this to 0. $TWiki::cfg{MinPasswordLength} = 1; # **BOOLEAN EXPERT** # Force user to change the password after a password reset. Set this to on # for better security because the temporary password is sent in clear text. $TWiki::cfg{MustChangePasswordAfterReset} = $TRUE; # **PATH** # Path to the file that stores passwords, for the TWiki::Users::HtPasswdUser # password manager. You can use the htpasswd Apache program to create a new # password file with the right encoding. $TWiki::cfg{Htpasswd}{FileName} = '$TWiki::cfg{DataDir}/.htpasswd'; # **SELECT crypt,sha1,md5,plain,crypt-md5** # Password encryption, for the TWiki::Users::HtPasswdUser password manager. # You can use the htpasswd Apache program to create a new # password file with the right encoding. #

#
crypt
is the default, and should be used on Linux/Unix.
#
sha1
is recommended for use on Windows.
#
md5
htdigest format - 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: # user:{AuthRealm}:password. Take note of this, because it means that # if the {AuthRealm} changes, any existing MD5 encoded passwords will be # invalidated by the change!
#
plain
stores passwords as plain text (no encryption).
#
crypt-md5
Enable use of standard libc (/etc/shadow) crypt-md5 password (like $1$saltsalt$hashashhashhashhash...$) which are stronger than the crypt paswords, salted, and the salt is stored in the encrypted password string as in normal crypt passwords.
#
$TWiki::cfg{Htpasswd}{Encoding} = 'crypt'; #---++ Crypt Token for CSRF/XSS Protection # **BOOLEAN** # TWiki can protects content updates with a one-time-use crypt token # to guard against CSRF (cross-site request forgery) exploits. # If enabled, a user can no longer to hit the browser back button to # fix a typo; an "invalid crypt token" error message is shown if # the user tries to save again.

# There is a balance between security and user convenience. For # mission critical public TWiki sites it is recommended to enable # the crypt token; for firewalled TWiki sites it is usually OK to # disable it.

# Enable crypt tokens to guard against CSRF exploits. $TWiki::cfg{CryptToken}{Enable} = 1; # **STRING 50 EXPERT** # TWiki transparently generates a crypt token in HTML forms, and verifies # if the token is valid on content updates. Specify a comma separated # list of content update actions. $TWiki::cfg{CryptToken}{SecureActions} = 'register,save,comment,createweb,upload'; #---++ Miscellaneous # **STRING 20 EXPERT** # {OS} and {DetailedOS} are calculated in the TWiki code. You # should only need to override if there is something badly wrong with # those calculations.
# {OS} may be one of UNIX WINDOWS VMS DOS MACINTOSH OS2 # $TWiki::cfg{OS} = # **STRING 20 EXPERT** # The value of Perl $OS # $TWiki::cfg{DetailedOS} = # **BOOLEAN EXPERT** # Remove .. from %INCLUDE{filename}%, to stop includes # of relative paths. $TWiki::cfg{DenyDotDotInclude} = $TRUE; # **BOOLEAN EXPERT** # # Allow %INCLUDE of URLs. This is disabled by default, because it is possible # to mount a denial-of-service (DoS) attack on a TWiki site using INCLUDE and # URLs. Only enable it if you are in an environment where a DoS attack is not # a high risk. $TWiki::cfg{INCLUDE}{AllowURLs} = $FALSE; # **BOOLEAN EXPERT** # Allow the use of SCRIPT and LITERAL tags in content. If this is set false, # all SCRIPT and LITERAL sections will be removed from the body of topics. # SCRIPT can still be used in the HEAD section, though.
Note: # This may prevent the TopMenuSkin and some other extensions from functioning # correctly. $TWiki::cfg{AllowInlineScript} = $TRUE; # **BOOLEAN EXPERT** # In HTML rednering, "

" has long been put for a blank line in TML. # Though "

" is self-closing in XML, web browsers handle it as "

" # because the MIME type of most TWiki pages is text/html rather than text/xml. # As such, when you view a topic, the web browser sees P tags not explicitly # closed, which messes up the DOM tree. # If you put "

" in place of "

", the DOM tree gets better and # more predictable. To avoid unexpected consequences, TWiki keeps putting # "

" by default. If {OpenClosePTags} is true, "

" is put instead. $TWiki::cfg{OpenClosePTags} = $FALSE; # **REGEX EXPERT** # Filter-in regex for uploaded (attached) file names. This is a filter # in, so any files that match this filter will be renamed on upload # to prevent upload of files with the same file extensions as executables. #

NOTE: Be sure to update # this list with any configuration or script filetypes that are # automatically run by your web server. $TWiki::cfg{UploadFilter} = qr/^(\.htaccess|.*\.(?i)(?:php[0-9s]?(\..*)?|[sp]htm[l]?(\..*)?|pl|py|cgi))$/; # **REGEX EXPERT** # Filter-out regex for webnames, topic names, usernames, include paths # and skin names. This is a filter out, so if any of the # characters matched by this expression are seen in names, they will be # removed. $TWiki::cfg{NameFilter} = qr/[\s\*?~^\$\#@%`"'&;\\|<>\[\]\+\x00-\x1f]/; # **BOOLEAN EXPERT** # If this is set, the the search module will use more relaxed # rules governing regular expressions searches. $TWiki::cfg{ForceUnsafeRegexes} = $FALSE; # **BOOLEAN EXPERT** # 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. $TWiki::cfg{GetScriptUrlFromCgi} = $FALSE; # **BOOLEAN EXPERT** # Draining STDIN may be necessary if the script is called due to a # redirect and the original query was a POST. In this case the web # server is waiting to write the POST data to this script's STDIN, # but CGI.pm won't drain STDIN as it is seeing a GET because of the # redirect, not a POST. Enable this only in case a TWiki script # hangs. $TWiki::cfg{DrainStdin} = $FALSE; # **BOOLEAN EXPERT** # 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. $TWiki::cfg{RemovePortNumber} = $FALSE; # **BOOLEAN EXPERT** # Allow the use of URLs in the redirectto parameter to the # save script, and in topic parameter to the # view script. WARNING: Enabling this feature makes it # very easy to build phishing pages using the wiki, so in general, # public sites should not enable it. Note: It is possible to # redirect to a topic regardless of this setting, such as # topic=OtherTopic or redirectto=Web.OtherTopic. # To enable redirection to a just list of trusted URLs keep this setting # disabled and add a list of trusted URL to the {PermittedRedirectHostUrls} # setting in the General path settings section. $TWiki::cfg{AllowRedirectUrl} = $FALSE; # **REGEX EXPERT** # Defines the filter-in regexp that must match the names of environment # variables that can be seen using the %ENV{}% TWiki variable. Set it to # '^.*$' to allow all environment variables to be seen (not recommended). $TWiki::cfg{AccessibleENV} = '^(HTTP_\w+|REMOTE_\w+|SERVER_\w+|REQUEST_\w+|MOD_PERL|TWIKI_ACTION)$'; # **BOOLEAN EXPERT** # Disable XSS-Protection implemented in some browsers. # When a user saves a topic page that contains any JavaScript, the result # view page (redirected from the last POST) is subject to the XSS protection, # where the edited JavaScript is not executed, until the page is reloaded and # displayed again. # It is inconvenient when some JavaScript in a TWiki topic is incrementally # edited again and again during development. # This configuration option adds 'X-XSS-Protection: 0' to the HTTP response # header, so that the JavaScript is executed even when the page is edited and # saved. $TWiki::cfg{DisableXSSProtection} = $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 # # BlackListPlugin # **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 $TWiki::cfg{AntiSpam}{EmailPadding} = ''; # **STRING 50** # Same as {AntiSpam}{EmailPadding}, except that the spam # padding is only done for non-authenticated users. $TWiki::cfg{AntiSpam}{EmailGuestPadding} = ''; # **BOOLEAN** # Normally TWiki stores the user's sensitive information (such as their e-mail # address) in a database out of public view. It also obfuscates e-mail # addresses displayed in the browser. This is to help prevent e-mail # spam and identity fraud.
# If that is not a risk for you (e.g. you are behind a firewall) and you # are happy for e-mails to be made public to all TWiki users, # then you can set this option.
# Note that if this option is set, then the user parameter to # %USERINFO is ignored. $TWiki::cfg{AntiSpam}{HideUserDetails} = $TRUE; # **BOOLEAN** # By default, TWiki doesn't do anything to stop robots, such as those used # by search engines, from visiting "normal view" pages. # If you disable this option, TWiki will generate a META tag to tell robots # not to index pages.
# Inappropriate pages (like the raw and edit views) are always protected from # being indexed.
# Note that for full protection from robots you should also use robots.txt # (there is an example in the root of your TWiki installation). $TWiki::cfg{AntiSpam}{RobotsAreWelcome} = $TRUE; #---+ Log files # **BOOLEAN EXPERT** # 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. $TWiki::cfg{Log}{view} = $TRUE; # very frequent, every page view # **BOOLEAN EXPERT** $TWiki::cfg{Log}{viewfile} = $TRUE; # when an attachment is viewed via viewfile # **BOOLEAN EXPERT** $TWiki::cfg{Log}{search} = $TRUE; # **BOOLEAN EXPERT** $TWiki::cfg{Log}{changes} = $TRUE; # infrequent if you use WebChanges # **BOOLEAN EXPERT** $TWiki::cfg{Log}{rdiff} = $TRUE; # whenever revisions are differenced # **BOOLEAN EXPERT** $TWiki::cfg{Log}{edit} = $TRUE; # fairly frequent, every time a page is edited # **BOOLEAN EXPERT** $TWiki::cfg{Log}{save} = $TRUE; # **BOOLEAN EXPERT** $TWiki::cfg{Log}{upload} = $TRUE; # whenever a new attachment is created # **BOOLEAN EXPERT** $TWiki::cfg{Log}{attach} = $TRUE; # **BOOLEAN EXPERT** $TWiki::cfg{Log}{rename} = $TRUE; # when a topic or attachment is renamed # **BOOLEAN EXPERT** $TWiki::cfg{Log}{register} = $TRUE; # rare, when a new user registers # **BOOLEAN EXPERT** $TWiki::cfg{Log}{mdrepo} = $TRUE; # 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%. # It defaults to the data dir # **PATH** # File for configuration messages generated by the configure script. # (usually very very low volume). $TWiki::cfg{ConfigurationLogName} = '$TWiki::cfg{DataDir}/configurationlog.txt'; # **PATH** # File for debug messages (usually very low volume). %DATE% gets expanded # to YYYYMM (year, month), allowing you to rotate logs. $TWiki::cfg{DebugFileName} = '$TWiki::cfg{DataDir}/debug.txt'; # **PATH** # Warnings - low volume, hopefully! %DATE% gets expanded # to YYYYMM (year, month), allowing you to rotate logs. $TWiki::cfg{WarningFileName} = '$TWiki::cfg{DataDir}/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. $TWiki::cfg{LogFileName} = '$TWiki::cfg{DataDir}/log%DATE%.txt'; #---+ Localisation #

# 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. #

#

# Note: 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 # (Locale::Maketext::Lexicon and Encode/MapUTF8 Perl # modules) are installed (see the CGI Setup section above), the # multi-language user interface will just work. #

# **BOOLEAN** # Enable user interface internationalisation, i.e. presenting the user # interface in the users own language. #

# 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. #

# Allowing all languages is the best for really international sites. # But for best performance you should enable only the languages you really # need. English is the default language, and is always enabled. #

# {LocalesDir} is used to find the languages supported in your installation, # so if the list below is empty, it's probably because {LocalesDir} is pointing # to the wrong place. $TWiki::cfg{UserInterfaceInternationalisation} = $FALSE; # *LANGUAGES* Marker used by bin/configure script - do not remove! $TWiki::cfg{Languages}{bg}{Enabled} = 1; $TWiki::cfg{Languages}{cs}{Enabled} = 1; $TWiki::cfg{Languages}{da}{Enabled} = 1; $TWiki::cfg{Languages}{de}{Enabled} = 1; $TWiki::cfg{Languages}{es}{Enabled} = 1; $TWiki::cfg{Languages}{fr}{Enabled} = 1; $TWiki::cfg{Languages}{it}{Enabled} = 1; $TWiki::cfg{Languages}{ja}{Enabled} = 1; $TWiki::cfg{Languages}{ko}{Enabled} = 1; $TWiki::cfg{Languages}{nl}{Enabled} = 1; $TWiki::cfg{Languages}{pl}{Enabled} = 1; $TWiki::cfg{Languages}{pt}{Enabled} = 1; $TWiki::cfg{Languages}{ru}{Enabled} = 1; $TWiki::cfg{Languages}{sv}{Enabled} = 1; $TWiki::cfg{Languages}{'zh-cn'}{Enabled} = 1; $TWiki::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 $TWiki::cfg{DisplayTimeValues} = 'gmtime'; # **SELECT $day $month $year, $year-$mo-$day, $year/$mo/$day, $year.$mo.$day** # Set the default format for dates. The traditional TWiki format is # '$day $month $year' (31 Dec 2007). The ISO format '$year-$mo-$day' # (2007-12-31) is recommended for non English language TWikis. Note that $mo # is the month as a two digit number. $month is the three first letters of # English name of the month $TWiki::cfg{DefaultDateFormat} = '$year-$mo-$day'; # **BOOLEAN** # Even if you don't use a locale, you may want to use non-ASCII characters in # attachment file names. If so, make this true $TWiki::cfg{AllowI18NFileName} = $FALSE; # **BOOLEAN** # Locale - set to enable operating system level locales and # internationalisation support for 8-bit character sets $TWiki::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. #
# Note that {Site}{Locale} is ignored unless {UseLocale} is set. #
# Locale names are not standardised. On Unix/Linux check 'locale -a' on # your system to see which locales are supported by your system. # 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. #
# 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. #
# Examples:
# en_US.ISO-8859-1 - Standard US ISO-8859-1 (default)
# de_AT.ISO-8859-15 - Austria with ISO-8859-15 for Euro
# ru_RU.KOI8-R - Russia
# ja_JP.eucjp - Japan
# C - English only; no I18N features regarding character # encodings and external programs.
# UTF-8 locale like en_US.utf8 is still considered experimental $TWiki::cfg{Site}{Locale} = 'en_US.ISO-8859-1'; # **STRING 100** # %LANG% value is calculated from {Site}{Locale} but you may want to # explicitly specify. In such a case, set $TWiki::cfg{Site}{Lang}. # $TWiki::cfg{Site}{Lang} # **BOOLEAN EXPERT** # 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. $TWiki::cfg{Site}{LocaleRegexes} = $TRUE; # **STRING EXPERT** # 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. $TWiki::cfg{UpperNational} = ''; # **STRING EXPERT** # $TWiki::cfg{LowerNational} = ''; # **STRING 50 ** # Set this to match your chosen {Site}{Locale} (from 'locale -a') # whose character set is not supported by your available perl 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 to iso-8859-1
# UTF-8 support is still considered experimental. Use the value 'utf-8' to try it. $TWiki::cfg{Site}{CharSet} = ''; # **BOOLEAN EXPERT** # Change non-existent plural topic name to singular, # e.g. TestPolicies to TestPolicy. Only works in English. $TWiki::cfg{PluralToSingular} = $TRUE; #---+ Store settings # **SELECT RcsWrap,RcsLite** # Default store implementation. #

# You can manually add options to LocalSite.cfg to select a # different store for each web. If $TWiki::cfg{Store}{Fred} is defined, it will # be taken as the name of a perl class (which must implement the methods of # TWiki::Store::RcsFile). # The TWiki::Store::Subversive class is an example implementation using the # Subversion version control system as a data store. #
NOTE: If you select RcsLite it is recommended to set # {RCS}{SearchAlgorithm} expert setting to PurePerl. $TWiki::cfg{StoreImpl} = 'RcsWrap'; # **STRING 20 EXPERT** # Specifies the extension to use on RCS files. Set to -x,v on windows, leave # blank on other platforms. $TWiki::cfg{RCS}{ExtOption} = ""; # **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) $TWiki::cfg{RCS}{dirPermission}= 0755; # **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--) $TWiki::cfg{RCS}{filePermission}= 0644; # **BOOLEAN EXPERT** # Attachment behavior when a user clicks on the "manage" link of an existing # attachment, and attaches a new file. # $TWiki::cfg{AttachWithSameName} = $FALSE; # **BOOLEAN EXPERT** # 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. $TWiki::cfg{AutoAttachPubFiles} = $FALSE; # **NUMBER EXPERT** # Number of seconds to remember changes for. This doesn't affect revision # histories, which always remember the date a file change. It only affects # the number of changes that are cached for fast access by the 'changes' and # 'statistics' scripts, and for use by extensions such as the change # notification mailer. It should be no shorter than the interval between runs # of these scripts. $TWiki::cfg{Store}{RememberChangesFor} = 31 * 24 * 60 * 60; # **NUMBER EXPERT** # TWiki::Render::summariseChanges() calls TWiki::Merge::simpleMerge(), which # calls Algorithm::Diff::traverse_balanced(), which may cause out-of-memory # with a topic bigger than two megabytes. The limit may vary depending on the # version of Algorithm::Diff and other factors. # This is to set the limit of the text size TWiki::Render::summariseChanges() # handles in bytes. Setting 0 means no limit. # Please read TWikibug:Item7562 for details. $TWiki::cfg{SummariseSizeLimit} = 0; # **REGEX EXPERT** # Perl regular expression matching suffixes valid on plain text files # Defines which attachments will be treated as ASCII in RCS. This is a # filter in, so any filenames that match this expression will # be treated as ASCII. $TWiki::cfg{RCS}{asciiFileSuffixes} = qr/\.(txt|html|xml|pl)$/; # **BOOLEAN EXPERT** # Set this if your RCS cannot check out using the -p option. # May be needed in some windows installations (not required for cygwin) $TWiki::cfg{RCS}{coMustCopy} = $FALSE; # **COMMAND EXPERT** # RcsWrap initialise a file as binary. # %FILENAME|F% will be expanded to the filename. $TWiki::cfg{RCS}{initBinaryCmd} = "/usr/bin/rcs $TWiki::cfg{RCS}{ExtOption} -i -t-none -kb %FILENAME|F%"; # **COMMAND EXPERT** # RcsWrap initialise a topic file. $TWiki::cfg{RCS}{initTextCmd} = "/usr/bin/rcs $TWiki::cfg{RCS}{ExtOption} -i -t-none -ko %FILENAME|F%"; # **COMMAND EXPERT** # RcsWrap uses this on Windows to create temporary binary files during upload. $TWiki::cfg{RCS}{tmpBinaryCmd} = "/usr/bin/rcs $TWiki::cfg{RCS}{ExtOption} -kb %FILENAME|F%"; # **COMMAND EXPERT** # RcsWrap check-in. # %USERNAME|S% will be expanded to the username. # %COMMENT|U% will be expanded to the comment. $TWiki::cfg{RCS}{ciCmd} = "/usr/bin/ci $TWiki::cfg{RCS}{ExtOption} -m%COMMENT|U% -t-none -w%USERNAME|S% -u %FILENAME|F%"; # **COMMAND EXPERT** # RcsWrap check in, forcing the date. # %DATE|D% will be expanded to the date. $TWiki::cfg{RCS}{ciDateCmd} = "/usr/bin/ci $TWiki::cfg{RCS}{ExtOption} -m%COMMENT|U% -t-none -d%DATE|D% -u -w%USERNAME|S% %FILENAME|F%"; # **COMMAND EXPERT** # RcsWrap check out. # %REVISION|N% will be expanded to the revision number $TWiki::cfg{RCS}{coCmd} = "/usr/bin/co $TWiki::cfg{RCS}{ExtOption} -p%REVISION|N% -ko %FILENAME|F%"; # **COMMAND EXPERT** # RcsWrap file history. $TWiki::cfg{RCS}{histCmd} = "/usr/bin/rlog $TWiki::cfg{RCS}{ExtOption} -h %FILENAME|F%"; # **COMMAND EXPERT** # RcsWrap revision info about the file. $TWiki::cfg{RCS}{infoCmd} = "/usr/bin/rlog $TWiki::cfg{RCS}{ExtOption} -r%REVISION|N% %FILENAME|F%"; # **COMMAND EXPERT** # 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. $TWiki::cfg{RCS}{rlogDateCmd} = "/usr/bin/rlog $TWiki::cfg{RCS}{ExtOption} -d%DATE|D% %FILENAME|F%"; # **COMMAND EXPERT** # RcsWrap differences between two revisions. $TWiki::cfg{RCS}{diffCmd} = "/usr/bin/rcsdiff $TWiki::cfg{RCS}{ExtOption} -q -w -B -r%REVISION1|N% -r%REVISION2|N% -ko --unified=%CONTEXT|N% %FILENAME|F%"; # **COMMAND EXPERT** # RcsWrap lock a file. $TWiki::cfg{RCS}{lockCmd} = "/usr/bin/rcs $TWiki::cfg{RCS}{ExtOption} -l %FILENAME|F%"; # **COMMAND EXPERT** # RcsWrap unlock a file. $TWiki::cfg{RCS}{unlockCmd} = "/usr/bin/rcs $TWiki::cfg{RCS}{ExtOption} -u %FILENAME|F%"; # **COMMAND EXPERT** # RcsWrap break a file lock. $TWiki::cfg{RCS}{breaklockCmd} = "/usr/bin/rcs $TWiki::cfg{RCS}{ExtOption} -u -M %FILENAME|F%"; # **COMMAND EXPERT** # RcsWrap delete a specific revision. $TWiki::cfg{RCS}{delRevCmd} = "/usr/bin/rcs $TWiki::cfg{RCS}{ExtOption} -o%REVISION|N% %FILENAME|F%"; # **SELECTCLASS TWiki::Store::SearchAlgorithms::* EXPERT** # TWiki RCS has two built-in search algorithms #
  1. The default 'Forking' algorithm, which forks a subprocess that # runs a 'grep' command, #
  2. the 'PurePerl' implementation, which is written in Perl and # usually only used as a last resort.
# Normally you will be just fine with the 'Forking' implementation. However # if you find searches run very slowly, you may want to try a different # algorithm, which may work better on your configuration. # Note that there is an alternative algorithm available from # http://twiki.org/cgi-bin/view/Plugins/NativeSearchContrib, that often # gives better performance with mod_perl and Speedy CGI. $TWiki::cfg{RCS}{SearchAlgorithm} = 'TWiki::Store::SearchAlgorithms::Forking'; # **SELECTCLASS TWiki::Store::QueryAlgorithms::* EXPERT** # The standard TWiki algorithm for performing queries is not particularly # fast (it is based on plain-text searching). You may be able to select # a different algorithm here, depending on what alternative implementations # may have been installed. $TWiki::cfg{RCS}{QueryAlgorithm} = 'TWiki::Store::QueryAlgorithms::BruteForce'; # **COMMAND EXPERT** # Full path to GNU-compatible egrep program. This is used for searching when # {SearchAlgorithm} is 'TWiki::Store::SearchAlgorithms::Forking'. # %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). $TWiki::cfg{RCS}{EgrepCmd} = '/bin/grep -E %CS{|-i}% %DET{|-l}% -H -- %TOKEN|U% %FILES|F%'; # **COMMAND EXPERT** # Full path to GNU-compatible fgrep program. This is used for searching when # {SearchAlgorithm} is 'TWiki::Store::SearchAlgorithms::Forking'. $TWiki::cfg{RCS}{FgrepCmd} = '/bin/grep -F %CS{|-i}% %DET{|-l}% -H -- %TOKEN|U% %FILES|F%'; # **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. $TWiki::cfg{EnableHierarchicalWebs} = 1; # **STRING 20 EXPERT** # 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!) $TWiki::cfg{SystemWebName} = 'TWiki'; # **STRING 20 EXPERT** # 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. $TWiki::cfg{TrashWebName} = 'Trash'; # **STRING 20 EXPERT** # 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 certain that you know what # you are doing!) $TWiki::cfg{UsersWebName} = 'Main'; # **REGEX EXPERT** # If a web name matches this, it's regarded invalid. # Please read TWikibug:Item7838 for details. $TWiki::cfg{InvalidWebNameRegex} = '[./]RCS\\b'; #---+ Mail and Proxies # **BOOLEAN** # Enable email globally. $TWiki::cfg{EnableEmail} = $TRUE; # **STRING 30** # TWiki administrator's e-mail address e.g. webmaster@example.com # (used in %WIKIWEBMASTER%) # NOTE: must be a single valid email address $TWiki::cfg{WebMasterEmail} = ''; # **STRING 30** # TWiki administrator's name address, for use in mails (first name and # last name, e.g. =Fred Smith=) (used in %WIKIWEBMASTERNAME%) $TWiki::cfg{WebMasterName} = 'TWiki Administrator'; # **PATH** # Secure email certificate. If you want e-mail sent by TWiki to be signed, # specify the filename of the administrator's X.509 certificate here, such # as /etc/pki/tls/certs/cert.pem. It must be in PEM format. If you # do not want signed e-mail, leave this field blank. $TWiki::cfg{SmimeCertificateFile} = ''; # **PATH** # Secure email certificate. If you want e-mail sent by TWiki to be signed, # specify the filename of the administrator's X.509 private key here, such # as /etc/pki/tls/private/key.pem. It must be in PEM format. Be sure # that this file is only readable by the TWiki software; it must NOT be # readable by users! If you do not want signed e-mail, # leave this field blank. $TWiki::cfg{SmimeKeyFile} = ''; # **PASSWORD 30** # Password for secure email certificate key. Required if the key is encrypted # with DES3 encryption. Leave blank otherwise. (Other encryption formats are not currently supported, # and can be converted with # openssl rsa -in keyfile.pem -out keyfile.pem -des3 $TWiki::cfg{SmimeKeyPassword} = ''; # **COMMAND** # Mail program. If Net::SMTP is installed, it will be used in preference. # To force TWiki to use the {MailProgram}, unset both {SMTP}{MAILHOST} # below and all SMTPMAILHOST settings in your TWiki's Preferences topics. # This needs to be a command-line program that accepts # MIME format mail messages on standard input, and mails them. # To disable all outgoing email from TWiki leave both this field and the # MAILHOST field below blank. $TWiki::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 #
CAUTION: This setting can be overridden by a SMTPMAILHOST setting # in TWikiPreferences. Make sure you delete that setting if you are using a # TWikiPreferences topic from a previous release of TWiki. To disable all # outgoing mail from TWiki leave both this field and the MailProgram field # above blank. #
NOTE: If you are using SELinux you might need to configure # it to allow TWiki to send e-mails: #
$ sudo setsebool -P httpd_can_sendmail on #
$ sudo setsebool -P httpd_can_network_connect on $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. # CAUTION 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. $TWiki::cfg{SMTP}{SENDERHOST} = ''; # **STRING 30** # Username for SMTP. Only required if your server requires authentication. If # this is left blank, TWiki will not attempt to authenticate the mail sender. $TWiki::cfg{SMTP}{Username} = ''; # **PASSWORD 30** # Password for your {SMTP}{Username}. $TWiki::cfg{SMTP}{Password} = ''; # **BOOLEAN EXPERT** # Remove IMG tags in notification mails. $TWiki::cfg{RemoveImgInMailnotify} = $TRUE; # **STRING 20 EXPERT** # Name of topic in each web that has notification registrations. # If you change this setting you will have to # use TWiki to manually rename the topic in all existing webs $TWiki::cfg{NotifyTopicName} = 'WebNotify'; # **BOOLEAN EXPERT** # Set this option on to enable debug # mode in SMTP. Output will go to the webserver error log $TWiki::cfg{SMTP}{Debug} = 0; # **STRING 30 EXPERT** # Some environments require outbound HTTP traffic to go through a proxy # server. (e.g. proxy.your.company). # CAUTION 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. $TWiki::cfg{PROXY}{HOST} = ''; # **STRING 30 EXPERT** # Some environments require outbound HTTP traffic to go through a proxy # server. Set the port number here (e.g: 8080). # CAUTION 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. $TWiki::cfg{PROXY}{PORT} = ''; # **STRING 30 EXPERT** # User name for proxy that requires authentication. The Perl LWP module # is required for authenticated proxy. $TWiki::cfg{PROXY}{Username} = ''; # **STRING 30 EXPERT** # Password for proxy that requires authentication. $TWiki::cfg{PROXY}{Password} = ''; # **STRING 30 EXPERT** # Domains excluded from proxy, such as # intra.example.com, bugs.example.com $TWiki::cfg{PROXY}{SkipProxyForDomains} = ''; # **STRING 30 EXPERT** # Comma separated list of HTTP header fields which must not be exposed by # %HTTP{...}% $TWiki::cfg{HTTP}{HiddenFields} = 'cookie'; #---+ Miscellaneous settings # **NUMBER** # Number of top viewed topics to show in statistics topic $TWiki::cfg{Stats}{TopViews} = 10; # **NUMBER** # Number of top viewers to show in statistics topic $TWiki::cfg{Stats}{TopViewers} = 10; # **NUMBER** # Number of top contributors to show in statistics topic $TWiki::cfg{Stats}{TopContrib} = 10; # **STRING 20 EXPERT** # Name of statistics topic in each web $TWiki::cfg{Stats}{TopicName} = 'WebStatistics'; # **NUMBER** # Number of webs viewed most to be listed on the "Webs Viewed" column # in the site statistics topic $TWiki::cfg{Stats}{SiteTopViews} = 0; # **NUMBER** # Number of webs updated most to be listed on the "Webs Updated" column # in the site statistics topic $TWiki::cfg{Stats}{SiteTopUpdates} = 0; # **NUMBER** # Number of top viewers to show in site statistics topic $TWiki::cfg{Stats}{SiteTopViewers} = 10; # **NUMBER** # Number of top contributors to show in site statistics topic $TWiki::cfg{Stats}{SiteTopContrib} = 10; # **STRING 20 EXPERT** # Name of site statistics topic in the Main web $TWiki::cfg{Stats}{SiteStatsTopicName} = 'SiteStatistics'; # **COMMAND EXPERT** # Path to df command that reports file system disk space usage. # The df command is pre-installed on Linux and OS-X. On Windows install the # CoreUtils # for Windows. % DIRECTORY|F% will be expanded to the directory. $TWiki::cfg{Stats}{dfCmd} = '/bin/df %DIRECTORY|F%'; # **BOOLEAN EXPERT** # The statistics script contacts twiki.org to query the number of plugins # available for the currently installed TWiki version via an http GET. It # also sends anonymized site usage statistics to twiki.org via query string. # Example query string: #
statSite=978B8B8FC5D0D0888888D18B97909A9186D1908D98;statDate=2011-04; #
statWebs=20;statWebsViewed=15;statWebsUpdated=6;statTopics=1501;statTopicsViewed=724; #
statTopicsUpdated=137;statAttachments=724;statViews=578;statSaves=223;statUploads=19; #
statDataSize=46.4;statPubSize=238.4;statDiskUse=93%25;statUsers=31;statGroups=7;statPlugins=22; #
statVersion=TWiki-5.1.0;
$TWiki::cfg{Stats}{DontContactTWikiOrg} = $FALSE; # **BOOLEAN EXPERT** # The statistics script updates WebStatistics of webs and Main.SiteStatistics. # Setting this pparameter true causes WebStatisticsYYYY and # Main.SiteStatisticsYYYY to be updated where YYYY is the current year. # Please refer to TWiki.TWikiSiteTools#WebStatisticsYYYY for details. $TWiki::cfg{Stats}{TopicPerYear} = $FALSE; # **STRING EXPERT** # The regular expression of web names to be excluded in !WebStatistics update. # Please read %SYSTEMWEB%.TWikiSiteTools#ExcludedWebRegex for details. $TWiki::cfg{Stats}{ExcludedWebRegex} = ''; # **STRING EXPERT** # Whether or not showing affiliation breakdown of views, saves, and uploads. # For this to work, the user mapping handler must have the # getAffiliation($cUID) object method. Please read # TWiki.TWikiSiteTools#AffiliationBreakdown for more information. $TWiki::cfg{Stats}{Breakdown} = $FALSE; # **NUMBER EXPERT** # In the affiliation breakdown in web statistics, at most how many affiliations # are listed $TWiki::cfg{Stats}{TopAffiliation} = 10; # **NUMBER EXPERT** # In the affiliation breakdown in site statistics, at most how many affiliations # are listed $TWiki::cfg{Stats}{SiteTopAffiliation} = 10; # **STRING 120 EXPERT** # Template path. A comma-separated list of generic file names, containing # variables standing for part of the file name. When a template $name in $web # with $skin is requested, this path is instantiated into a sequence of file # names. The first file on this list that is found considered to be the # requested template file. The file names can either be absolute file names # ending in ".tmpl" or a topic file in a TWiki web. $TWiki::cfg{TemplatePath} = '$TWiki::cfg{TemplateDir}/$web/$name.$skin.tmpl, $TWiki::cfg{TemplateDir}/$name.$skin.tmpl, $TWiki::cfg{TemplateDir}/$web/$name.tmpl, $TWiki::cfg{TemplateDir}/$name.tmpl, $web.$skinSkin$nameTemplate, $TWiki::cfg{SystemWebName}.$skinSkin$nameTemplate, $web.$nameTemplate, $TWiki::cfg{SystemWebName}.$nameTemplate'; # **STRING 120 EXPERT** # List of protocols (URI schemes) that TWiki will # automatically recognize and activate if found in absolute links. # Additions you might find useful in your environment could be 'imap' or 'pop' # (if you are using shared mailboxes accessible through your browser), or 'tel' # if you have a softphone setup that supports links using this URI scheme. A list of popular URI schemes can be # found at http://en.wikipedia.org/wiki/URI_scheme. $TWiki::cfg{LinkProtocolPattern} = '(file|ftp|gopher|https|http|irc|mailto|news|nntp|telnet)'; # **BOOLEAN** # Open external links in a new browser window or tab. $TWiki::cfg{Links}{ExternalLinksInNewWindow} = $TRUE; # **BOOLEAN** # Show external link icon next to external links. $TWiki::cfg{Links}{ExternalLinksIcon} = $TRUE; # **STRING 120** # List of exceptional domains (comma-separated) to which links should *not* be # converted to the external link format. # If you want to maintain the list of domains in some topic page, specify # "topic:TopicName" or "topic:WebName.TopicName" where WebName defaults to # %SYSTEMWEB%. In the topic, the domain names should be listed in a TWiki table # format (left-most column in each row). $TWiki::cfg{Links}{InternalDomains} = ''; # **STRING 40 Expert** # URL pattern of "@twitter_ID" style links. Use %ID% for the # Twitter ID. An empty string disables autolinking. $TWiki::cfg{Links}{TwitterUrlPattern} = 'https://twitter.com/%ID%'; # **STRING 20 EXPERT** # Name of site-level preferences topic in the {SystemWebName} web. # If you change this setting you will have to # use TWiki and *manually* rename the existing topic. # (i.e. don't change it unless you are certain that you know what # you are doing!) $TWiki::cfg{SitePrefsTopicName} = 'TWikiPreferences'; # **STRING 40 EXPERT** # Web.TopicName of the site-level local preferences topic. If this topic # exists, any settings in it will override settings in # {SitePrefsTopicName}.
# You are strongly recommended to keep all your local changes in # a {LocalSitePreferences} topic rather than changing TWikiPreferences, # as it will make upgrading a lot easier. $TWiki::cfg{LocalSitePreferences} = 'Main.TWikiPreferences'; # **STRING 20 EXPERT** # Name of main topic in a web. # If you change this setting you will have to # use TWiki to manually rename the topic in all existing webs # (i.e. don't change it unless you are certain that you know what # you are doing!) $TWiki::cfg{HomeTopicName} = 'WebHome'; # **STRING 20 EXPERT** # Name of preferences topic in a web. # If you change this setting you will have to # use TWiki to manually rename the topic in all existing webs # (i.e. don't change it unless you are certain that you know what # you are doing!) $TWiki::cfg{WebPrefsTopicName} = 'WebPreferences'; # **STRING 20 EXPERT** # Specifies to read user preferences before web preferences # (the only way up to TWiki 6.0.0) # or at the last step of preferences variable setting # (new option from 6.0.1) # Please read TWiki.TWikiVariables#ControllingUserLevelOverride for details $TWiki::cfg{DemoteUserPreferences} = $FALSE; # **NUMBER EXPERT** # How many links to other revisions to show in the bottom bar. 0 for all $TWiki::cfg{NumberOfRevisions} = 4; # **NUMBER EXPERT** # 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 all topic changes to create # a new revision (as required by most formal development processes). $TWiki::cfg{ReplaceIfEditedAgainWithin} = 3600; # **NUMBER EXPERT** # 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). #

Note: Leases are not 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) $TWiki::cfg{LeaseLength} = 3600; # **NUMBER EXPERT** # 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. $TWiki::cfg{LeaseLengthLessForceful} = 3600; # **PATH EXPERT** # 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. $TWiki::cfg{MimeTypesFileName} = '$TWiki::cfg{DataDir}/mime.types'; # **BOOLEAN EXPERT** # 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. $TWiki::cfg{WarningsAreErrors} = $FALSE; # **PERL H** # List of operators permitted in structured search queries. # Each operator is implemented by a class. Not visible in the # configure UI. $TWiki::cfg{Operators}{Query} = [ 'TWiki::Query::OP_and', 'TWiki::Query::OP_eq', 'TWiki::Query::OP_lc', 'TWiki::Query::OP_lte', 'TWiki::Query::OP_not', 'TWiki::Query::OP_ref', 'TWiki::Query::OP_d2n', 'TWiki::Query::OP_gte', 'TWiki::Query::OP_length', 'TWiki::Query::OP_lt', 'TWiki::Query::OP_ob', 'TWiki::Query::OP_uc', 'TWiki::Query::OP_dot', 'TWiki::Query::OP_gt', 'TWiki::Query::OP_like', 'TWiki::Query::OP_ne', 'TWiki::Query::OP_or', 'TWiki::Query::OP_where' ]; # **PERL H** # List of operators permitted in %IF statements. # Each operator is implemented by a class. Not visible in the # configure UI. $TWiki::cfg{Operators}{If} = [ 'TWiki::If::OP_allows', 'TWiki::If::OP_defined', 'TWiki::If::OP_isempty','TWiki::If::OP_ingroup', 'TWiki::If::OP_isweb', 'TWiki::If::OP_context', 'TWiki::If::OP_dollar', 'TWiki::If::OP_istopic' ]; #---+ Large Site Settings #---++ Metadata repository (TWiki.MetadataRepository) # All of the following settings need to be defined to use the metadata repository. # The settings are visible if EXPERT mode is on. # **STRING 30 EXPERT** # The name of the tie-able Perl class. #
Example: DB_File $TWiki::cfg{Mdrepo}{Store} = ''; # **PATH EXPERT** # The path to the directory where the key-value store files are located. #
Example: /var/twiki/mdrepo $TWiki::cfg{Mdrepo}{Dir} = ''; # **PERL H** # Table names are to be listed. A table name may be followed by : and options. # Currently 'b' is the only recognized option, which means the table can be # updated from browser. $TWiki::cfg{Mdrepo}{Tables} = [qw(sites webs:b)]; # **STRING EXPERT** # Regular expression of valid record IDs $TWiki::cfg{Mdrepo}{RecordIDRe} = '\\w+'; # **STRING EXPERT** # Regular expression of valid field names $TWiki::cfg{Mdrepo}{FieldNameRe} = '\\w+'; # **BOOLEAN EXPERT** # If set, each web requires its metadata record in the 'webs' file. # This is desirable for web managemement for a large site. # %WEBLIST{...}% gets faster referring to web metadata instead of traversing # directories. $TWiki::cfg{Mdrepo}{WebRecordRequired} = $FALSE; #---++ Read-only and mirror webs (TWiki.ReadOnlyAndMirrorWebs) # **STRING 30 EXPERT** # If set, read-only and mirror web features are enabled. # This site is identified by this site name among the federation of sites. #
Example: new-york $TWiki::cfg{ReadOnlyAndMirrorWebs}{SiteName} = ''; # **STRING EXPERT** # On a slave web, some scripts always need to be executed on the master site. # Specify those scripts as a comma separated list. $TWiki::cfg{ReadOnlyAndMirrorWebs}{ScriptOnMaster} = 'edit, save, attach, upload, rename, manage'; #---++ Using Multiple Disks (TWiki.UsingMultipleDisks) # **BOOLEAN EXPERT** # If set, you can use multiple disks either by {DataDir1}, {PubDir1}, ... or # TWiki.MetadataRepository. $TWiki::cfg{MultipleDisks} = $FALSE; #---++ No "in all public webs" option # **BOOLEAN EXPERT** # If you have thousands of webs on a site, "in all public webs" operations # just times out. These operations can be disabled by setting this flag. $TWiki::cfg{NoInAllPublicWebs} = $FALSE; #---++ WEBLIST tuning # **REGEX EXPERT** # You may want to exclude some webs from the canmoveto web list. #
Example: ^$TWiki::cfg{TrashWebName}(x\d+x)?\d+$ $TWiki::cfg{WEBLIST}{canmovetoExclude} = qr//; # **REGEX EXPERT** # You may want to exclude some webs from the cancopyto web list #
Example: ^$TWiki::cfg{TrashWebName}(x\d+x)?\d*$ $TWiki::cfg{WEBLIST}{cancopytoExclude} = qr//; #---++ User subwebs # Please read TWiki.UserSubwebs for details # **BOOLEAN 50 EXPERT** # Whether or not to use user subwebs instead of user topics. # You can avoid a site is cluttered by personal top level webs by employing # user subwebs !Main/FirstLast.WebHome in place of user topics # !Main.FirstLast. $TWiki::cfg{UserSubwebs}{Enabled} = $FALSE; # **BOOLEAN 100 EXPERT** # You can have user subwebs ignore !Main.WebPeferences by setting this true. $TWiki::cfg{UserSubwebs}{IgnoreParentPrefs} = $FALSE; # **STRING EXPERT** # If you have your user subweb, your user preferences are read from # the topic specified by the following parameter in your user subweb. $TWiki::cfg{UserSubwebs}{UserPrefsTopicName} = 'WebHome'; #---+ Plugins # *PLUGINS* Marker used by bin/configure script - do not remove! # The plugins listed below were discovered by searching the @INC path for # modules that match the TWiki standard e.g. TWiki/Plugins/MyPlugin.pm. $TWiki::cfg{Plugins}{BackupRestorePlugin}{Enabled} = 1; $TWiki::cfg{Plugins}{ColorPickerPlugin}{Enabled} = 1; $TWiki::cfg{Plugins}{CommentPlugin}{Enabled} = 1; $TWiki::cfg{Plugins}{DatePickerPlugin}{Enabled} = 1; $TWiki::cfg{Plugins}{EditTablePlugin}{Enabled} = 1; $TWiki::cfg{Plugins}{EmptyPlugin}{Enabled} = 0; $TWiki::cfg{Plugins}{HeadlinesPlugin}{Enabled} = 1; $TWiki::cfg{Plugins}{InterwikiPlugin}{Enabled} = 1; $TWiki::cfg{Plugins}{JQueryPlugin}{Enabled} = 1; $TWiki::cfg{Plugins}{PreferencesPlugin}{Enabled} = 1; $TWiki::cfg{Plugins}{RenderListPlugin}{Enabled} = 0; $TWiki::cfg{Plugins}{SetGetPlugin}{Enabled} = 1; $TWiki::cfg{Plugins}{SlideShowPlugin}{Enabled} = 1; $TWiki::cfg{Plugins}{SmiliesPlugin}{Enabled} = 1; $TWiki::cfg{Plugins}{SpreadSheetPlugin}{Enabled} = 1; $TWiki::cfg{Plugins}{TablePlugin}{Enabled} = 1; $TWiki::cfg{Plugins}{TagMePlugin}{Enabled} = 1; $TWiki::cfg{Plugins}{TinyMCEPlugin}{Enabled} = 1; $TWiki::cfg{Plugins}{TWikiSheetPlugin}{Enabled} = 1; $TWiki::cfg{Plugins}{TwistyPlugin}{Enabled} = 1; $TWiki::cfg{Plugins}{WatchlistPlugin}{Enabled} = 1; $TWiki::cfg{Plugins}{WysiwygPlugin}{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. $TWiki::cfg{PluginsOrder} = 'SpreadSheetPlugin'; #---+ Extensions # *FINDEXTENSIONS* # **STRING 80 EXPERT** # Extensions Repositories Search List
# TWiki extension repositories are just TWiki webs that are organised in the # same way as the Plugins web on TWiki.org. The 'Find more extensions' link # above searches these repositories for installable extensions. To set up an # extensions repository: #

    #
  1. Create a TWiki web to contain the repository
  2. #
  3. Copy the FastReport page from TWiki:Plugins.FastReport to your new web
  4. #
  5. Copy the PackageForm page from TWiki:Plugins.PackageForm to your new web
  6. #
  7. Set the WEBFORMS variable in WebPreferences to PackageForm
  8. #
# The page for each extension must have the TWiki form PackageForm, # and should have the packaged extension attached as a zip and/or # tgz file. #

# This setting is a semicolon-separated list of repository specifications, each in the format: name=(listurl,puburl), # where: #

# For example, # twiki.org=(http://twiki.org/cgi-bin/view/Plugins/,http://twiki.org/p/pub/Plugins/); $TWiki::cfg{ExtensionsRepositories} = 'TWiki.org=(http://twiki.org/cgi-bin/view/Plugins/,http://twiki.org/p/pub/Plugins/)'; 1;