<?php
$cfg
=
array
();
$cfg
[
'allowed_scm'
] =
array
();
# Enter a long random string here that is unique
for
this installation.
# It is critical to put in a long string with at least 40 characters.
# You can
use
dd like this to gain some randomness:
# $ dd
if
=/dev/urandom bs=1
count
=64 2>/dev/null | base64 -w 0
$cfg
[
'secret_key'
] =
''
;
# ---------------------------------------------------------------------------- #
# Debug section #
# ---------------------------------------------------------------------------- #
# In debug mode Indefero renders stack traces in
case
of an error that
include
# more information about a specific problem. Since these stack traces often
# contain sensible data, this option MUST BE DEACTIVATED in production mode.
# (see
$cfg
[
'admins'
] below to learn how you can still be notified about
# problems without
'debug'
being enabled).
$cfg
[
'debug'
] = true;
# This is used to help generate the stats at the bottom of the page
# This can also be used to help debug DB issues
as
it will get passed
# to Pluf_DB_Stats_getConnection
as
the debug parameter
# If you set this to false then the query stats will not be shown
$cfg
[
'db_debug'
] = true;
# ---------------------------------------------------------------------------- #
# Path section #
# ---------------------------------------------------------------------------- #
# Temporary folder where the application is writing compiled templates,
# cached data
and
other temporary resources to.
# It must be writeable by your webserver instance.
$cfg
[
'tmp_folder'
] =
'/tmp'
;
# Path to the PEAR folder
$cfg
[
'pear_path'
] =
'/usr/share/php'
;
# Path to the upload folder
$cfg
[
'upload_path'
] =
'/home/www/indefero/www/media/upload'
;
# The following path MUST NOT be accessible through a web browser,
#
as
user will otherwise be able to upload executable files (*.php)
and
# this can create TERRIBLE security issues. In this folder, the attachments
# to the issues will be uploaded
and
we
do
not restrict the content type.
$cfg
[
'upload_issue_path'
] =
'/home/www/indefero/attachments'
;
# If your SCM binary is not accessible
for
the web user (
for
example, because
# it is not in the system PATH), you can enter the full path to it here.
$cfg
[
'svn_path'
] =
'svn'
;
$cfg
[
'svnlook_path'
] =
'svnlook'
;
$cfg
[
'svnadmin_path'
] =
'svnadmin'
;
$cfg
[
'hg_path'
] =
'hg'
;
$cfg
[
'git_path'
] =
'git'
;
$cfg
[
'mtn_path'
] =
'mtn'
;
# The monotone backend allow you to add extra options
for
the started monotone
# process; please keep the
default
if
unsure.
$cfg
[
'mtn_opts'
] =
array
(
'--no-workspace'
,
'--no-standard-rcfiles'
);
# ---------------------------------------------------------------------------- #
# URL section #
# ---------------------------------------------------------------------------- #
# Examples:
# You have:
# http:
# Put:
#
$cfg
[
'idf_base'
] =
'/myfolder/index.php'
;
#
# You have mod_rewrite:
# http:
# Put:
#
$cfg
[
'idf_base'
] =
'/index.php'
;
#
$cfg
[
'idf_base'
] =
''
;
# URL to access the media folder which is in the www folder
# of the distribution archive
# URL to access a folder in which the files you upload through
# the downloads tab will be stored.
# ---------------------------------------------------------------------------- #
# Internationalization section #
# ---------------------------------------------------------------------------- #
# Enter a valid time zone here to ensure that external timestamps, coming from
# the SCM
for
example, are translated into this time zone.
# A list of available time zones can be found at
# <http:
$cfg
[
'time_zone'
] =
'America/Chicago'
;
# Configure which languages should be available in your forge.
# If you want to enable an additional language, ensure that the
# language file in question resides in
'src/IDF/locale'
.
$cfg
[
'languages'
] =
array
(
'en'
,
'fr'
,
'de'
,
'es_ES'
,
'ru'
);
# ---------------------------------------------------------------------------- #
# Email section #
# ---------------------------------------------------------------------------- #
#
# Indefero uses the PEAR Mail
class
to send mails. Available mail backend are:
#
# - The PHP Mail built-in
function
(mail)
# - Sendmail (sendmail)
# - Simple Mail Transfer Protocol (smtp)
#
# Sendmail
and
SMTP need extra configuration, see the examples below.
#
# This is a general lock to enable
or
disable the mail sending process.
# True enables mail sending, false disables it.
$cfg
[
'send_emails'
] = true;
# The mail backend to
use
: mail, sendmail,
or
smtp
$cfg
[
'mail_backend'
] =
'mail'
;
# Mails sent by indefero will have thoses headers:
$cfg
[
'from_email'
] =
'email@mydomain.com'
;
$cfg
[
'bounce_email'
] =
' '
;
# The following persons will get an email in
case
of errors, i.e. when the
# system is in not in debug mode (see
$cfg
[
'debug'
] above).
$cfg
[
'admins'
] =
array
(
array
(
'Bob'
,
'bob@example.com'
),
);
##
## Example SMTP configuration
##
## The server to connect. Default is localhost
#
$cfg
[
'mail_host'
] =
'localhost'
;
## The port to connect. Default is 25
#
$cfg
[
'mail_port'
] = 25;
## The username to
use
for
SMTP authentication.
#
$cfg
[
'mail_username'
] =
''
;
## The password to
use
for
SMTP authentication.
#
$cfg
[
'mail_password'
] =
''
;
## The value to give when sending EHLO
or
HELO. Default is localhost
#
$cfg
[
'mail_localhost'
] =
'localhost'
;
## The SMTP connection timeout. Default is NULL (no timeout)
#
$cfg
[
'mail_timeout'
] = NULL;
## Whether to
use
VERP
or
not. Default is FALSE
#
$cfg
[
'mail_verp'
] = FALSE;
##
## Example sendmail configuration
##
## The location of the sendmail program on the filesystem.
## Default is /usr/bin/sendmail
#
$cfg
[
'mail_sendmail_path'
] =
'/usr/bin/sendmail'
;
## Additional parameters to pass to the sendmail. Default is -i
#
$cfg
[
'sendmail_args'
] =
'-i'
;
# ---------------------------------------------------------------------------- #
# Database section #
# ---------------------------------------------------------------------------- #
#
# WARNING: DO NOT USE SQLITE IN PRODUCTION
#
# This is not because of problems with the quality of the SQLite
# driver
or
with SQLite itself, but due to the lack of migration
# support in Pluf
for
SQLite. This means we cannot modify the DB
# easily once it is loaded with data.
#
# Enter one of the supported database engines: SQLite, MySQL,
or
PostgreSQL
$cfg
[
'db_engine'
] =
'MySQL'
;
# The database name
for
MySQL
and
PostgreSQL,
and
the absolute path
# to the database file
if
you are using SQLite.
$cfg
[
'db_database'
] =
'indefero'
;
# The database server to connect.
$cfg
[
'db_server'
] =
''
;
# Information about the database user.
$cfg
[
'db_login'
] =
'indefero'
;
$cfg
[
'db_password'
] =
''
;
# The version of your database server, only needed
for
MySQL
$cfg
[
'db_version'
] =
'5.1'
;
# A prefix
for
your table name; this can be useful
if
you plan to run
# multiple indefero installations on the same database instance.
$cfg
[
'db_table_prefix'
] =
'indefero_'
;
# ---------------------------------------------------------------------------- #
# Cache section #
# ---------------------------------------------------------------------------- #
# The cache is used to speed up the operations of most of the SCM commands.
#
# Indefero supports three methods to handle the cache,
and
you need to
# configure it with one of them:
#
# - Files (Pluf_Cache_File)
# - Alternative PHP Cache (Pluf_Cache_Apc)
# - Memcached (Pluf_Cache_Memcached)
#
# Both, APC
and
Memcached, need additional extensions to be compiled into
# your PHP installation, so the easiest is to
use
the file-based cache
#
for
an initial setup.
#
# For more information on APC, see <http:
# Memcached is documented at <http:
#
$cfg
[
'cache_engine'
] =
'Pluf_Cache_File'
;
$cfg
[
'cache_timeout'
] = 300;
$cfg
[
'cache_file_folder'
] =
$cfg
[
'tmp_folder'
].
'/cache'
;
#
$cfg
[
'cache_engine'
] =
'Pluf_Cache_Apc'
;
#
$cfg
[
'cache_timeout'
] = 300;
#
$cfg
[
'cache_apc_keyprefix'
] =
'uniqueforapp'
;
#
$cfg
[
'cache_apc_compress'
] = true;
#
$cfg
[
'cache_engine'
] =
'Pluf_Cache_Memcached'
;
#
$cfg
[
'cache_timeout'
] = 300;
#
$cfg
[
'cache_memcached_keyprefix'
] =
'uniqueforapp'
;
#
$cfg
[
'cache_memcached_server'
] =
'localhost'
;
#
$cfg
[
'cache_memcached_port'
] = 11211;
#
$cfg
[
'cache_memcached_compress'
] = MEMCACHE_COMPRESSED;
# ---------------------------------------------------------------------------- #
# Git SCM section #
# ---------------------------------------------------------------------------- #
#
# Read the file
'doc/syncgit.mdtext'
for
more information
#
# Uncomment this line to enable git support.
$cfg
[
'allowed_scm'
][
'git'
] =
'IDF_Scm_Git'
;
# The path to the git repositories.
'%s'
is replaced with the project name.
# Do not forget to give read access to these folders to your www user,
#
for
example by adding the www user to the git group.
$cfg
[
'git_repositories'
] =
'/home/git/repositories/%s.git'
;
# Git URL
for
public
access to a repository.
'%s'
is again replaced with
# the project name. See
'doc/syncgit.mdtext'
for
the git-daemon configuration.
# Git URL
for
private
/ write access to a repository. Again,
'%s'
is replaced
# with the name of the project. See
'doc/syncgit.mdtext'
for
more information
# about SSH authentification
# The
'core.quotepath'
option is configured on all
new
repositories created by
# indefero. This option disable characters to be escaped, when git commands run
# on an UTF-8 shell.
#
# - true: All characters above 0x80 will be escaped (
default
)
# - false: Characters are printed directly, which
for
example enables
# accented characters in an UTF-8 shell
#
# If you see malformed filenames in the source view,
try
to set this to false.
#
$cfg
[
'git_core_quotepath'
] = false;
# Path to the gitserve.py script
$cfg
[
'idf_plugin_syncgit_path_gitserve'
] =
'/home/www/indefero/scripts/gitserve.py'
;
# Path to the
'authorized_keys'
file of your git user
$cfg
[
'idf_plugin_syncgit_path_authorized_keys'
] =
'/home/git/.ssh/authorized_keys'
;
# Path to the temporary file
for
key synchronization
$cfg
[
'idf_plugin_syncgit_sync_file'
] =
'/tmp/SYNC-GIT'
;
# Path to the git home
$cfg
[
'idf_plugin_syncgit_git_home_dir'
] =
'/home/git'
;
# Path to the folder which contains all git repositories
$cfg
[
'idf_plugin_syncgit_base_repositories'
] =
'/home/git/repositories'
;
# Set a custom git-post-update script. Use this only,
if
you know you are doing!
#
$cfg
[
'idf_plugin_syncgit_post_update'
] =
'/my/script'
;
# Automatically
delete
git repositories of deleted projects
#
$cfg
[
'idf_plugin_syncgit_remove_orphans'
] = true;
# ---------------------------------------------------------------------------- #
# SVN SCM section #
# ---------------------------------------------------------------------------- #
#
# Read the file doc/syncsvn.mdtext
for
more information
#
# Uncomment this line to enable the SVN support.
$cfg
[
'allowed_scm'
][
'svn'
] =
'IDF_Scm_Svn'
;
# In
case
of subversion, you can either
use
a local
or
a remote repository.
# The forge admin can configure a remote repository directly from the
# web
interface
. Local repositories cannot be configured from there,
#
for
security reasons, but have to be defined here.
#
'%s'
is replaced with the project name.
# The HTTP URL to the local SVN repository.
# We add
'trunk'
to invite people to checkout the trunk of the project.
# Again,
'%s'
is replaced with the project name.
# Path to the authentification files
for
dav_svn
$cfg
[
'idf_plugin_syncsvn_authz_file'
] =
'/home/svn/dav_svn.authz'
;
$cfg
[
'idf_plugin_syncsvn_passwd_file'
] =
'/home/svn/dav_svn.passwd'
;
# Path to the folder which contains all SVN repositories
$cfg
[
'idf_plugin_syncsvn_svn_path'
] =
'/home/svn/repositories'
;
# You can customize permissions
for
each user group.
#
$cfg
[
'idf_plugin_syncsvn_access_owners'
] =
'rw'
;
#
$cfg
[
'idf_plugin_syncsvn_access_members'
] =
'rw'
;
#
$cfg
[
'idf_plugin_syncsvn_access_extra'
] =
'r'
;
#
$cfg
[
'idf_plugin_syncsvn_access_public'
] =
'r'
;
#
$cfg
[
'idf_plugin_syncsvn_access_private'
] =
''
;
# Automatically
delete
local SVN repositories of deleted projects
#
$cfg
[
'idf_plugin_syncsvn_remove_orphans'
] = true;
# ---------------------------------------------------------------------------- #
# Mercurial SCM section #
# ---------------------------------------------------------------------------- #
#
# Read the file doc/syncmercurial.mdtext
for
more information
#
# Uncomment this line to enable the Mercurial support.
$cfg
[
'allowed_scm'
][
'mercurial'
] =
'IDF_Scm_Mercurial'
;
# The path to mercurial repositories.
'%s'
is replaced with the project name.
$cfg
[
'mercurial_repositories'
] =
'/home/mercurial/repositories/%s'
;
$cfg
[
'idf_plugin_syncmercurial_hgrc'
] =
array
(
'web'
=>
array
(
'push_ssl'
=>
'true'
,
'allow_push'
=>
''
,
'description'
=>
''
,
'allow_archive'
=>
'bz2, zip, gz'
,
'style'
=>
'gitweb'
,
'contact'
=>
''
),
'hooks'
=>
array
(),
'extensions'
=>
array
(),
);
# Based on the paths provided in the Apache configuration,
# you need to setup the following lines.
$cfg
[
'idf_plugin_syncmercurial_passwd_file'
] =
'/home/mercurial/.htpasswd'
;
$cfg
[
'idf_plugin_syncmercurial_path'
] =
'/home/mercurial/repositories'
;
$cfg
[
'idf_plugin_syncmercurial_private_notify'
] =
'/home/mercurial/tmp/notify.tmp'
;
$cfg
[
'idf_plugin_syncmercurial_private_url'
] =
'/hg/%s'
;
# Authentification file
for
private
repositories
$cfg
[
'idf_plugin_syncmercurial_private_include'
] =
'/home/www/indefero/scripts/private_indefero.conf'
;
# Password storage type (see
'doc/syncmercurial.mdtext'
)
#
$cfg
[
'idf_plugin_syncmercurial_passwd_mode'
] =
'sha'
;
# ---------------------------------------------------------------------------- #
# Monotone SCM section #
# ---------------------------------------------------------------------------- #
#
# Read the file doc/syncmonotone.mdtext
for
more information
#
# Uncomment this line to enable the monotone support.
#
$cfg
[
'allowed_scm'
][
'mtn'
] =
'IDF_Scm_Monotone'
;
# The path to a specific database (local
use
)
or
a writable project
# directory (remote / usher
use
).
'%s'
is replaced with the project name.
$cfg
[
'mtn_repositories'
] =
'/home/mtn/repositories/%s.mtn'
;
# The URL which is displayed
as
sync URL to the user
and
which is also
# used to connect to a remote usher.
# Whether the particular database(s) are accessed locally (via automate stdio)
#
or
remotely (via automate remote_stdio).
'remote'
is the
default
for
#
use
with usher
and
the SyncMonotone plugin,
while
'local'
access should be
# choosed
for
manual setups
and
/
or
ssh access.
$cfg
[
'mtn_db_access'
] =
'local'
;
# Needs to be configured
for
remote / usher usage.
# This allows basic control of a running usher process via the forge
# administration. The variable must point to the full (writable)
# path of the usher configuration file which gets updated when
new
projects
# are added.
#
$cfg
[
'mtn_usher_conf'
] =
'/var/lib/usher/usher.conf'
;
# Full path to the directory tree which contains
default
configuration files
# that are automatically created
for
new
projects. This is only needed
#
if
$cfg
[
'mtn_db_access'
] is set to remote, i.e. in
case
the SyncMonotone
# plugin should be used. If unset, it defaults to the tree underknees
# src/IDF/Plugin/SyncMonotone/. Don't forget the trailing slash!
#
$cfg
[
'mtn_confdir'
] =
'/path/to/dir/tree/'
;
# Additional configuration files you want to create /
copy
for
new
setups.
# All these file paths have to be relative to
$cfg
[
'mtn_confdir'
].
#
$cfg
[
'mtn_confdir_extra'
] =
array
(
'hooks.d/something.lua'
)
# ---------------------------------------------------------------------------- #
# Hacker section (
for
advanced users) #
# ---------------------------------------------------------------------------- #
$cfg
[
'installed_apps'
] =
array
(
'Pluf'
,
'IDF'
);
$cfg
[
'pluf_use_rowpermission'
] = true;
$cfg
[
'middleware_classes'
] =
array
(
'Pluf_Middleware_Csrf'
,
'Pluf_Middleware_Session'
,
'Pluf_Middleware_Stats'
,
'IDF_Middleware'
,
'Pluf_Middleware_Translation'
,
);
$cfg
[
'template_context_processors'
] =
array
(
'IDF_Middleware_ContextPreProcessor'
);
$cfg
[
'idf_views'
] = dirname(
__FILE__
).
'/urls.php'
;
# If you want to customize some of the template files, you must tell the
# template system where it can find your updated files by adding the particular
# folder to the following
array
.
$cfg
[
'template_folders'
] =
array
(
dirname(
__FILE__
).
'/../templates'
,
);
# You can customize the URL redirection after a login
or
logout action.
$cfg
[
'login_success_url'
] =
$cfg
[
'url_base'
].
$cfg
[
'idf_base'
];
$cfg
[
'after_logout_page'
] =
$cfg
[
'url_base'
].
$cfg
[
'idf_base'
];
# Set to true
if
uploaded
public
keys should not only be validated
# syntactically, but also by a specific backend. For SSH
public
# keys, ssh-keygen(3) must be available
and
usable in the system PATH,
#
for
monotone
public
keys, the monotone binary (
as
configured above)
# is used.
$cfg
[
'idf_strong_key_check'
] = false;
# If you want to
use
another mime types database, enter its path here.
#
$cfg
[
'idf_mimetypes_db'
] =
'/etc/mime.types'
;
# Extentions of additional text files that should be displayed inline.
#
$cfg
[
'idf_extra_text_ext'
] =
'ext1 ext2 ext3'
;
# If you can execute the needed shell commands to query information from your
# SCM, but the same shell commands
do
not work from within the indefero
# instance, this can be due to the environment variables not being set
# correctly. ATTENTION: Do not forget the trailing space!
#
$cfg
[
'idf_exec_cmd_prefix'
] =
'/usr/bin/env -i '
;
# If you
do
not want to let indefero calculate the sizes of repositories,
# attachments,
or
downloads, set this to true. (You can temporarily set this
# to false in
case
you want to quickly check some size, of course.)
#
$cfg
[
'idf_no_size_check'
] = false;
# The file extensions
for
file uploads (issues
and
downloads view) are limited.
# You can allow additional extensions here.
#
$cfg
[
'idf_extra_upload_ext'
] =
'ext1 ext2'
;
# By
default
, the size of a single file upload is limited to 2MB.
# The php.ini upload_max_filesize
and
post_max_size configuration setting will
# always have precedence.
#
$cfg
[
'max_upload_size'
] = 2097152;
# If a download archive is uploaded, the size of the archive is limited to 20MB.
# The php.ini upload_max_filesize
and
post_max_size configuration setting will
# always have precedence.
#
$cfg
[
'max_upload_archive_size'
] = 20971520;
# Older versions of Indefero submitted a POST request to a configured
# post-commit web hook when
new
revisions arrived, whereas a PUT request
# would have been more appropriate. Also, the payload's HMAC digest was
# submitted
as
value of the HTTP header
'Post-Commit-Hook-Hmac'
during
# such a request. Since newer versions of Indefero
use
the same authentication
# mechanism (based on the same secret key)
for
other web hooks of the same
# project
as
well, the name of this HTTP header was no longer appropriate
#
and
as
such changed to simply
'Web-Hook-Hmac'
.
#
# Setting the following configuration option to
'compat'
now restores the
# old behaviour in both cases. Please notice however that this compatibility
# option is likely to go away in the next major version of Indefero, so you
# should really change the other
end
of your web hooks!
$cfg
[
'webhook_processing'
] =
'compat'
;
# If IDF recalculates the activity index of the forge's projects, it does so
# by looking at the created
and
updated items in a particular tab / section
#
for
each project.
#
# You can now edit the weights that are applied to the calculation
for
each
# section in order to give other things more precendence. For example,
if
you
#
do
not
use
the documentation part to a great extent in most of your projects,
# you can weight this section lower
and
get an overall better activity value.
#
# If a section is removed, then activity in this section is neglected during
# the calculation. The same is true in
case
a section is disabled in the
# project administration.
$cfg
[
'activity_section_weights'
] =
array
(
'source'
=> 4,
'issues'
=> 2,
'wiki'
=> 2,
'downloads'
=> 2,
'review'
=> 1,
);
# Here you can define the timespan in days how long the activity calculation
# process should look into the history to get meaningful activity values
for
# each project.
#
# If you have many low-profile projects in your forge, i.e. projects that only
# record very little activity, then it might be a good idea to bump this value
# high enough to show a proper activity index
for
those projects
as
well.
$cfg
[
'activity_lookback'
] = 7;
return
$cfg
;