<?php
/* -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
# ***** BEGIN LICENSE BLOCK *****
# This file is part of InDefero, an open source project management application.
# Copyright (C) 2008 Céondo Ltd and contributors.
#
# InDefero is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# InDefero is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
#
# ***** END LICENSE BLOCK ***** */

$cfg = array();
$cfg['allowed_scm'] = array();

# Write here a long random string unique for this installation. This
# is critical to put a long string, with at least 40 characters.
# You can use the output of
# dd if=/dev/urandom bs=1 count=64 2>/dev/null | base64 -w 0
$cfg['secret_key'] = '';

#
# Debug section
#

# You must set them to false once everything is running ok.
# It will help you catch errors at beginning when configuring your
# forge and SCM backend.
#
# It must be turned off in production.
$cfg['debug'] = true;
$cfg['debug_scm'] = false;





#
# Path section
#

# Temporary folder where the script is writing the compiled templates,
# cached data and other temporary resources.
# 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 be able to upload .html, .php files 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';





#
# URL section
#
# Examples:
# You have:
#   http://www.mydomain.com/myfolder/index.php
# Put:
#   $cfg['idf_base'] = '/myfolder/index.php';
#   $cfg['url_base'] = 'http://www.mydomain.com';
#
# You have mod_rewrite:
#   http://www.mydomain.com/
# Put:
#   $cfg['idf_base'] = '';
#   $cfg['url_base'] = 'http://www.mydomain.com';
#
#
#
$cfg['idf_base'] = '/index.php';
$cfg['url_base'] = 'http://localhost';

# Url to access the media folder which is in the www folder
# of the archive
$cfg['url_media'] = 'http://localhost/media';

# Url to access a folder in which the files you upload through
# the downloads tab will be stored.
$cfg['url_upload'] = 'http://localhost/media/upload';





#
# Internationalization section
#

# 'time_zone' must be a valid timezone, you can find a list of them at the url:
# http://www.php.net/manual/en/timezones.php
$cfg['time_zone'] = 'Europe/Berlin';

# 'languages' is an array of available languages in your forge
# If you want to enable extra language,
# add your language files in 'src/IDF/locale' before
$cfg['languages'] = array('en', 'fr', 'de', 'es_ES');





#
# Email section
# Indefero use 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 example below
#

# 'send_emails' is a general lock to enable/disable, the mail sending process
# - true : Enable mail to be send
# - flase : Disable it
$cfg['send_emails'] = false;

# The baackend to use: mail, sendmail, smtp
$cfg['mail_backend'] = 'mail';

# Mails send by indefero will have thoses headers:
$cfg['from_email'] = 'sender@example.com';
$cfg['bounce_email'] = 'no-reply@example.com';

# 'admins' will get an email in case of errors
# when the system is in non debug mode.
$cfg['admins'] = array(array('You', 'you@example.com'),
                       array('Bob', 'bob@example.com'),
                       );
                       
## Example of 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 of 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
#
# ** DO NOT USE SQLITE IN PRODUCTION **
# This is not because of problems with the quality of the SQLite
# driver or with SQLite itself, this is 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.
#

# 'db_engine' must be one of available database engine: SQLite, MySQL, PostgreSQL
$cfg['db_engine'] = 'PostgreSQL';

# 'db_database' is the database name for MySQL and PostgreSQL,
# and the absolute path to the db if you are using SQLite.
$cfg['db_database'] = 'website';

# The database server to connect.
$cfg['db_server'] = 'localhost';

# Information about the database user.
$cfg['db_login'] = 'foo';
$cfg['db_password'] = 'bar';

# The version of your database server, only needed for MySQL
# $cfg['db_version'] = '5.1';

# A prefix for your table name
# It's can be useful if you run multiple installation in the same database
$cfg['db_table_prefix'] = 'indefero_';





#
# Cache section
# The cache is use to speed up operation on most of scm commands.
#
# Indefero support 3 methods to handle the cache, and you need to one of them:
# - Files (Pluf_Cache_File)
# - Alternative PHP Cache (Pluf_Cache_Apc)
# - Memcached (Pluf_Cache_Memcached)
#
# APC and Memcached need extra installation to run,
# so It's easier to use Files in a first time.
# @see http://www.php.net/manual/en/book.apc.php
# @see http://www.php.net/manual/en/book.memcached.php
#
$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;





#
# Binary section
#
# You tell indefero to use a specific version of some binary,
# instead of use thoses find in the system PATH.
# 
# Monotone backend allow you to add extra options for the started monotone process
#
$cfg['svn_path'] = 'svn';
$cfg['svnlook_path'] = 'svnlook';
$cfg['svnadmin_path'] = 'svnadmin';
$cfg['hg_path'] = 'hg';
$cfg['git_path'] = 'git';
$cfg['mtn_path'] = 'mtn';
$cfg['mtn_opts'] = array('--no-workspace', '--no-standard-rcfiles');





#
# GIT Scm section
# Read the file doc/syncgit.mdtext for more information
#

# Uncomment this line to enable the GIT support
# $cfg['allowed_scm']['git'] = 'IDF_Scm_Git';

# The path to 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, adding www to the git group.
$cfg['git_repositories'] = '/home/git/repositories/%s.git/';

# Git url for public access to a repositorie.
# %s is replaced with the project name
# @see doc/syncgit.mdtext for the git-daemon configuration
$cfg['git_remote_url'] = 'git://137.121.75.54/%s.git';

# Git url for private/write access to a repositorie.
# %s is replaced with the project name
# @see doc/syncgit.mdtext for the SSH authentification
$cfg['git_write_remote_url'] = 'git@137.121.75.54:%s.git';

# The core.quotepath is configured on all new repository created by indefero
# This option disable characters to be escaped,
#  when git commands run on a UTF-8 shell
# - true: All characters upper than 0x80 will be escape (default)
# - false: Characters is print directly,
#          enable accented character in a UTF-8 shell
# If you see malformed filename in the source viewer,
# try to uncomment the next line
# $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 of your git user
$cfg['idf_plugin_syncgit_path_authorized_keys'] = '/home/git/.ssh/authorized_keys';

# Path to the tmp file for keys synch
$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 it only, if you know you are doing !
# $cfg['idf_plugin_syncgit_post_update'] = '/my/script';

# Automatic delete git repositorie of deleted project
# $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 the case of subversion, the admin of a project can also select a
# remote repository from the web interface. From the web interface
# you can define a local repository, local repositories are defined
# here. This if for security reasons.
$cfg['svn_repositories'] = 'file:///home/svn/repositories/%s';

# The HTTP URL to the svn repositorie
# We add "trunk" to invite people to checkout the trunk of the project.
$cfg['svn_remote_url'] = 'http://localhost/svn/%s/trunk';

# Path to authenfication 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 custom permissions access 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'] = '';

# Automatic delete svn repositorie of deleted project
# $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['mercurial_remote_url'] = 'http://example.com/hg/%s';

$cfg['idf_plugin_syncmercurial_hgrc'] = array(
    'web' => array('push_ssl' => 'false',
                 '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/auth/.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/mercurial/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
$cfg['mtn_remote_url'] = 'mtn://example.com/%s';

# 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
# Reserved to avanced user
#
$cfg['installed_apps'] = array('Pluf', 'IDF');

$cfg['pluf_use_rowpermission'] = true;

$cfg['middleware_classes'] = array(
         'Pluf_Middleware_Csrf',
         'Pluf_Middleware_Session',
         'IDF_Middleware',
         'Pluf_Middleware_Translation',
         );
         
$cfg['template_context_processors'] = array('IDF_Middleware_ContextPreProcessor');

$cfg['idf_views'] = dirname(__FILE__).'/urls.php';

# If you want custom some template files,
# you must tell to the template system where search your updated files by
# adding this folder in the 'template_folders' array.
$cfg['template_folders'] = array(/* '/your/folder', */
                                 dirname(__FILE__).'/../templates',
                                 );
                                 
# You can custom the URL redirection, after a login/logout
$cfg['login_success_url'] = $cfg['url_base'].$cfg['idf_base'];
$cfg['after_logout_page'] = $cfg['url_base'].$cfg['idf_base'];

# Set to true when uploaded public keys should not only be validated
# syntactically, but also by the specific backend. For SSH public
# keys, ssh-keygen(3) must be available and usable in 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 memtypes database
# $cfg['idf_mimetypes_db'] = '/etc/mime.types';

# Extra text files when displaying source
# $cfg['idf_extra_text_ext'] = 'ext1 ext2 ext3';

# If you can execute the shell commands executed to get info
# from the scm  with the user of your PHP process but it is
# not working from within PHP, this can be due to the environment
# variables not being set correctly. Note the trailing space.
# $cfg['idf_exec_cmd_prefix'] = '/usr/bin/env -i ';

# If you do not want to have calculations of the repositories, attachments
# and downloads size, set it to true. You can set to false some
# times to times to check the size.
# $cfg['idf_no_size_check'] = false;

# The extension of the downloads are limited. You can add extra
# extensions here.
# $cfg['idf_extra_upload_ext'] = 'ext1 ext2';

# By default, the size of the downloads 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; // Size in bytes

return $cfg;
