2009-09-25 03:25:30 +01:00
< ? php
/**
* StatusNet , the distributed open - source microblogging tool
*
* Default settings for core configuration
*
* PHP version 5
*
* LICENCE : This program is free software : you can redistribute it and / or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation , either version 3 of the License , or
* ( at your option ) any later version .
*
* This program 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 Affero General Public License for more details .
*
* You should have received a copy of the GNU Affero General Public License
* along with this program . If not , see < http :// www . gnu . org / licenses />.
*
* @ category Config
2013-10-19 13:35:04 +01:00
* @ package GNUsocial
2009-09-25 03:25:30 +01:00
* @ author Evan Prodromou < evan @ status . net >
* @ copyright 2008 - 9 StatusNet , Inc .
* @ license http :// www . fsf . org / licensing / licenses / agpl - 3.0 . html GNU Affero General Public License version 3.0
2013-10-19 13:35:04 +01:00
* @ link http :// www . gnu . org / software / social /
2009-09-25 03:25:30 +01:00
*/
$default =
2011-04-21 19:19:51 +01:00
array ( 'site' =>
2013-10-19 13:35:04 +01:00
array ( 'name' => 'Just another GNU social node' ,
'nickname' => 'gnusocial' ,
2010-01-24 23:19:13 +00:00
'wildcard' => null ,
2009-09-25 03:25:30 +01:00
'server' => $_server ,
2011-03-07 20:00:43 +00:00
'theme' => 'neo' ,
2009-09-25 03:25:30 +01:00
'path' => $_path ,
'logfile' => null ,
'logo' => null ,
2010-10-14 19:56:38 +01:00
'ssllogo' => null ,
2009-09-25 03:25:30 +01:00
'logdebug' => false ,
2011-01-31 21:12:56 +00:00
'logperf' => false , // Enable to dump performance counters to syslog
'logperf_detail' => false , // Enable to dump every counter hit
2009-09-25 03:25:30 +01:00
'fancy' => false ,
'locale_path' => INSTALLDIR . '/locale' ,
2010-03-03 20:08:07 +00:00
'language' => 'en' ,
'langdetect' => true ,
2009-09-25 03:25:30 +01:00
'languages' => get_all_languages (),
'email' =>
array_key_exists ( 'SERVER_ADMIN' , $_SERVER ) ? $_SERVER [ 'SERVER_ADMIN' ] : null ,
'broughtby' => null ,
'timezone' => 'UTC' ,
'broughtbyurl' => null ,
'closed' => false ,
2011-04-11 22:06:20 +01:00
'inviteonly' => true ,
2011-04-05 18:30:05 +01:00
'private' => true ,
2009-09-25 03:25:30 +01:00
'ssl' => 'never' ,
'sslserver' => null ,
2010-03-03 22:32:14 +00:00
'dupelimit' => 60 , // default for same person saying the same thing
2011-08-03 17:50:12 +01:00
'textlimit' => 0 , // in chars; 0 == no limit
2009-12-05 06:03:04 +00:00
'indent' => true ,
2010-03-03 22:32:14 +00:00
'use_x_sendfile' => false ,
2010-12-06 22:05:32 +00:00
'notice' => null , // site wide notice text
'build' => 1 , // build number, for code-dependent cache
2013-09-14 12:41:49 +01:00
'minify' => false , // true to use the minified versions of JS files; false to use orig files. Can aid during development
2009-09-25 03:25:30 +01:00
),
'db' =>
2011-12-03 16:45:56 +00:00
array ( 'database' => null , // must be set
2009-09-25 03:25:30 +01:00
'schema_location' => INSTALLDIR . '/classes' ,
'class_location' => INSTALLDIR . '/classes' ,
'require_prefix' => 'classes/' ,
'class_prefix' => '' ,
'mirror' => null ,
'utf8' => true ,
'db_driver' => 'DB' , # XXX: JanRain libs only work with DB
'quote_identifiers' => false ,
2009-10-01 20:11:12 +01:00
'type' => 'mysql' ,
2010-01-21 19:07:52 +00:00
'schemacheck' => 'runtime' , // 'runtime' or 'script'
2010-03-29 20:57:16 +01:00
'annotate_queries' => false , // true to add caller comments to queries, eg /* POST Notice::saveNew */
2010-01-21 19:07:52 +00:00
'log_queries' => false , // true to log all DB queries
2010-10-19 20:11:49 +01:00
'log_slow_queries' => 0 , // if set, log queries taking over N seconds
'mysql_foreign_keys' => false ), // if set, enables experimental foreign key support on MySQL
2009-09-25 03:25:30 +01:00
'syslog' =>
array ( 'appname' => 'statusnet' , # for syslog
'priority' => 'debug' , # XXX: currently ignored
'facility' => LOG_USER ),
'queue' =>
array ( 'enabled' => false ,
'subsystem' => 'db' , # default to database, or 'stomp'
'stomp_server' => null ,
2009-12-08 17:57:37 +00:00
'queue_basename' => '/queue/statusnet/' ,
2010-02-16 17:01:59 +00:00
'control_channel' => '/topic/statusnet/control' , // broadcasts to all queue daemons
2009-09-25 03:25:30 +01:00
'stomp_username' => null ,
'stomp_password' => null ,
2010-01-28 17:52:35 +00:00
'stomp_persistent' => true , // keep items across queue server restart, if persistence is enabled
2010-03-29 23:46:41 +01:00
'stomp_transactions' => true , // use STOMP transactions to aid in detecting failures (supported by ActiveMQ, but not by all)
'stomp_acks' => true , // send acknowledgements after successful processing (supported by ActiveMQ, but not by all)
2010-01-29 00:49:32 +00:00
'stomp_manual_failover' => true , // if multiple servers are listed, treat them as separate (enqueue on one randomly, listen on all)
2010-01-13 03:57:15 +00:00
'monitor' => null , // URL to monitor ping endpoint (work in progress)
'softlimit' => '90%' , // total size or % of memory_limit at which to restart queue threads gracefully
2010-02-09 20:39:31 +00:00
'spawndelay' => 1 , // Wait at least N seconds between (re)spawns of child processes to avoid slamming the queue server with subscription startup
2010-01-22 00:42:50 +00:00
'debug_memory' => false , // true to spit memory usage to log
2010-01-28 02:39:17 +00:00
'inboxes' => true , // true to do inbox distribution & output queueing from in background via 'distrib' queue
2010-02-18 00:49:00 +00:00
'breakout' => array (), // List queue specifiers to break out when using Stomp queue.
// Default will share all queues for all sites within each group.
// Specify as <group>/<queue> or <group>/<queue>/<site>,
// using nickname identifier as site.
//
// 'main/distrib' separate "distrib" queue covering all sites
// 'xmpp/xmppout/mysite' separate "xmppout" queue covering just 'mysite'
2010-02-16 17:01:59 +00:00
'max_retries' => 10 , // drop messages after N failed attempts to process (Stomp)
'dead_letter_dir' => false , // set to directory to save dropped messages into (Stomp)
2009-09-25 03:25:30 +01:00
),
'license' =>
2010-01-19 05:04:58 +00:00
array ( 'type' => 'cc' , # can be 'cc', 'allrightsreserved', 'private'
'owner' => null , # can be name of content owner e.g. for enterprise
'url' => 'http://creativecommons.org/licenses/by/3.0/' ,
2009-09-25 03:25:30 +01:00
'title' => 'Creative Commons Attribution 3.0' ,
'image' => 'http://i.creativecommons.org/l/by/3.0/80x15.png' ),
'mail' =>
array ( 'backend' => 'mail' ,
2009-10-26 14:31:12 +00:00
'params' => null ,
'domain_check' => true ),
2009-09-25 03:25:30 +01:00
'nickname' =>
array ( 'blacklist' => array (),
'featured' => array ()),
'profile' =>
array ( 'banned' => array (),
2010-12-13 21:28:02 +00:00
'biolimit' => null ,
'backup' => true ,
'restore' => true ,
2010-12-22 19:25:47 +00:00
'delete' => false ,
2010-12-13 21:28:02 +00:00
'move' => true ),
2013-10-01 10:37:59 +01:00
'image' =>
array ( 'jpegquality' => 85 ),
2009-09-25 03:25:30 +01:00
'avatar' =>
array ( 'server' => null ,
'dir' => INSTALLDIR . '/avatar/' ,
2010-02-11 21:51:15 +00:00
'path' => $_path . '/avatar/' ,
2013-10-01 10:37:59 +01:00
'ssl' => null ,
'maxsize' => 300 ),
2009-09-25 03:25:30 +01:00
'background' =>
array ( 'server' => null ,
'dir' => INSTALLDIR . '/background/' ,
2010-02-11 22:03:31 +00:00
'path' => $_path . '/background/' ,
'ssl' => null ),
2009-09-25 03:25:30 +01:00
'public' =>
array ( 'localonly' => true ,
'blacklist' => array (),
'autosource' => array ()),
'theme' =>
array ( 'server' => null ,
'dir' => null ,
2010-02-11 21:42:58 +00:00
'path' => null ,
2010-02-11 21:48:15 +00:00
'ssl' => null ),
2013-10-06 19:28:07 +01:00
'usertheme' =>
array ( 'linkcolor' => 'black' ,
'backgroundcolor' => 'black' ),
2010-04-21 16:16:42 +01:00
'theme_upload' =>
array ( 'enabled' => extension_loaded ( 'zip' )),
2010-01-27 16:37:22 +00:00
'javascript' =>
array ( 'server' => null ,
2010-02-11 21:59:39 +00:00
'path' => null ,
2011-03-17 15:31:43 +00:00
'ssl' => null ,
'bustframes' => true ),
2010-04-21 16:16:42 +01:00
'local' => // To override path/server for themes in 'local' dir (not currently applied to local plugins)
array ( 'server' => null ,
'dir' => null ,
'path' => null ,
'ssl' => null ),
2009-09-25 03:25:30 +01:00
'throttle' =>
array ( 'enabled' => false , // whether to throttle edits; false by default
'count' => 20 , // number of allowed messages in timespan
'timespan' => 600 ), // timespan for throttling
'invite' =>
array ( 'enabled' => true ),
'tag' =>
2010-02-04 19:06:01 +00:00
array ( 'dropoff' => 864000.0 , # controls weighting based on age
'cutoff' => 86400 * 90 ), # only look at notices posted in last 90 days
2009-09-25 03:25:30 +01:00
'popular' =>
2010-02-04 19:06:01 +00:00
array ( 'dropoff' => 864000.0 , # controls weighting based on age
'cutoff' => 86400 * 90 ), # only look at notices favorited in last 90 days
2009-09-25 03:25:30 +01:00
'daemon' =>
array ( 'piddir' => '/var/run' ,
'user' => false ,
'group' => false ),
'emailpost' =>
2011-04-14 21:24:56 +01:00
array ( 'enabled' => false ),
2009-09-25 03:25:30 +01:00
'sms' =>
2011-04-14 21:24:56 +01:00
array ( 'enabled' => false ),
2009-10-17 01:32:02 +01:00
'twitterimport' =>
2009-09-25 03:25:30 +01:00
array ( 'enabled' => false ),
'integration' =>
array ( 'source' => 'StatusNet' , # source attribute for Twitter
2010-02-20 18:23:08 +00:00
'taguri' => null ), # base for tag URIs
2009-10-22 03:41:23 +01:00
'twitter' =>
2010-03-02 05:52:31 +00:00
array ( 'signin' => true ,
2010-03-02 05:34:50 +00:00
'consumer_key' => null ,
2009-10-22 03:41:23 +01:00
'consumer_secret' => null ),
2010-01-03 07:16:59 +00:00
'cache' =>
array ( 'base' => null ),
2009-10-22 03:41:23 +01:00
'ping' =>
2010-05-05 02:43:32 +01:00
array ( 'notify' => array (),
'timeout' => 2 ),
2009-09-25 03:25:30 +01:00
'inboxes' =>
2009-10-13 22:38:27 +01:00
array ( 'enabled' => true ), # ignored after 0.9.x
2009-09-25 03:25:30 +01:00
'newuser' =>
array ( 'default' => null ,
'welcome' => null ),
'snapshot' =>
2009-11-14 16:38:10 +00:00
array ( 'run' => 'web' ,
2009-09-25 03:25:30 +01:00
'frequency' => 10000 ,
'reporturl' => 'http://status.net/stats/report' ),
'attachments' =>
array ( 'server' => null ,
'dir' => INSTALLDIR . '/file/' ,
'path' => $_path . '/file/' ,
2010-10-14 19:22:17 +01:00
'sslserver' => null ,
'sslpath' => null ,
2010-02-11 22:06:57 +00:00
'ssl' => null ,
2009-09-25 03:25:30 +01:00
'supported' => array ( 'image/png' ,
'image/jpeg' ,
'image/gif' ,
'image/svg+xml' ,
'audio/mpeg' ,
'audio/x-speex' ,
'application/ogg' ,
'application/pdf' ,
'application/vnd.oasis.opendocument.text' ,
'application/vnd.oasis.opendocument.text-template' ,
'application/vnd.oasis.opendocument.graphics' ,
'application/vnd.oasis.opendocument.graphics-template' ,
'application/vnd.oasis.opendocument.presentation' ,
'application/vnd.oasis.opendocument.presentation-template' ,
'application/vnd.oasis.opendocument.spreadsheet' ,
'application/vnd.oasis.opendocument.spreadsheet-template' ,
'application/vnd.oasis.opendocument.chart' ,
'application/vnd.oasis.opendocument.chart-template' ,
'application/vnd.oasis.opendocument.image' ,
'application/vnd.oasis.opendocument.image-template' ,
'application/vnd.oasis.opendocument.formula' ,
'application/vnd.oasis.opendocument.formula-template' ,
'application/vnd.oasis.opendocument.text-master' ,
'application/vnd.oasis.opendocument.text-web' ,
'application/x-zip' ,
'application/zip' ,
'text/plain' ,
'video/mpeg' ,
'video/mp4' ,
'video/quicktime' ,
'video/mpeg' ),
2009-10-22 03:41:23 +01:00
'file_quota' => 5000000 ,
'user_quota' => 50000000 ,
'monthly_quota' => 15000000 ,
'uploads' => true ,
'filecommand' => '/usr/bin/file' ,
2010-11-12 20:24:55 +00:00
'show_thumbs' => true , // show thumbnails in notice lists for uploaded images, and photos and videos linked remotely that provide oEmbed info
2010-11-09 01:36:02 +00:00
'thumb_width' => 100 ,
'thumb_height' => 75 ,
2010-11-17 21:03:59 +00:00
'process_links' => true , // check linked resources for embeddable photos and videos; this will hit referenced external web sites when processing new messages.
2009-10-22 03:41:23 +01:00
),
2009-11-17 00:58:49 +00:00
'application' =>
array ( 'desclimit' => null ),
2009-09-25 03:25:30 +01:00
'group' =>
array ( 'maxaliases' => 3 ,
2011-04-20 21:19:07 +01:00
'desclimit' => null ,
'addtag' => false ),
2011-03-06 18:03:39 +00:00
'peopletag' =>
array ( 'maxtags' => 100 , // maximum number of tags a user can create.
'maxpeople' => 500 , // maximum no. of people with the same tag by the same user
'allow_tagging' => array ( 'all' => true ), // equivalent to array('local' => true, 'remote' => true)
'desclimit' => null ),
2011-04-10 18:59:55 +01:00
'oembed' =>
2011-09-30 20:51:23 +01:00
array ( 'endpoint' => 'https://noembed.com/embed/' ,
2011-04-06 22:57:33 +01:00
'order' => array ( 'built-in' , 'well-known' , 'service' , 'discovery' ),
),
2009-09-25 03:25:30 +01:00
'search' =>
2011-04-12 00:00:25 +01:00
array ( 'type' => 'like' ),
2009-09-25 03:25:30 +01:00
'sessions' =>
2011-01-27 20:07:29 +00:00
array ( 'handle' => false , // whether to handle sessions ourselves
'debug' => false , // debugging output for sessions
'gc_limit' => 1000 ), // max sessions to expire at a time
2009-09-25 03:25:30 +01:00
'notice' =>
2011-03-26 19:49:46 +00:00
array ( 'contentlimit' => null ,
2012-03-21 14:17:11 +00:00
'defaultscope' => null , // null means 1 if site/private, 0 otherwise
'hidespam' => false ), // Whether to hide silenced users from timelines
2009-09-25 03:25:30 +01:00
'message' =>
array ( 'contentlimit' => null ),
2009-09-16 16:46:10 +01:00
'location' =>
2009-12-28 22:43:34 +00:00
array ( 'share' => 'user' , // whether to share location; 'always', 'user', 'never'
2013-08-12 13:40:55 +01:00
'sharedefault' => false ),
2009-12-14 23:09:30 +00:00
'logincommand' =>
array ( 'disabled' => true ),
2010-01-08 00:13:36 +00:00
'plugins' =>
2013-10-19 13:35:04 +01:00
array ( 'core' => array (
2013-11-19 12:50:49 +00:00
'AuthCrypt' => array (),
Cron plugin added and now default queue handler
Generally the Cron plugin will run if there's still execution time for
1 second since starting the Action processing. If you want to change
this (such as disabling, 0 seconds, or maybe running bigger chunks,
for like 4 seconds) you can do this, where 'n' is time in seconds.
addPlugin('Cron', array('secs_per_action', n));
Add 'rel_to_pageload'=>false to the array if you want to run the queue
for a certain amount of seconds _despite_ maybe already having run that
long in the previous parts of Action processing.
Perhaps you want to run the cron script remotely, using a machine capable
of background processing (or locally, to avoid running daemon processes),
simply do an HTTP GET request to the route /main/cron of your GNU social.
Setting secs_per_action to 0 in the plugin config will imply that you run
all your queue handling by calling /main/cron (which runs as long as it can).
/main/cron will output "0" if it has finished processing, "1" if it should
be called again to complete processing (because it ran out of time due to
PHP's max_execution_time INI setting).
The Cron plugin also runs events as close to hourly, daily and weekly
as you get, based on the opportunistic method of running whenever a user
visits the site. This means of course that the cron events should be as
fast as possible, not only to avoid delaying page load for users but
also to minimize the risk of running into PHP's max_execution_time. One
suggestion is to only use the events to add new queue items for later processing.
These events are called CronHourly, CronDaily, CronWeekly - however there
is no guarantee that all events will execute, so some kind of failsafe,
transaction-ish method must be implemented in the future.
2013-11-19 13:13:33 +00:00
'Cron' => array (),
2013-11-19 12:50:49 +00:00
'LRDD' => array (),
'StrictTransportSecurity' => array (),
2013-10-19 13:35:04 +01:00
),
'default' => array (
2013-11-18 19:43:00 +00:00
'Activity' => array (),
'Bookmark' => array (),
'ClientSideShorten' => array (),
'Event' => array (),
'OpenID' => array (),
'Poll' => array (),
'QnA' => array (),
'SearchSub' => array (),
'TagSub' => array (),
2013-10-19 13:35:04 +01:00
),
2010-10-01 03:18:46 +01:00
'locale_path' => false , // Set to a path to use *instead of* each plugin's own locale subdirectories
2011-02-03 15:36:25 +00:00
'server' => null ,
'sslserver' => null ,
'path' => null ,
2011-02-11 20:58:47 +00:00
'sslpath' => null ,
2010-01-08 09:00:29 +00:00
),
2010-03-16 21:18:37 +00:00
'pluginlist' => array (),
2010-01-08 09:00:29 +00:00
'admin' =>
2011-06-09 21:20:19 +01:00
array ( 'panels' => array ( 'site' , 'user' , 'paths' , 'access' , 'sessions' , 'sitenotice' , 'license' , 'plugins' )),
2010-01-26 05:21:05 +00:00
'singleuser' =>
array ( 'enabled' => false ,
'nickname' => null ),
2010-01-31 15:12:26 +00:00
'robotstxt' =>
array ( 'crawldelay' => 0 ,
'disallow' => array ( 'main' , 'settings' , 'admin' , 'search' , 'message' )
),
2010-03-08 17:36:03 +00:00
'api' =>
array ( 'realm' => null ),
2010-04-05 15:24:22 +01:00
'nofollow' =>
array ( 'subscribers' => true ,
'members' => true ,
2010-10-18 16:29:52 +01:00
'peopletag' => true ,
2010-10-18 16:41:18 +01:00
'external' => 'sometimes' ), // Options: 'sometimes', 'never', default = 'sometimes'
2010-04-26 07:40:36 +01:00
'url' =>
2013-09-19 00:11:47 +01:00
array ( 'shortener' => 'internal' ,
2013-10-06 21:35:26 +01:00
'maxurllength' => 100 ,
2010-06-10 23:37:06 +01:00
'maxnoticelength' => - 1 ),
2010-05-21 18:12:39 +01:00
'http' => // HTTP client settings when contacting other sites
2010-08-06 18:14:07 +01:00
array ( 'ssl_cafile' => false , // To enable SSL cert validation, point to a CA bundle (eg '/usr/lib/ssl/certs/ca-certificates.crt')
'curl' => false , // Use CURL backend for HTTP fetches if available. (If not, PHP's socket streams will be used.)
2011-01-03 18:38:32 +00:00
'proxy_host' => null ,
'proxy_port' => null ,
'proxy_user' => null ,
'proxy_password' => null ,
'proxy_auth_scheme' => null ,
2010-05-21 18:12:39 +01:00
),
2011-04-21 19:19:51 +01:00
'router' =>
array ( 'cache' => true ), // whether to cache the router object. Defaults to true, turn off for devel
2011-07-08 01:19:59 +01:00
'discovery' =>
2011-09-20 03:01:13 +01:00
array ( 'cors' => false ), // Allow Cross-Origin Resource Sharing for service discovery (host-meta, XRD, etc.)
2011-09-30 20:51:23 +01:00
'performance' => array ( 'high' => false ) // disable some features for higher performance; default false
2011-04-21 19:19:51 +01:00
);