diff --git a/src/IDF/conf/idf.php-dist b/src/IDF/conf/idf.php-dist index 8df9acc..b237b51 100644 --- a/src/IDF/conf/idf.php-dist +++ b/src/IDF/conf/idf.php-dist @@ -22,117 +22,50 @@ # ***** 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; -# It will help you catch errors at beginning when configuring your -# SCM backend. It must be turned off in production. $cfg['debug_scm'] = false; -# -# Note: By default, InDefero will not manage the repositories for -# you, you can enable the repositories management with the -# built-in plugins. The documentation of the plugins is available -# in the `doc/` folder. -# -# If you have a single git repository, just put the full path to it -# without trailing slash. The path is the path to the git database, -# so you need to include the /.git folder. -# For example: '/path/to/my/project/.git' -# -# If you have multiple repositories, you need to put %s where you -# want the shortname of the project to be replaced. -# For example: -# - You have many projects on your local computer and want to use -# InDefero to see them. Put: '/home/yourlogin/Projects/%s/.git' -# - You have many projects on a remote server with only "bare" git -# repositories. Put: '/home/git/repositories/%s.git' # -# ** 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'; +# Path section # -# Like for the git_repositories definition, the path can contains %s -# and it will be automatically replaced. You can ignore this -# configuration variable as it is only for information use in the -# tree view. -# -$cfg['git_remote_url'] = 'git://localhost/%s.git'; -$cfg['git_write_remote_url'] = 'git@localhost:%s.git'; - -# Same as for git, you can have multiple repositories, one for each -# project or a single one for all the projects. -# -# 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'; -$cfg['svn_remote_url'] = 'http://localhost/svn/%s'; - -# -# You can setup monotone for use with indefero in several ways. -# Please look into doc/syncmonotone.mdtext for more information. -# - -# Path to the monotone binary -$cfg['mtn_path'] = 'mtn'; - -# Additional options for the started monotone process -$cfg['mtn_opts'] = array('--no-workspace', '--no-standard-rcfiles'); - -# 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://my-host.biz/%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'; - -# 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') - -# 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'] = '/path/to/usher.conf'; +# 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'; -# Mercurial repositories path -$cfg['mercurial_repositories'] = '/home/mercurial/repositories/%s'; -#$cfg['mercurial_remote_url'] = 'http://projects.ceondo.com/hg/%s'; +# Path to the PEAR folder +$cfg['pear_path'] = '/usr/share/php'; -# admins will get an email in case of errors in the system in non -# debug mode. -$cfg['admins'] = array( - array('Admin', 'you@example.com'), - ); +# Path to the upload folder +$cfg['upload_path'] = '/home/www/indefero/www/media/upload'; -# Email configuration -$cfg['send_emails'] = true; -$cfg['mail_backend'] = 'smtp'; -$cfg['mail_host'] = 'localhost'; -$cfg['mail_port'] = 25; +# 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'; -# Paths/Url configuration. +# +# URL section # # Examples: # You have: @@ -159,114 +92,343 @@ $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'; -# 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. +# Internationalization section # -$cfg['upload_issue_path'] = '/home/www/indefero/attachments'; + +# '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'); + # -# write here a long random string unique for this installation. This -# is critical to put a long string, with at least 40 characters. -$cfg['secret_key'] = ''; +# 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 +# -# the sender of all the emails. -$cfg['from_email'] = 'sender@example.com'; +# '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'; -# Email address for the bounced messages. +# Mails send by indefero will have thoses headers: +$cfg['from_email'] = 'sender@example.com'; $cfg['bounce_email'] = 'no-reply@example.com'; -# Temporary folder where the script is writing the compiled templates, -# cached data and other temporary resources. -# It must be writeable by your webserver instance. -# It is mandatory if you are using the template system. -$cfg['tmp_folder'] = '/tmp'; +# '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 +#$cfg['mail_host'] = 'localhost'; # The server to connect. Default is localhost +#$cfg['mail_port'] = 25; # The port to connect. Default is 25 +#$cfg['mail_username'] = ''; # The username to use for SMTP authentication. +#$cfg['mail_password'] = ''; # The password to use for SMTP authentication. +#$cfg['mail_localhost'] = 'localhost'; # The value to give when sending EHLO or HELO. Default is localhost +#$cfg['mail_timeout'] = NULL; # The SMTP connection timeout. Default is NULL (no timeout) +#$cfg['mail_verp'] = FALSE; # Whether to use VERP or not. Default is FALSE -# Database configuration -$cfg['db_login'] = 'www'; -$cfg['db_password'] = ''; -$cfg['db_server'] = ''; -$cfg['db_version'] = '5.1'; # Only needed for MySQL -# If you want to have different installations with the same DB -$cfg['db_table_prefix'] = 'indefero_'; +## Example of sendmail configuration +#$cfg['mail_sendmail_path'] = '/usr/bin/sendmail'; # The location of the sendmail program on the filesystem. Default is /usr/bin/sendmail +#$cfg['sendmail_args'] = '-i'; # Additional parameters to pass to the sendmail. Default is -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. -$cfg['db_engine'] = 'PostgreSQL'; # SQLite is also well tested or MySQL -$cfg['db_database'] = 'website'; # put absolute path to the db if you - # are using SQLite. -# -# 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 configuration setting will -# always have precedence. -# $cfg['max_upload_size'] = 2097152; // Size in bytes -# -# Time zone -# http://www.php.net/manual/en/timezones.php -# -# $cfg['time_zone'] = 'Europe/Berlin'; +# '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'; -$cfg['pear_path'] = '/usr/share/php'; +# 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_'; -$cfg['login_success_url'] = $cfg['url_base'].$cfg['idf_base']; -$cfg['after_logout_page'] = $cfg['url_base'].$cfg['idf_base']; -# Caching of the scm commands. +# +# 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'; -# The folder in which the templates of the application are located. -$cfg['template_folders'] = array( - dirname(__FILE__).'/../templates', - ); +#$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 compatible 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'; -# available languages -$cfg['languages'] = array('en', 'fr', 'de', 'es_ES'); +$cfg['idf_views'] = dirname(__FILE__).'/urls.php'; -# SCM base configuration -$cfg['allowed_scm'] = array('git' => 'IDF_Scm_Git', - 'svn' => 'IDF_Scm_Svn', - 'mercurial' => 'IDF_Scm_Mercurial', - 'mtn' => 'IDF_Scm_Monotone', - ); - -# Specific git config -# The core.quotepath is configured on new repository -# True -> All characters upper than 0x80 will be escape (default) -# False -> Characters is print directly, enable accented character in a UTF-8 shell -# $cfg['git_core_quotepath'] = false; +# 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; +$cfg['idf_strong_key_check'] = false; # If you want to use another memtypes database # $cfg['idf_mimetypes_db'] = '/etc/mime.types'; @@ -280,21 +442,18 @@ $cfg['allowed_scm'] = array('git' => 'IDF_Scm_Git', # variables not being set correctly. Note the trailing space. # $cfg['idf_exec_cmd_prefix'] = '/usr/bin/env -i '; -# Path to the SCM binaries. These binaries are not necessarily in -# the path of your webserver or fastcgi process. In that case you -# may need to set the path manually here. This is the case with OSX. -# To know which path you need to provide, just run: -# $ which git -# from the command line. This will give you the path to git. -# $cfg['svn_path'] = 'svn'; -# $cfg['svnlook_path'] = 'svnlook'; -# $cfg['svnadmin_path'] = 'svnadmin'; -# $cfg['hg_path'] = 'hg'; -# $cfg['git_path'] = 'git'; - # 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;