| 1 |
------ |
| 2 |
README |
| 3 |
------ |
| 4 |
|
| 5 |
StatusNet 0.9.5 "What's The Frequency, Kenneth?" |
| 6 |
10 September 2010 |
| 7 |
|
| 8 |
This is the README file for StatusNet, the Open Source microblogging |
| 9 |
platform. It includes installation instructions, descriptions of |
| 10 |
options you can set, warnings, tips, and general info for |
| 11 |
administrators. Information on using StatusNet can be found in the |
| 12 |
"doc" subdirectory or in the "help" section on-line. |
| 13 |
|
| 14 |
About |
| 15 |
===== |
| 16 |
|
| 17 |
StatusNet is a Free and Open Source microblogging platform. It helps |
| 18 |
people in a community, company or group to exchange short (140 |
| 19 |
characters, by default) messages over the Web. Users can choose which |
| 20 |
people to "follow" and receive only their friends' or colleagues' |
| 21 |
status messages. It provides a similar service to sites like Twitter, |
| 22 |
Google Buzz, or Yammer. |
| 23 |
|
| 24 |
With a little work, status messages can be sent to mobile phones, |
| 25 |
instant messenger programs (GTalk/Jabber), and specially-designed |
| 26 |
desktop clients that support the Twitter API. |
| 27 |
|
| 28 |
StatusNet supports an open standard called OStatus |
| 29 |
<http://ostatus.org/> that lets users in different networks follow |
| 30 |
each other. It enables a distributed social network spread all across |
| 31 |
the Web. |
| 32 |
|
| 33 |
StatusNet was originally developed for the Open Software Service, |
| 34 |
Identi.ca <http://identi.ca/>. It is shared with you in hope that you |
| 35 |
too make an Open Software Service available to your users. To learn |
| 36 |
more, please see the Open Software Service Definition 1.1: |
| 37 |
|
| 38 |
http://www.opendefinition.org/ossd |
| 39 |
|
| 40 |
StatusNet, Inc. <http://status.net/> also offers this software as a |
| 41 |
Web service, requiring no installation on your part. See |
| 42 |
<http://status.net/signup> for details. The software run |
| 43 |
on status.net is identical to the software available for download, so |
| 44 |
you can move back and forth between a hosted version or a version |
| 45 |
installed on your own servers. |
| 46 |
|
| 47 |
A commercial software subscription is available from StatusNet Inc. It |
| 48 |
includes 24-hour technical support and developer support. More |
| 49 |
information at http://status.net/contact or email sales@status.net. |
| 50 |
|
| 51 |
License |
| 52 |
======= |
| 53 |
|
| 54 |
This program is free software: you can redistribute it and/or modify |
| 55 |
it under the terms of the GNU Affero General Public License as |
| 56 |
published by the Free Software Foundation, either version 3 of the |
| 57 |
License, or (at your option) any later version. |
| 58 |
|
| 59 |
This program is distributed in the hope that it will be useful, but |
| 60 |
WITHOUT ANY WARRANTY; without even the implied warranty of |
| 61 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| 62 |
Affero General Public License for more details. |
| 63 |
|
| 64 |
You should have received a copy of the GNU Affero General Public |
| 65 |
License along with this program, in the file "COPYING". If not, see |
| 66 |
<http://www.gnu.org/licenses/>. |
| 67 |
|
| 68 |
IMPORTANT NOTE: The GNU Affero General Public License (AGPL) has |
| 69 |
*different requirements* from the "regular" GPL. In particular, if |
| 70 |
you make modifications to the StatusNet source code on your server, |
| 71 |
you *MUST MAKE AVAILABLE* the modified version of the source code |
| 72 |
to your users under the same license. This is a legal requirement |
| 73 |
of using the software, and if you do not wish to share your |
| 74 |
modifications, *YOU MAY NOT INSTALL STATUSNET*. |
| 75 |
|
| 76 |
Documentation in the /doc-src/ directory is available under the |
| 77 |
Creative Commons Attribution 3.0 Unported license, with attribution to |
| 78 |
"StatusNet". See http://creativecommons.org/licenses/by/3.0/ for details. |
| 79 |
|
| 80 |
CSS and images in the /theme/ directory are available under the |
| 81 |
Creative Commons Attribution 3.0 Unported license, with attribution to |
| 82 |
"StatusNet". See http://creativecommons.org/licenses/by/3.0/ for details. |
| 83 |
|
| 84 |
Our understanding and intention is that if you add your own theme that |
| 85 |
uses only CSS and images, those files are not subject to the copyleft |
| 86 |
requirements of the Affero General Public License 3.0. See |
| 87 |
http://wordpress.org/news/2009/07/themes-are-gpl-too/ . This is not |
| 88 |
legal advice; consult your lawyer. |
| 89 |
|
| 90 |
Additional library software has been made available in the 'extlib' |
| 91 |
directory. All of it is Free Software and can be distributed under |
| 92 |
liberal terms, but those terms may differ in detail from the AGPL's |
| 93 |
particulars. See each package's license file in the extlib directory |
| 94 |
for additional terms. |
| 95 |
|
| 96 |
New this version |
| 97 |
================ |
| 98 |
|
| 99 |
This is a security, bug and feature release since version 0.9.4 released on |
| 100 |
16 August 2010. |
| 101 |
|
| 102 |
For best compatibility with client software and site federation, and a lot of |
| 103 |
bug fixes, it is highly recommended that all public sites upgrade to the new |
| 104 |
version. |
| 105 |
|
| 106 |
Notable changes this version: |
| 107 |
|
| 108 |
- Change of license for default themes and documentation from |
| 109 |
AGPLv3 to CC-By 3.0 Unported. |
| 110 |
- An experimental TinyMCE plugin to do in-browser rich editing of |
| 111 |
status updates. Does not support StatusNet syntax like @-replies or |
| 112 |
#hashtags very well. |
| 113 |
- An experimental plugin to add titles to notices. |
| 114 |
- A plugin to support the Echo <http://aboutecho.com/> commenting |
| 115 |
system. |
| 116 |
- A plugin to support the Disqus <http://disqus.com/> commenting system. |
| 117 |
- Changes to OStatus support to make StatusNet work for the Social Web |
| 118 |
Acid Test Level 0 <http://federatedsocialweb.net/wiki/SWAT0>. |
| 119 |
- Themes now support a theme.ini file for theme configuration, including |
| 120 |
defining a "base" theme. |
| 121 |
- Improved two-way Twitter integration, including support for |
| 122 |
repeats and retweets, replies, and faves going both ways across the |
| 123 |
bridge, as well as better parsing of Twitter statuses. |
| 124 |
|
| 125 |
A full changelog is available at http://status.net/wiki/StatusNet_0.9.5. |
| 126 |
|
| 127 |
Prerequisites |
| 128 |
============= |
| 129 |
|
| 130 |
The following software packages are *required* for this software to |
| 131 |
run correctly. |
| 132 |
|
| 133 |
- PHP 5.2.3+. It may be possible to run this software on earlier |
| 134 |
versions of PHP, but many of the functions used are only available |
| 135 |
in PHP 5.2 or above. 5.2.6 or later is needed for XMPP background |
| 136 |
daemons on 64-bit platforms. PHP 5.3.x should work correctly in this |
| 137 |
release, but problems with some plugins are possible. |
| 138 |
- MySQL 5.x. The StatusNet database is stored, by default, in a MySQL |
| 139 |
server. It has been primarily tested on 5.x servers, although it may |
| 140 |
be possible to install on earlier (or later!) versions. The server |
| 141 |
*must* support the MyISAM storage engine -- the default for most |
| 142 |
MySQL servers -- *and* the InnoDB storage engine. |
| 143 |
- A Web server. Preferably, you should have Apache 2.2.x with the |
| 144 |
mod_rewrite extension installed and enabled. |
| 145 |
|
| 146 |
Your PHP installation must include the following PHP extensions: |
| 147 |
|
| 148 |
- Curl. This is for fetching files by HTTP. |
| 149 |
- XMLWriter. This is for formatting XML and HTML output. |
| 150 |
- MySQL. For accessing the database. |
| 151 |
- GD. For scaling down avatar images. |
| 152 |
- mbstring. For handling Unicode (UTF-8) encoded strings. |
| 153 |
|
| 154 |
For some functionality, you will also need the following extensions: |
| 155 |
|
| 156 |
- Memcache. A client for the memcached server, which caches database |
| 157 |
information in volatile memory. This is important for adequate |
| 158 |
performance on high-traffic sites. You will also need a memcached |
| 159 |
server to store the data in. |
| 160 |
- Mailparse. Efficient parsing of email requires this extension. |
| 161 |
Submission by email or SMS-over-email uses this extension. |
| 162 |
- Sphinx Search. A client for the sphinx server, an alternative |
| 163 |
to MySQL or Postgresql fulltext search. You will also need a |
| 164 |
Sphinx server to serve the search queries. |
| 165 |
- bcmath or gmp. For Salmon signatures (part of OStatus). Needed |
| 166 |
if you have OStatus configured. |
| 167 |
- gettext. For multiple languages. Default on many PHP installs; |
| 168 |
will be emulated if not present. |
| 169 |
|
| 170 |
You will almost definitely get 2-3 times better performance from your |
| 171 |
site if you install a PHP bytecode cache/accelerator. Some well-known |
| 172 |
examples are: eaccelerator, Turck mmcache, xcache, apc. Zend Optimizer |
| 173 |
is a proprietary accelerator installed on some hosting sites. |
| 174 |
|
| 175 |
External libraries |
| 176 |
------------------ |
| 177 |
|
| 178 |
A number of external PHP libraries are used to provide basic |
| 179 |
functionality and optional functionality for your system. For your |
| 180 |
convenience, they are available in the "extlib" directory of this |
| 181 |
package, and you do not have to download and install them. However, |
| 182 |
you may want to keep them up-to-date with the latest upstream version, |
| 183 |
and the URLs are listed here for your convenience. |
| 184 |
|
| 185 |
- DB_DataObject http://pear.php.net/package/DB_DataObject |
| 186 |
- Validate http://pear.php.net/package/Validate |
| 187 |
- OpenID from OpenIDEnabled (not the PEAR version!). We decided |
| 188 |
to use the openidenabled.com version since it's more widely |
| 189 |
implemented, and seems to be better supported. |
| 190 |
http://openidenabled.com/php-openid/ |
| 191 |
- PEAR DB. Although this is an older data access system (new |
| 192 |
packages should probably use PHP DBO), the OpenID libraries |
| 193 |
depend on PEAR DB so we use it here, too. DB_DataObject can |
| 194 |
also use PEAR MDB2, which may give you better performance |
| 195 |
but won't work with OpenID. |
| 196 |
http://pear.php.net/package/DB |
| 197 |
- OAuth.php from http://oauth.googlecode.com/svn/code/php/ |
| 198 |
- markdown.php from http://michelf.com/projects/php-markdown/ |
| 199 |
- PEAR Mail, for sending out mail notifications |
| 200 |
http://pear.php.net/package/Mail |
| 201 |
- PEAR Net_SMTP, if you use the SMTP factory for notifications |
| 202 |
http://pear.php.net/package/Net_SMTP |
| 203 |
- PEAR Net_Socket, if you use the SMTP factory for notifications |
| 204 |
http://pear.php.net/package/Net_Socket |
| 205 |
- XMPPHP, the follow-up to Class.Jabber.php. Probably the best XMPP |
| 206 |
library available for PHP. http://xmpphp.googlecode.com/. Note that |
| 207 |
as of this writing the version of this library that is available in |
| 208 |
the extlib directory is *significantly different* from the upstream |
| 209 |
version (patches have been submitted). Upgrading to the upstream |
| 210 |
version may render your StatusNet site unable to send or receive XMPP |
| 211 |
messages. |
| 212 |
- Facebook library. Used for the Facebook application. |
| 213 |
- PEAR Services_oEmbed. Used for some multimedia integration. |
| 214 |
- PEAR HTTP_Request is an oEmbed dependency. |
| 215 |
- PEAR Validate is an oEmbed dependency. |
| 216 |
- PEAR Net_URL2 is an oEmbed dependency. |
| 217 |
- Console_GetOpt for parsing command-line options. |
| 218 |
- libomb. a library for implementing OpenMicroBlogging 0.1, the |
| 219 |
predecessor to OStatus. |
| 220 |
- HTTP_Request2, a library for making HTTP requests. |
| 221 |
|
| 222 |
A design goal of StatusNet is that the basic Web functionality should |
| 223 |
work on even the most restrictive commercial hosting services. |
| 224 |
However, additional functionality, such as receiving messages by |
| 225 |
Jabber/GTalk, require that you be able to run long-running processes |
| 226 |
on your account. In addition, posting by email or from SMS require |
| 227 |
that you be able to install a mail filter in your mail server. |
| 228 |
|
| 229 |
Installation |
| 230 |
============ |
| 231 |
|
| 232 |
Installing the basic StatusNet Web component is relatively easy, |
| 233 |
especially if you've previously installed PHP/MySQL packages. |
| 234 |
|
| 235 |
1. Unpack the tarball you downloaded on your Web server. Usually a |
| 236 |
command like this will work: |
| 237 |
|
| 238 |
tar zxf statusnet-0.9.5.tar.gz |
| 239 |
|
| 240 |
...which will make a statusnet-0.9.5 subdirectory in your current |
| 241 |
directory. (If you don't have shell access on your Web server, you |
| 242 |
may have to unpack the tarball on your local computer and FTP the |
| 243 |
files to the server.) |
| 244 |
|
| 245 |
2. Move the tarball to a directory of your choosing in your Web root |
| 246 |
directory. Usually something like this will work: |
| 247 |
|
| 248 |
mv statusnet-0.9.5 /var/www/statusnet |
| 249 |
|
| 250 |
This will make your StatusNet instance available in the statusnet path of |
| 251 |
your server, like "http://example.net/statusnet". "microblog" or |
| 252 |
"statusnet" might also be good path names. If you know how to |
| 253 |
configure virtual hosts on your web server, you can try setting up |
| 254 |
"http://micro.example.net/" or the like. |
| 255 |
|
| 256 |
3. Make your target directory writeable by the Web server. |
| 257 |
|
| 258 |
chmod a+w /var/www/statusnet/ |
| 259 |
|
| 260 |
On some systems, this will probably work: |
| 261 |
|
| 262 |
chgrp www-data /var/www/statusnet/ |
| 263 |
chmod g+w /var/www/statusnet/ |
| 264 |
|
| 265 |
If your Web server runs as another user besides "www-data", try |
| 266 |
that user's default group instead. As a last resort, you can create |
| 267 |
a new group like "statusnet" and add the Web server's user to the group. |
| 268 |
|
| 269 |
4. You should also take this moment to make your avatar, background, and |
| 270 |
file subdirectories writeable by the Web server. An insecure way to do |
| 271 |
this is: |
| 272 |
|
| 273 |
chmod a+w /var/www/statusnet/avatar |
| 274 |
chmod a+w /var/www/statusnet/background |
| 275 |
chmod a+w /var/www/statusnet/file |
| 276 |
|
| 277 |
You can also make the avatar, background, and file directories |
| 278 |
writeable by the Web server group, as noted above. |
| 279 |
|
| 280 |
5. Create a database to hold your microblog data. Something like this |
| 281 |
should work: |
| 282 |
|
| 283 |
mysqladmin -u "username" --password="password" create statusnet |
| 284 |
|
| 285 |
Note that StatusNet must have its own database; you can't share the |
| 286 |
database with another program. You can name it whatever you want, |
| 287 |
though. |
| 288 |
|
| 289 |
(If you don't have shell access to your server, you may need to use |
| 290 |
a tool like PHPAdmin to create a database. Check your hosting |
| 291 |
service's documentation for how to create a new MySQL database.) |
| 292 |
|
| 293 |
6. Create a new database account that StatusNet will use to access the |
| 294 |
database. If you have shell access, this will probably work from the |
| 295 |
MySQL shell: |
| 296 |
|
| 297 |
GRANT ALL on statusnet.* |
| 298 |
TO 'statusnetuser'@'localhost' |
| 299 |
IDENTIFIED BY 'statusnetpassword'; |
| 300 |
|
| 301 |
You should change 'statusnetuser' and 'statusnetpassword' to your preferred new |
| 302 |
username and password. You may want to test logging in to MySQL as |
| 303 |
this new user. |
| 304 |
|
| 305 |
7. In a browser, navigate to the StatusNet install script; something like: |
| 306 |
|
| 307 |
http://yourserver.example.com/statusnet/install.php |
| 308 |
|
| 309 |
Enter the database connection information and your site name. The |
| 310 |
install program will configure your site and install the initial, |
| 311 |
almost-empty database. |
| 312 |
|
| 313 |
8. You should now be able to navigate to your microblog's main directory |
| 314 |
and see the "Public Timeline", which will be empty. If not, magic |
| 315 |
has happened! You can now register a new user, post some notices, |
| 316 |
edit your profile, etc. However, you may want to wait to do that stuff |
| 317 |
if you think you can set up "fancy URLs" (see below), since some |
| 318 |
URLs are stored in the database. |
| 319 |
|
| 320 |
Fancy URLs |
| 321 |
---------- |
| 322 |
|
| 323 |
By default, StatusNet will use URLs that include the main PHP program's |
| 324 |
name in them. For example, a user's home profile might be |
| 325 |
found at: |
| 326 |
|
| 327 |
http://example.org/statusnet/index.php/statusnet/fred |
| 328 |
|
| 329 |
On certain systems that don't support this kind of syntax, they'll |
| 330 |
look like this: |
| 331 |
|
| 332 |
http://example.org/statusnet/index.php?p=statusnet/fred |
| 333 |
|
| 334 |
It's possible to configure the software so it looks like this instead: |
| 335 |
|
| 336 |
http://example.org/statusnet/fred |
| 337 |
|
| 338 |
These "fancy URLs" are more readable and memorable for users. To use |
| 339 |
fancy URLs, you must either have Apache 2.x with .htaccess enabled and |
| 340 |
mod_rewrite enabled, -OR- know how to configure "url redirection" in |
| 341 |
your server. |
| 342 |
|
| 343 |
1. Copy the htaccess.sample file to .htaccess in your StatusNet |
| 344 |
directory. Note: if you have control of your server's httpd.conf or |
| 345 |
similar configuration files, it can greatly improve performance to |
| 346 |
import the .htaccess file into your conf file instead. If you're |
| 347 |
not sure how to do it, you may save yourself a lot of headache by |
| 348 |
just leaving the .htaccess file. |
| 349 |
|
| 350 |
2. Change the "RewriteBase" in the new .htaccess file to be the URL path |
| 351 |
to your StatusNet installation on your server. Typically this will |
| 352 |
be the path to your StatusNet directory relative to your Web root. |
| 353 |
|
| 354 |
3. Add or uncomment or change a line in your config.php file so it says: |
| 355 |
|
| 356 |
$config['site']['fancy'] = true; |
| 357 |
|
| 358 |
You should now be able to navigate to a "fancy" URL on your server, |
| 359 |
like: |
| 360 |
|
| 361 |
http://example.net/statusnet/main/register |
| 362 |
|
| 363 |
If you changed your HTTP server configuration, you may need to restart |
| 364 |
the server first. |
| 365 |
|
| 366 |
If it doesn't work, double-check that AllowOverride for the StatusNet |
| 367 |
directory is 'All' in your Apache configuration file. This is usually |
| 368 |
/etc/httpd.conf, /etc/apache/httpd.conf, or (on Debian and Ubuntu) |
| 369 |
/etc/apache2/sites-available/default. See the Apache documentation for |
| 370 |
.htaccess files for more details: |
| 371 |
|
| 372 |
http://httpd.apache.org/docs/2.2/howto/htaccess.html |
| 373 |
|
| 374 |
Also, check that mod_rewrite is installed and enabled: |
| 375 |
|
| 376 |
http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html |
| 377 |
|
| 378 |
Sphinx |
| 379 |
------ |
| 380 |
|
| 381 |
To use a Sphinx server to search users and notices, you'll need to |
| 382 |
enable the SphinxSearch plugin. Add to your config.php: |
| 383 |
|
| 384 |
addPlugin('SphinxSearch'); |
| 385 |
$config['sphinx']['server'] = 'searchhost.local'; |
| 386 |
|
| 387 |
You also need to install, compile and enable the sphinx pecl extension for |
| 388 |
php on the client side, which itself depends on the sphinx development files. |
| 389 |
|
| 390 |
See plugins/SphinxSearch/README for more details and server setup. |
| 391 |
|
| 392 |
SMS |
| 393 |
--- |
| 394 |
|
| 395 |
StatusNet supports a cheap-and-dirty system for sending update messages |
| 396 |
to mobile phones and for receiving updates from the mobile. Instead of |
| 397 |
sending through the SMS network itself, which is costly and requires |
| 398 |
buy-in from the wireless carriers, it simply piggybacks on the email |
| 399 |
gateways that many carriers provide to their customers. So, SMS |
| 400 |
configuration is essentially email configuration. |
| 401 |
|
| 402 |
Each user sends to a made-up email address, which they keep a secret. |
| 403 |
Incoming email that is "From" the user's SMS email address, and "To" |
| 404 |
the users' secret email address on the site's domain, will be |
| 405 |
converted to a notice and stored in the DB. |
| 406 |
|
| 407 |
For this to work, there *must* be a domain or sub-domain for which all |
| 408 |
(or most) incoming email can pass through the incoming mail filter. |
| 409 |
|
| 410 |
1. Run the SQL script carrier.sql in your StatusNet database. This will |
| 411 |
usually work: |
| 412 |
|
| 413 |
mysql -u "statusnetuser" --password="statusnetpassword" statusnet < db/carrier.sql |
| 414 |
|
| 415 |
This will populate your database with a list of wireless carriers |
| 416 |
that support email SMS gateways. |
| 417 |
|
| 418 |
2. Make sure the maildaemon.php file is executable: |
| 419 |
|
| 420 |
chmod +x scripts/maildaemon.php |
| 421 |
|
| 422 |
Note that "daemon" is kind of a misnomer here; the script is more |
| 423 |
of a filter than a daemon. |
| 424 |
|
| 425 |
2. Edit /etc/aliases on your mail server and add the following line: |
| 426 |
|
| 427 |
*: /path/to/statusnet/scripts/maildaemon.php |
| 428 |
|
| 429 |
3. Run whatever code you need to to update your aliases database. For |
| 430 |
many mail servers (Postfix, Exim, Sendmail), this should work: |
| 431 |
|
| 432 |
newaliases |
| 433 |
|
| 434 |
You may need to restart your mail server for the new database to |
| 435 |
take effect. |
| 436 |
|
| 437 |
4. Set the following in your config.php file: |
| 438 |
|
| 439 |
$config['mail']['domain'] = 'yourdomain.example.net'; |
| 440 |
|
| 441 |
At this point, post-by-email and post-by-SMS-gateway should work. Note |
| 442 |
that if your mail server is on a different computer from your email |
| 443 |
server, you'll need to have a full installation of StatusNet, a working |
| 444 |
config.php, and access to the StatusNet database from the mail server. |
| 445 |
|
| 446 |
XMPP |
| 447 |
---- |
| 448 |
|
| 449 |
XMPP (eXtended Message and Presence Protocol, <http://xmpp.org/>) is the |
| 450 |
instant-messenger protocol that drives Jabber and GTalk IM. You can |
| 451 |
distribute messages via XMPP using the system below; however, you |
| 452 |
need to run the XMPP incoming daemon to allow incoming messages as |
| 453 |
well. |
| 454 |
|
| 455 |
1. You may want to strongly consider setting up your own XMPP server. |
| 456 |
Ejabberd, OpenFire, and JabberD are all Open Source servers. |
| 457 |
Jabber, Inc. provides a high-performance commercial server. |
| 458 |
|
| 459 |
2. You must register a Jabber ID (JID) with your new server. It helps |
| 460 |
to choose a name like "update@example.com" or "notice" or something |
| 461 |
similar. Alternately, your "update JID" can be registered on a |
| 462 |
publicly-available XMPP service, like jabber.org or GTalk. |
| 463 |
|
| 464 |
StatusNet will not register the JID with your chosen XMPP server; |
| 465 |
you need to do this manually, with an XMPP client like Gajim, |
| 466 |
Telepathy, or Pidgin.im. |
| 467 |
|
| 468 |
3. Configure your site's XMPP variables, as described below in the |
| 469 |
configuration section. |
| 470 |
|
| 471 |
On a default installation, your site can broadcast messages using |
| 472 |
XMPP. Users won't be able to post messages using XMPP unless you've |
| 473 |
got the XMPP daemon running. See 'Queues and daemons' below for how |
| 474 |
to set that up. Also, once you have a sizable number of users, sending |
| 475 |
a lot of SMS, OMB, and XMPP messages whenever someone posts a message |
| 476 |
can really slow down your site; it may cause posting to timeout. |
| 477 |
|
| 478 |
NOTE: stream_select(), a crucial function for network programming, is |
| 479 |
broken on PHP 5.2.x less than 5.2.6 on amd64-based servers. We don't |
| 480 |
work around this bug in StatusNet; current recommendation is to move |
| 481 |
off of amd64 to another server. |
| 482 |
|
| 483 |
Public feed |
| 484 |
----------- |
| 485 |
|
| 486 |
You can send *all* messages from your microblogging site to a |
| 487 |
third-party service using XMPP. This can be useful for providing |
| 488 |
search, indexing, bridging, or other cool services. |
| 489 |
|
| 490 |
To configure a downstream site to receive your public stream, add |
| 491 |
their "JID" (Jabber ID) to your config.php as follows: |
| 492 |
|
| 493 |
$config['xmpp']['public'][] = 'downstream@example.net'; |
| 494 |
|
| 495 |
(Don't miss those square brackets at the end.) Note that your XMPP |
| 496 |
broadcasting must be configured as mentioned above. Although you can |
| 497 |
send out messages at "Web time", high-volume sites should strongly |
| 498 |
consider setting up queues and daemons. |
| 499 |
|
| 500 |
Queues and daemons |
| 501 |
------------------ |
| 502 |
|
| 503 |
Some activities that StatusNet needs to do, like broadcast OStatus, SMS, |
| 504 |
and XMPP messages, can be 'queued' and done by off-line bots instead. |
| 505 |
For this to work, you must be able to run long-running offline |
| 506 |
processes, either on your main Web server or on another server you |
| 507 |
control. (Your other server will still need all the above |
| 508 |
prerequisites, with the exception of Apache.) Installing on a separate |
| 509 |
server is probably a good idea for high-volume sites. |
| 510 |
|
| 511 |
1. You'll need the "CLI" (command-line interface) version of PHP |
| 512 |
installed on whatever server you use. |
| 513 |
|
| 514 |
2. If you're using a separate server for queues, install StatusNet |
| 515 |
somewhere on the server. You don't need to worry about the |
| 516 |
.htaccess file, but make sure that your config.php file is close |
| 517 |
to, or identical to, your Web server's version. |
| 518 |
|
| 519 |
3. In your config.php files (both the Web server and the queues |
| 520 |
server!), set the following variable: |
| 521 |
|
| 522 |
$config['queue']['enabled'] = true; |
| 523 |
|
| 524 |
You may also want to look at the 'daemon' section of this file for |
| 525 |
more daemon options. Note that if you set the 'user' and/or 'group' |
| 526 |
options, you'll need to create that user and/or group by hand. |
| 527 |
They're not created automatically. |
| 528 |
|
| 529 |
4. On the queues server, run the command scripts/startdaemons.sh. |
| 530 |
|
| 531 |
This will run the queue handlers: |
| 532 |
|
| 533 |
* queuedaemon.php - polls for queued items for inbox processing and |
| 534 |
pushing out to OStatus, SMS, XMPP, etc. |
| 535 |
* xmppdaemon.php - listens for new XMPP messages from users and stores |
| 536 |
them as notices in the database; also pulls queued XMPP output from |
| 537 |
queuedaemon.php to push out to clients. |
| 538 |
|
| 539 |
These two daemons will automatically restart in most cases of failure |
| 540 |
including memory leaks (if a memory_limit is set), but may still die |
| 541 |
or behave oddly if they lose connections to the XMPP or queue servers. |
| 542 |
|
| 543 |
Additional daemons may be also started by this script for certain |
| 544 |
plugins, such as the Twitter bridge. |
| 545 |
|
| 546 |
It may be a good idea to use a daemon-monitoring service, like 'monit', |
| 547 |
to check their status and keep them running. |
| 548 |
|
| 549 |
All the daemons write their process IDs (pids) to /var/run/ by |
| 550 |
default. This can be useful for starting, stopping, and monitoring the |
| 551 |
daemons. |
| 552 |
|
| 553 |
Since version 0.8.0, it's now possible to use a STOMP server instead of |
| 554 |
our kind of hacky home-grown DB-based queue solution. This is strongly |
| 555 |
recommended for best response time, especially when using XMPP. |
| 556 |
|
| 557 |
See the "queues" config section below for how to configure to use STOMP. |
| 558 |
As of this writing, the software has been tested with ActiveMQ 5.3. |
| 559 |
|
| 560 |
Themes |
| 561 |
------ |
| 562 |
|
| 563 |
There are two themes shipped with this version of StatusNet: "identica", |
| 564 |
which is what the Identi.ca site uses, and "default", which is a good |
| 565 |
basis for other sites. |
| 566 |
|
| 567 |
As of right now, your ability to change the theme is site-wide; users |
| 568 |
can't choose their own theme. Additionally, the only thing you can |
| 569 |
change in the theme is CSS stylesheets and some image files; you can't |
| 570 |
change the HTML output, like adding or removing menu items. |
| 571 |
|
| 572 |
You can choose a theme using the $config['site']['theme'] element in |
| 573 |
the config.php file. See below for details. |
| 574 |
|
| 575 |
You can add your own theme by making a sub-directory of the 'theme' |
| 576 |
subdirectory with the name of your theme. Each theme can have the |
| 577 |
following files: |
| 578 |
|
| 579 |
display.css: a CSS2 file for "default" styling for all browsers. |
| 580 |
ie6.css: a CSS2 file for override styling for fixing up Internet |
| 581 |
Explorer 6. |
| 582 |
ie7.css: a CSS2 file for override styling for fixing up Internet |
| 583 |
Explorer 7. |
| 584 |
logo.png: a logo image for the site. |
| 585 |
default-avatar-profile.png: a 96x96 pixel image to use as the avatar for |
| 586 |
users who don't upload their own. |
| 587 |
default-avatar-stream.png: Ditto, but 48x48. For streams of notices. |
| 588 |
default-avatar-mini.png: Ditto ditto, but 24x24. For subscriptions |
| 589 |
listing on profile pages. |
| 590 |
|
| 591 |
You may want to start by copying the files from the default theme to |
| 592 |
your own directory. |
| 593 |
|
| 594 |
NOTE: the HTML generated by StatusNet changed *radically* between |
| 595 |
version 0.6.x and 0.7.x. Older themes will need signification |
| 596 |
modification to use the new output format. |
| 597 |
|
| 598 |
Translation |
| 599 |
----------- |
| 600 |
|
| 601 |
Translations in StatusNet use the gettext system <http://www.gnu.org/software/gettext/>. |
| 602 |
Theoretically, you can add your own sub-directory to the locale/ |
| 603 |
subdirectory to add a new language to your system. You'll need to |
| 604 |
compile the ".po" files into ".mo" files, however. |
| 605 |
|
| 606 |
Contributions of translation information to StatusNet are very easy: |
| 607 |
you can use the Web interface at TranslateWiki.net to add one |
| 608 |
or a few or lots of new translations -- or even new languages. You can |
| 609 |
also download more up-to-date .po files there, if you so desire. |
| 610 |
|
| 611 |
For info on helping with translations, see http://status.net/wiki/Translations |
| 612 |
|
| 613 |
Backups |
| 614 |
------- |
| 615 |
|
| 616 |
There is no built-in system for doing backups in StatusNet. You can make |
| 617 |
backups of a working StatusNet system by backing up the database and |
| 618 |
the Web directory. To backup the database use mysqldump <http://ur1.ca/7xo> |
| 619 |
and to backup the Web directory, try tar. |
| 620 |
|
| 621 |
Private |
| 622 |
------- |
| 623 |
|
| 624 |
The administrator can set the "private" flag for a site so that it's |
| 625 |
not visible to non-logged-in users. This might be useful for |
| 626 |
workgroups who want to share a microblogging site for project |
| 627 |
management, but host it on a public server. |
| 628 |
|
| 629 |
Total privacy is not guaranteed or ensured. Also, privacy is |
| 630 |
all-or-nothing for a site; you can't have some accounts or notices |
| 631 |
private, and others public. The interaction of private sites |
| 632 |
with OStatus is undefined. |
| 633 |
|
| 634 |
Access to file attachments can also be restricted to logged-in users only. |
| 635 |
1. Add a directory outside the web root where your file uploads will be |
| 636 |
stored. Usually a command like this will work: |
| 637 |
|
| 638 |
mkdir /var/www/statusnet-files |
| 639 |
|
| 640 |
2. Make the file uploads directory writeable by the web server. An |
| 641 |
insecure way to do this is: |
| 642 |
|
| 643 |
chmod a+x /var/www/statusnet-files |
| 644 |
|
| 645 |
3. Tell StatusNet to use this directory for file uploads. Add a line |
| 646 |
like this to your config.php: |
| 647 |
|
| 648 |
$config['attachments']['dir'] = '/var/www/statusnet-files'; |
| 649 |
|
| 650 |
Upgrading |
| 651 |
========= |
| 652 |
|
| 653 |
IMPORTANT NOTE: StatusNet 0.7.4 introduced a fix for some |
| 654 |
incorrectly-stored international characters ("UTF-8"). For new |
| 655 |
installations, it will now store non-ASCII characters correctly. |
| 656 |
However, older installations will have the incorrect storage, and will |
| 657 |
consequently show up "wrong" in browsers. See below for how to deal |
| 658 |
with this situation. |
| 659 |
|
| 660 |
If you've been using StatusNet 0.7, 0.6, 0.5 or lower, or if you've |
| 661 |
been tracking the "git" version of the software, you will probably |
| 662 |
want to upgrade and keep your existing data. There is no automated |
| 663 |
upgrade procedure in StatusNet 0.9.5. Try these step-by-step |
| 664 |
instructions; read to the end first before trying them. |
| 665 |
|
| 666 |
0. Download StatusNet and set up all the prerequisites as if you were |
| 667 |
doing a new install. |
| 668 |
1. Make backups of both your database and your Web directory. UNDER NO |
| 669 |
CIRCUMSTANCES should you try to do an upgrade without a known-good |
| 670 |
backup. You have been warned. |
| 671 |
2. Shut down Web access to your site, either by turning off your Web |
| 672 |
server or by redirecting all pages to a "sorry, under maintenance" |
| 673 |
page. |
| 674 |
3. Shut down XMPP access to your site, typically by shutting down the |
| 675 |
xmppdaemon.php process and all other daemons that you're running. |
| 676 |
If you've got "monit" or "cron" automatically restarting your |
| 677 |
daemons, make sure to turn that off, too. |
| 678 |
4. Shut down SMS and email access to your site. The easy way to do |
| 679 |
this is to comment out the line piping incoming email to your |
| 680 |
maildaemon.php file, and running something like "newaliases". |
| 681 |
5. Once all writing processes to your site are turned off, make a |
| 682 |
final backup of the Web directory and database. |
| 683 |
6. Move your StatusNet directory to a backup spot, like "statusnet.bak". |
| 684 |
7. Unpack your StatusNet 0.9.5 tarball and move it to "statusnet" or |
| 685 |
wherever your code used to be. |
| 686 |
8. Copy the config.php file and avatar directory from your old |
| 687 |
directory to your new directory. |
| 688 |
9. Copy htaccess.sample to .htaccess in the new directory. Change the |
| 689 |
RewriteBase to use the correct path. |
| 690 |
10. Rebuild the database. (You can safely skip this step and go to #12 |
| 691 |
if you're upgrading from another 0.9.x version). |
| 692 |
|
| 693 |
NOTE: this step is destructive and cannot be |
| 694 |
reversed. YOU CAN EASILY DESTROY YOUR SITE WITH THIS STEP. Don't |
| 695 |
do it without a known-good backup! |
| 696 |
|
| 697 |
If your database is at version 0.8.0 or above, you can run a |
| 698 |
special upgrade script: |
| 699 |
|
| 700 |
mysql -u<rootuser> -p<rootpassword> <database> db/08to09.sql |
| 701 |
|
| 702 |
Otherwise, go to your StatusNet directory and AFTER YOU MAKE A |
| 703 |
BACKUP run the rebuilddb.sh script like this: |
| 704 |
|
| 705 |
./scripts/rebuilddb.sh rootuser rootpassword database db/statusnet.sql |
| 706 |
|
| 707 |
Here, rootuser and rootpassword are the username and password for a |
| 708 |
user who can drop and create databases as well as tables; typically |
| 709 |
that's _not_ the user StatusNet runs as. Note that rebuilddb.sh drops |
| 710 |
your database and rebuilds it; if there is an error you have no |
| 711 |
database. Make sure you have a backup. |
| 712 |
For PostgreSQL databases there is an equivalent, rebuilddb_psql.sh, |
| 713 |
which operates slightly differently. Read the documentation in that |
| 714 |
script before running it. |
| 715 |
11. Use mysql or psql client to log into your database and make sure that |
| 716 |
the notice, user, profile, subscription etc. tables are non-empty. |
| 717 |
12. Turn back on the Web server, and check that things still work. |
| 718 |
13. Turn back on XMPP bots and email maildaemon. Note that the XMPP |
| 719 |
bots have changed since version 0.5; see above for details. |
| 720 |
|
| 721 |
If you're upgrading from very old versions, you may want to look at |
| 722 |
the fixup_* scripts in the scripts directories. These will store some |
| 723 |
precooked data in the DB. All upgraders should check out the inboxes |
| 724 |
options below. |
| 725 |
|
| 726 |
NOTE: the database definition file, laconica.ini, has been renamed to |
| 727 |
statusnet.ini (since this is the recommended database name). If you |
| 728 |
have a line in your config.php pointing to the old name, you'll need |
| 729 |
to update it. |
| 730 |
|
| 731 |
Notice inboxes |
| 732 |
-------------- |
| 733 |
|
| 734 |
Notice inboxes are now required. If you don't have inboxes enabled, |
| 735 |
StatusNet will no longer run. |
| 736 |
|
| 737 |
UTF-8 Database |
| 738 |
-------------- |
| 739 |
|
| 740 |
StatusNet 0.7.4 introduced a fix for some incorrectly-stored |
| 741 |
international characters ("UTF-8"). This fix is not |
| 742 |
backwards-compatible; installations from before 0.7.4 will show |
| 743 |
non-ASCII characters of old notices incorrectly. This section explains |
| 744 |
what to do. |
| 745 |
|
| 746 |
0. You can disable the new behaviour by setting the 'db''utf8' config |
| 747 |
option to "false". You should only do this until you're ready to |
| 748 |
convert your DB to the new format. |
| 749 |
1. When you're ready to convert, you can run the fixup_utf8.php script |
| 750 |
in the scripts/ subdirectory. If you've had the "new behaviour" |
| 751 |
enabled (probably a good idea), you can give the ID of the first |
| 752 |
"new" notice as a parameter, and only notices before that one will |
| 753 |
be converted. Notices are converted in reverse chronological order, |
| 754 |
so the most recent (and visible) ones will be converted first. The |
| 755 |
script should work whether or not you have the 'db''utf8' config |
| 756 |
option enabled. |
| 757 |
2. When you're ready, set $config['db']['utf8'] to true, so that |
| 758 |
new notices will be stored correctly. |
| 759 |
|
| 760 |
Configuration options |
| 761 |
===================== |
| 762 |
|
| 763 |
The main configuration file for StatusNet (excepting configurations for |
| 764 |
dependency software) is config.php in your StatusNet directory. If you |
| 765 |
edit any other file in the directory, like lib/default.php (where most |
| 766 |
of the defaults are defined), you will lose your configuration options |
| 767 |
in any upgrade, and you will wish that you had been more careful. |
| 768 |
|
| 769 |
Starting with version 0.9.0, a Web based configuration panel has been |
| 770 |
added to StatusNet. The preferred method for changing config options is |
| 771 |
to use this panel. |
| 772 |
|
| 773 |
A command-line script, setconfig.php, can be used to set individual |
| 774 |
configuration options. It's in the scripts/ directory. |
| 775 |
|
| 776 |
Starting with version 0.7.1, you can put config files in the |
| 777 |
/etc/statusnet/ directory on your server, if it exists. Config files |
| 778 |
will be included in this order: |
| 779 |
|
| 780 |
* /etc/statusnet/statusnet.php - server-wide config |
| 781 |
* /etc/statusnet/<servername>.php - for a virtual host |
| 782 |
* /etc/statusnet/<servername>_<pathname>.php - for a path |
| 783 |
* INSTALLDIR/config.php - for a particular implementation |
| 784 |
|
| 785 |
Almost all configuration options are made through a two-dimensional |
| 786 |
associative array, cleverly named $config. A typical configuration |
| 787 |
line will be: |
| 788 |
|
| 789 |
$config['section']['option'] = value; |
| 790 |
|
| 791 |
For brevity, the following documentation describes each section and |
| 792 |
option. |
| 793 |
|
| 794 |
site |
| 795 |
---- |
| 796 |
|
| 797 |
This section is a catch-all for site-wide variables. |
| 798 |
|
| 799 |
name: the name of your site, like 'YourCompany Microblog'. |
| 800 |
server: the server part of your site's URLs, like 'example.net'. |
| 801 |
path: The path part of your site's URLs, like 'statusnet' or '' |
| 802 |
(installed in root). |
| 803 |
fancy: whether or not your site uses fancy URLs (see Fancy URLs |
| 804 |
section above). Default is false. |
| 805 |
logfile: full path to a file for StatusNet to save logging |
| 806 |
information to. You may want to use this if you don't have |
| 807 |
access to syslog. |
| 808 |
logdebug: whether to log additional debug info like backtraces on |
| 809 |
hard errors. Default false. |
| 810 |
locale_path: full path to the directory for locale data. Unless you |
| 811 |
store all your locale data in one place, you probably |
| 812 |
don't need to use this. |
| 813 |
language: default language for your site. Defaults to US English. |
| 814 |
Note that this is overridden if a user is logged in and has |
| 815 |
selected a different language. It is also overridden if the |
| 816 |
user is NOT logged in, but their browser requests a different |
| 817 |
langauge. Since pretty much everybody's browser requests a |
| 818 |
language, that means that changing this setting has little or |
| 819 |
no effect in practice. |
| 820 |
languages: A list of languages supported on your site. Typically you'd |
| 821 |
only change this if you wanted to disable support for one |
| 822 |
or another language: |
| 823 |
"unset($config['site']['languages']['de'])" will disable |
| 824 |
support for German. |
| 825 |
theme: Theme for your site (see Theme section). Two themes are |
| 826 |
provided by default: 'default' and 'stoica' (the one used by |
| 827 |
Identi.ca). It's appreciated if you don't use the 'stoica' theme |
| 828 |
except as the basis for your own. |
| 829 |
email: contact email address for your site. By default, it's extracted |
| 830 |
from your Web server environment; you may want to customize it. |
| 831 |
broughtbyurl: name of an organization or individual who provides the |
| 832 |
service. Each page will include a link to this name in the |
| 833 |
footer. A good way to link to the blog, forum, wiki, |
| 834 |
corporate portal, or whoever is making the service available. |
| 835 |
broughtby: text used for the "brought by" link. |
| 836 |
timezone: default timezone for message display. Users can set their |
| 837 |
own time zone. Defaults to 'UTC', which is a pretty good default. |
| 838 |
closed: If set to 'true', will disallow registration on your site. |
| 839 |
This is a cheap way to restrict accounts to only one |
| 840 |
individual or group; just register the accounts you want on |
| 841 |
the service, *then* set this variable to 'true'. |
| 842 |
inviteonly: If set to 'true', will only allow registration if the user |
| 843 |
was invited by an existing user. |
| 844 |
private: If set to 'true', anonymous users will be redirected to the |
| 845 |
'login' page. Also, API methods that normally require no |
| 846 |
authentication will require it. Note that this does not turn |
| 847 |
off registration; use 'closed' or 'inviteonly' for the |
| 848 |
behaviour you want. |
| 849 |
notice: A plain string that will appear on every page. A good place |
| 850 |
to put introductory information about your service, or info about |
| 851 |
upgrades and outages, or other community info. Any HTML will |
| 852 |
be escaped. |
| 853 |
logo: URL of an image file to use as the logo for the site. Overrides |
| 854 |
the logo in the theme, if any. |
| 855 |
ssl: Whether to use SSL and https:// URLs for some or all pages. |
| 856 |
Possible values are 'always' (use it for all pages), 'never' |
| 857 |
(don't use it for any pages), or 'sometimes' (use it for |
| 858 |
sensitive pages that include passwords like login and registration, |
| 859 |
but not for regular pages). Default to 'never'. |
| 860 |
sslserver: use an alternate server name for SSL URLs, like |
| 861 |
'secure.example.org'. You should be careful to set cookie |
| 862 |
parameters correctly so that both the SSL server and the |
| 863 |
"normal" server can access the session cookie and |
| 864 |
preferably other cookies as well. |
| 865 |
shorturllength: Length of URL at which URLs in a message exceeding 140 |
| 866 |
characters will be sent to the user's chosen |
| 867 |
shortening service. |
| 868 |
dupelimit: minimum time allowed for one person to say the same thing |
| 869 |
twice. Default 60s. Anything lower is considered a user |
| 870 |
or UI error. |
| 871 |
textlimit: default max size for texts in the site. Defaults to 140. |
| 872 |
0 means no limit. Can be fine-tuned for notices, messages, |
| 873 |
profile bios and group descriptions. |
| 874 |
|
| 875 |
db |
| 876 |
-- |
| 877 |
|
| 878 |
This section is a reference to the configuration options for |
| 879 |
DB_DataObject (see <http://ur1.ca/7xp>). The ones that you may want to |
| 880 |
set are listed below for clarity. |
| 881 |
|
| 882 |
database: a DSN (Data Source Name) for your StatusNet database. This is |
| 883 |
in the format 'protocol://username:password@hostname/databasename', |
| 884 |
where 'protocol' is 'mysql' or 'mysqli' (or possibly 'postgresql', if you |
| 885 |
really know what you're doing), 'username' is the username, |
| 886 |
'password' is the password, and etc. |
| 887 |
ini_yourdbname: if your database is not named 'statusnet', you'll need |
| 888 |
to set this to point to the location of the |
| 889 |
statusnet.ini file. Note that the real name of your database |
| 890 |
should go in there, not literally 'yourdbname'. |
| 891 |
db_driver: You can try changing this to 'MDB2' to use the other driver |
| 892 |
type for DB_DataObject, but note that it breaks the OpenID |
| 893 |
libraries, which only support PEAR::DB. |
| 894 |
debug: On a database error, you may get a message saying to set this |
| 895 |
value to 5 to see debug messages in the browser. This breaks |
| 896 |
just about all pages, and will also expose the username and |
| 897 |
password |
| 898 |
quote_identifiers: Set this to true if you're using postgresql. |
| 899 |
type: either 'mysql' or 'postgresql' (used for some bits of |
| 900 |
database-type-specific SQL in the code). Defaults to mysql. |
| 901 |
mirror: you can set this to an array of DSNs, like the above |
| 902 |
'database' value. If it's set, certain read-only actions will |
| 903 |
use a random value out of this array for the database, rather |
| 904 |
than the one in 'database' (actually, 'database' is overwritten). |
| 905 |
You can offload a busy DB server by setting up MySQL replication |
| 906 |
and adding the slaves to this array. Note that if you want some |
| 907 |
requests to go to the 'database' (master) server, you'll need |
| 908 |
to include it in this array, too. |
| 909 |
utf8: whether to talk to the database in UTF-8 mode. This is the default |
| 910 |
with new installations, but older sites may want to turn it off |
| 911 |
until they get their databases fixed up. See "UTF-8 database" |
| 912 |
above for details. |
| 913 |
schemacheck: when to let plugins check the database schema to add |
| 914 |
tables or update them. Values can be 'runtime' (default) |
| 915 |
or 'script'. 'runtime' can be costly (plugins check the |
| 916 |
schema on every hit, adding potentially several db |
| 917 |
queries, some quite long), but not everyone knows how to |
| 918 |
run a script. If you can, set this to 'script' and run |
| 919 |
scripts/checkschema.php whenever you install or upgrade a |
| 920 |
plugin. |
| 921 |
|
| 922 |
syslog |
| 923 |
------ |
| 924 |
|
| 925 |
By default, StatusNet sites log error messages to the syslog facility. |
| 926 |
(You can override this using the 'logfile' parameter described above). |
| 927 |
|
| 928 |
appname: The name that StatusNet uses to log messages. By default it's |
| 929 |
"statusnet", but if you have more than one installation on the |
| 930 |
server, you may want to change the name for each instance so |
| 931 |
you can track log messages more easily. |
| 932 |
priority: level to log at. Currently ignored. |
| 933 |
facility: what syslog facility to used. Defaults to LOG_USER, only |
| 934 |
reset if you know what syslog is and have a good reason |
| 935 |
to change it. |
| 936 |
|
| 937 |
queue |
| 938 |
----- |
| 939 |
|
| 940 |
You can configure the software to queue time-consuming tasks, like |
| 941 |
sending out SMS email or XMPP messages, for off-line processing. See |
| 942 |
'Queues and daemons' above for how to set this up. |
| 943 |
|
| 944 |
enabled: Whether to uses queues. Defaults to false. |
| 945 |
subsystem: Which kind of queueserver to use. Values include "db" for |
| 946 |
our hacked-together database queuing (no other server |
| 947 |
required) and "stomp" for a stomp server. |
| 948 |
stomp_server: "broker URI" for stomp server. Something like |
| 949 |
"tcp://hostname:61613". More complicated ones are |
| 950 |
possible; see your stomp server's documentation for |
| 951 |
details. |
| 952 |
queue_basename: a root name to use for queues (stomp only). Typically |
| 953 |
something like '/queue/sitename/' makes sense. If running |
| 954 |
multiple instances on the same server, make sure that |
| 955 |
either this setting or $config['site']['nickname'] are |
| 956 |
unique for each site to keep them separate. |
| 957 |
|
| 958 |
stomp_username: username for connecting to the stomp server; defaults |
| 959 |
to null. |
| 960 |
stomp_password: password for connecting to the stomp server; defaults |
| 961 |
to null. |
| 962 |
|
| 963 |
stomp_persistent: keep items across queue server restart, if enabled. |
| 964 |
Under ActiveMQ, the server configuration determines if and how |
| 965 |
persistent storage is actually saved. |
| 966 |
|
| 967 |
If using a message queue server other than ActiveMQ, you may |
| 968 |
need to disable this if it does not support persistence. |
| 969 |
|
| 970 |
stomp_transactions: use transactions to aid in error detection. |
| 971 |
A broken transaction will be seen quickly, allowing a message |
| 972 |
to be redelivered immediately if a daemon crashes. |
| 973 |
|
| 974 |
If using a message queue server other than ActiveMQ, you may |
| 975 |
need to disable this if it does not support transactions. |
| 976 |
|
| 977 |
stomp_acks: send acknowledgements to aid in flow control. |
| 978 |
An acknowledgement of successful processing tells the server |
| 979 |
we're ready for more and can help keep things moving smoothly. |
| 980 |
|
| 981 |
This should *not* be turned off when running with ActiveMQ, but |
| 982 |
if using another message queue server that does not support |
| 983 |
acknowledgements you might need to disable this. |
| 984 |
|
| 985 |
softlimit: an absolute or relative "soft memory limit"; daemons will |
| 986 |
restart themselves gracefully when they find they've hit |
| 987 |
this amount of memory usage. Defaults to 90% of PHP's global |
| 988 |
memory_limit setting. |
| 989 |
|
| 990 |
inboxes: delivery of messages to receiver's inboxes can be delayed to |
| 991 |
queue time for best interactive performance on the sender. |
| 992 |
This may however be annoyingly slow when using the DB queues, |
| 993 |
so you can set this to false if it's causing trouble. |
| 994 |
|
| 995 |
breakout: for stomp, individual queues are by default grouped up for |
| 996 |
best scalability. If some need to be run by separate daemons, |
| 997 |
etc they can be manually adjusted here. |
| 998 |
|
| 999 |
Default will share all queues for all sites within each group. |
| 1000 |
Specify as <group>/<queue> or <group>/<queue>/<site>, |
| 1001 |
using nickname identifier as site. |
| 1002 |
|
| 1003 |
'main/distrib' separate "distrib" queue covering all sites |
| 1004 |
'xmpp/xmppout/mysite' separate "xmppout" queue covering just 'mysite' |
| 1005 |
|
| 1006 |
max_retries: for stomp, drop messages after N failed attempts to process. |
| 1007 |
Defaults to 10. |
| 1008 |
|
| 1009 |
dead_letter_dir: for stomp, optional directory to dump data on failed |
| 1010 |
queue processing events after discarding them. |
| 1011 |
|
| 1012 |
stomp_no_transactions: for stomp, the server does not support transactions, |
| 1013 |
so do not try to user them. This is needed for http://www.morbidq.com/. |
| 1014 |
|
| 1015 |
stomp_no_acks: for stomp, the server does not support acknowledgements. |
| 1016 |
so do not try to user them. This is needed for http://www.morbidq.com/. |
| 1017 |
|
| 1018 |
license |
| 1019 |
------- |
| 1020 |
|
| 1021 |
The default license to use for your users notices. The default is the |
| 1022 |
Creative Commons Attribution 3.0 license, which is probably the right |
| 1023 |
choice for any public site. Note that some other servers will not |
| 1024 |
accept notices if you apply a stricter license than this. |
| 1025 |
|
| 1026 |
type: one of 'cc' (for Creative Commons licenses), 'allrightsreserved' |
| 1027 |
(default copyright), or 'private' (for private and confidential |
| 1028 |
information). |
| 1029 |
owner: for 'allrightsreserved' or 'private', an assigned copyright |
| 1030 |
holder (for example, an employer for a private site). If |
| 1031 |
not specified, will be attributed to 'contributors'. |
| 1032 |
url: URL of the license, used for links. |
| 1033 |
title: Title for the license, like 'Creative Commons Attribution 3.0'. |
| 1034 |
image: A button shown on each page for the license. |
| 1035 |
|
| 1036 |
mail |
| 1037 |
---- |
| 1038 |
|
| 1039 |
This is for configuring out-going email. We use PEAR's Mail module, |
| 1040 |
see: http://pear.php.net/manual/en/package.mail.mail.factory.php |
| 1041 |
|
| 1042 |
backend: the backend to use for mail, one of 'mail', 'sendmail', and |
| 1043 |
'smtp'. Defaults to PEAR's default, 'mail'. |
| 1044 |
params: if the mail backend requires any parameters, you can provide |
| 1045 |
them in an associative array. |
| 1046 |
|
| 1047 |
nickname |
| 1048 |
-------- |
| 1049 |
|
| 1050 |
This is for configuring nicknames in the service. |
| 1051 |
|
| 1052 |
blacklist: an array of strings for usernames that may not be |
| 1053 |
registered. A default array exists for strings that are |
| 1054 |
used by StatusNet (e.g. 'doc', 'main', 'avatar', 'theme') |
| 1055 |
but you may want to add others if you have other software |
| 1056 |
installed in a subdirectory of StatusNet or if you just |
| 1057 |
don't want certain words used as usernames. |
| 1058 |
featured: an array of nicknames of 'featured' users of the site. |
| 1059 |
Can be useful to draw attention to well-known users, or |
| 1060 |
interesting people, or whatever. |
| 1061 |
|
| 1062 |
avatar |
| 1063 |
------ |
| 1064 |
|
| 1065 |
For configuring avatar access. |
| 1066 |
|
| 1067 |
dir: Directory to look for avatar files and to put them into. |
| 1068 |
Defaults to avatar subdirectory of install directory; if |
| 1069 |
you change it, make sure to change path, too. |
| 1070 |
path: Path to avatars. Defaults to path for avatar subdirectory, |
| 1071 |
but you can change it if you wish. Note that this will |
| 1072 |
be included with the avatar server, too. |
| 1073 |
server: If set, defines another server where avatars are stored in the |
| 1074 |
root directory. Note that the 'avatar' subdir still has to be |
| 1075 |
writeable. You'd typically use this to split HTTP requests on |
| 1076 |
the client to speed up page loading, either with another |
| 1077 |
virtual server or with an NFS or SAMBA share. Clients |
| 1078 |
typically only make 2 connections to a single server at a |
| 1079 |
time <http://ur1.ca/6ih>, so this can parallelize the job. |
| 1080 |
Defaults to null. |
| 1081 |
ssl: Whether to access avatars using HTTPS. Defaults to null, meaning |
| 1082 |
to guess based on site-wide SSL settings. |
| 1083 |
|
| 1084 |
public |
| 1085 |
------ |
| 1086 |
|
| 1087 |
For configuring the public stream. |
| 1088 |
|
| 1089 |
localonly: If set to true, only messages posted by users of this |
| 1090 |
service (rather than other services, filtered through OMB) |
| 1091 |
are shown in the public stream. Default true. |
| 1092 |
blacklist: An array of IDs of users to hide from the public stream. |
| 1093 |
Useful if you have someone making excessive Twitterfeed posts |
| 1094 |
to the site, other kinds of automated posts, testing bots, etc. |
| 1095 |
autosource: Sources of notices that are from automatic posters, and thus |
| 1096 |
should be kept off the public timeline. Default empty. |
| 1097 |
|
| 1098 |
theme |
| 1099 |
----- |
| 1100 |
|
| 1101 |
server: Like avatars, you can speed up page loading by pointing the |
| 1102 |
theme file lookup to another server (virtual or real). |
| 1103 |
Defaults to NULL, meaning to use the site server. |
| 1104 |
dir: Directory where theme files are stored. Used to determine |
| 1105 |
whether to show parts of a theme file. Defaults to the theme |
| 1106 |
subdirectory of the install directory. |
| 1107 |
path: Path part of theme URLs, before the theme name. Relative to the |
| 1108 |
theme server. It may make sense to change this path when upgrading, |
| 1109 |
(using version numbers as the path) to make sure that all files are |
| 1110 |
reloaded by caching clients or proxies. Defaults to null, |
| 1111 |
which means to use the site path + '/theme'. |
| 1112 |
ssl: Whether to use SSL for theme elements. Default is null, which means |
| 1113 |
guess based on site SSL settings. |
| 1114 |
|
| 1115 |
javascript |
| 1116 |
---------- |
| 1117 |
|
| 1118 |
server: You can speed up page loading by pointing the |
| 1119 |
theme file lookup to another server (virtual or real). |
| 1120 |
Defaults to NULL, meaning to use the site server. |
| 1121 |
path: Path part of Javascript URLs. Defaults to null, |
| 1122 |
which means to use the site path + '/js/'. |
| 1123 |
ssl: Whether to use SSL for JavaScript files. Default is null, which means |
| 1124 |
guess based on site SSL settings. |
| 1125 |
|
| 1126 |
xmpp |
| 1127 |
---- |
| 1128 |
|
| 1129 |
For configuring the XMPP sub-system. |
| 1130 |
|
| 1131 |
enabled: Whether to accept and send messages by XMPP. Default false. |
| 1132 |
server: server part of XMPP ID for update user. |
| 1133 |
port: connection port for clients. Default 5222, which you probably |
| 1134 |
shouldn't need to change. |
| 1135 |
user: username for the client connection. Users will receive messages |
| 1136 |
from 'user'@'server'. |
| 1137 |
resource: a unique identifier for the connection to the server. This |
| 1138 |
is actually used as a prefix for each XMPP component in the system. |
| 1139 |
password: password for the user account. |
| 1140 |
host: some XMPP domains are served by machines with a different |
| 1141 |
hostname. (For example, @gmail.com GTalk users connect to |
| 1142 |
talk.google.com). Set this to the correct hostname if that's the |
| 1143 |
case with your server. |
| 1144 |
encryption: Whether to encrypt the connection between StatusNet and the |
| 1145 |
XMPP server. Defaults to true, but you can get |
| 1146 |
considerably better performance turning it off if you're |
| 1147 |
connecting to a server on the same machine or on a |
| 1148 |
protected network. |
| 1149 |
debug: if turned on, this will make the XMPP library blurt out all of |
| 1150 |
the incoming and outgoing messages as XML stanzas. Use as a |
| 1151 |
last resort, and never turn it on if you don't have queues |
| 1152 |
enabled, since it will spit out sensitive data to the browser. |
| 1153 |
public: an array of JIDs to send _all_ notices to. This is useful for |
| 1154 |
participating in third-party search and archiving services. |
| 1155 |
|
| 1156 |
invite |
| 1157 |
------ |
| 1158 |
|
| 1159 |
For configuring invites. |
| 1160 |
|
| 1161 |
enabled: Whether to allow users to send invites. Default true. |
| 1162 |
|
| 1163 |
tag |
| 1164 |
--- |
| 1165 |
|
| 1166 |
Miscellaneous tagging stuff. |
| 1167 |
|
| 1168 |
dropoff: Decay factor for tag listing, in seconds. |
| 1169 |
Defaults to exponential decay over ten days; you can twiddle |
| 1170 |
with it to try and get better results for your site. |
| 1171 |
|
| 1172 |
popular |
| 1173 |
------- |
| 1174 |
|
| 1175 |
Settings for the "popular" section of the site. |
| 1176 |
|
| 1177 |
dropoff: Decay factor for popularity listing, in seconds. |
| 1178 |
Defaults to exponential decay over ten days; you can twiddle |
| 1179 |
with it to try and get better results for your site. |
| 1180 |
|
| 1181 |
daemon |
| 1182 |
------ |
| 1183 |
|
| 1184 |
For daemon processes. |
| 1185 |
|
| 1186 |
piddir: directory that daemon processes should write their PID file |
| 1187 |
(process ID) to. Defaults to /var/run/, which is where this |
| 1188 |
stuff should usually go on Unix-ish systems. |
| 1189 |
user: If set, the daemons will try to change their effective user ID |
| 1190 |
to this user before running. Probably a good idea, especially if |
| 1191 |
you start the daemons as root. Note: user name, like 'daemon', |
| 1192 |
not 1001. |
| 1193 |
group: If set, the daemons will try to change their effective group ID |
| 1194 |
to this named group. Again, a name, not a numerical ID. |
| 1195 |
|
| 1196 |
memcached |
| 1197 |
--------- |
| 1198 |
|
| 1199 |
You can get a significant boost in performance by caching some |
| 1200 |
database data in memcached <http://www.danga.com/memcached/>. |
| 1201 |
|
| 1202 |
enabled: Set to true to enable. Default false. |
| 1203 |
server: a string with the hostname of the memcached server. Can also |
| 1204 |
be an array of hostnames, if you've got more than one server. |
| 1205 |
base: memcached uses key-value pairs to store data. We build long, |
| 1206 |
funny-looking keys to make sure we don't have any conflicts. The |
| 1207 |
base of the key is usually a simplified version of the site name |
| 1208 |
(like "Identi.ca" => "identica"), but you can overwrite this if |
| 1209 |
you need to. You can safely ignore it if you only have one |
| 1210 |
StatusNet site using your memcached server. |
| 1211 |
port: Port to connect to; defaults to 11211. |
| 1212 |
|
| 1213 |
emailpost |
| 1214 |
--------- |
| 1215 |
|
| 1216 |
For post-by-email. |
| 1217 |
|
| 1218 |
enabled: Whether to enable post-by-email. Defaults to true. You will |
| 1219 |
also need to set up maildaemon.php. |
| 1220 |
|
| 1221 |
sms |
| 1222 |
--- |
| 1223 |
|
| 1224 |
For SMS integration. |
| 1225 |
|
| 1226 |
enabled: Whether to enable SMS integration. Defaults to true. Queues |
| 1227 |
should also be enabled. |
| 1228 |
|
| 1229 |
integration |
| 1230 |
----------- |
| 1231 |
|
| 1232 |
A catch-all for integration with other systems. |
| 1233 |
|
| 1234 |
taguri: base for tag:// URIs. Defaults to site-server + ',2009'. |
| 1235 |
|
| 1236 |
inboxes |
| 1237 |
------- |
| 1238 |
|
| 1239 |
For notice inboxes. |
| 1240 |
|
| 1241 |
enabled: No longer used. If you set this to something other than true, |
| 1242 |
StatusNet will no longer run. |
| 1243 |
|
| 1244 |
throttle |
| 1245 |
-------- |
| 1246 |
|
| 1247 |
For notice-posting throttles. |
| 1248 |
|
| 1249 |
enabled: Whether to throttle posting. Defaults to false. |
| 1250 |
count: Each user can make this many posts in 'timespan' seconds. So, if count |
| 1251 |
is 100 and timespan is 3600, then there can be only 100 posts |
| 1252 |
from a user every hour. |
| 1253 |
timespan: see 'count'. |
| 1254 |
|
| 1255 |
profile |
| 1256 |
------- |
| 1257 |
|
| 1258 |
Profile management. |
| 1259 |
|
| 1260 |
biolimit: max character length of bio; 0 means no limit; null means to use |
| 1261 |
the site text limit default. |
| 1262 |
|
| 1263 |
newuser |
| 1264 |
------- |
| 1265 |
|
| 1266 |
Options with new users. |
| 1267 |
|
| 1268 |
default: nickname of a user account to automatically subscribe new |
| 1269 |
users to. Typically this would be system account for e.g. |
| 1270 |
service updates or announcements. Users are able to unsub |
| 1271 |
if they want. Default is null; no auto subscribe. |
| 1272 |
welcome: nickname of a user account that sends welcome messages to new |
| 1273 |
users. Can be the same as 'default' account, although on |
| 1274 |
busy servers it may be a good idea to keep that one just for |
| 1275 |
'urgent' messages. Default is null; no message. |
| 1276 |
|
| 1277 |
If either of these special user accounts are specified, the users should |
| 1278 |
be created before the configuration is updated. |
| 1279 |
|
| 1280 |
snapshot |
| 1281 |
-------- |
| 1282 |
|
| 1283 |
The software will, by default, send statistical snapshots about the |
| 1284 |
local installation to a stats server on the status.net Web site. This |
| 1285 |
data is used by the developers to prioritize development decisions. No |
| 1286 |
identifying data about users or organizations is collected. The data |
| 1287 |
is available to the public for review. Participating in this survey |
| 1288 |
helps StatusNet developers take your needs into account when updating |
| 1289 |
the software. |
| 1290 |
|
| 1291 |
run: string indicating when to run the statistics. Values can be 'web' |
| 1292 |
(run occasionally at Web time), 'cron' (run from a cron script), |
| 1293 |
or 'never' (don't ever run). If you set it to 'cron', remember to |
| 1294 |
schedule the script to run on a regular basis. |
| 1295 |
frequency: if run value is 'web', how often to report statistics. |
| 1296 |
Measured in Web hits; depends on how active your site is. |
| 1297 |
Default is 10000 -- that is, one report every 10000 Web hits, |
| 1298 |
on average. |
| 1299 |
reporturl: URL to post statistics to. Defaults to StatusNet developers' |
| 1300 |
report system, but if they go evil or disappear you may |
| 1301 |
need to update this to another value. Note: if you |
| 1302 |
don't want to report stats, it's much better to |
| 1303 |
set 'run' to 'never' than to set this value to something |
| 1304 |
nonsensical. |
| 1305 |
|
| 1306 |
attachments |
| 1307 |
----------- |
| 1308 |
|
| 1309 |
The software lets users upload files with their notices. You can configure |
| 1310 |
the types of accepted files by mime types and a trio of quota options: |
| 1311 |
per file, per user (total), per user per month. |
| 1312 |
|
| 1313 |
We suggest the use of the pecl file_info extension to handle mime type |
| 1314 |
detection. |
| 1315 |
|
| 1316 |
supported: an array of mime types you accept to store and distribute, |
| 1317 |
like 'image/gif', 'video/mpeg', 'audio/mpeg', etc. Make sure you |
| 1318 |
setup your server to properly recognize the types you want to |
| 1319 |
support. |
| 1320 |
uploads: false to disable uploading files with notices (true by default). |
| 1321 |
filecommand: The required MIME_Type library may need to use the 'file' |
| 1322 |
command. It tries the one in the Web server's path, but if |
| 1323 |
you're having problems with uploads, try setting this to the |
| 1324 |
correct value. Note: 'file' must accept '-b' and '-i' options. |
| 1325 |
|
| 1326 |
For quotas, be sure you've set the upload_max_filesize and post_max_size |
| 1327 |
in php.ini to be large enough to handle your upload. In httpd.conf |
| 1328 |
(if you're using apache), check that the LimitRequestBody directive isn't |
| 1329 |
set too low (it's optional, so it may not be there at all). |
| 1330 |
|
| 1331 |
file_quota: maximum size for a single file upload in bytes. A user can send |
| 1332 |
any amount of notices with attachments as long as each attachment |
| 1333 |
is smaller than file_quota. |
| 1334 |
user_quota: total size in bytes a user can store on this server. Each user |
| 1335 |
can store any number of files as long as their total size does |
| 1336 |
not exceed the user_quota. |
| 1337 |
monthly_quota: total size permitted in the current month. This is the total |
| 1338 |
size in bytes that a user can upload each month. |
| 1339 |
dir: directory accessible to the Web process where uploads should go. |
| 1340 |
Defaults to the 'file' subdirectory of the install directory, which |
| 1341 |
should be writeable by the Web user. |
| 1342 |
server: server name to use when creating URLs for uploaded files. |
| 1343 |
Defaults to null, meaning to use the default Web server. Using |
| 1344 |
a virtual server here can speed up Web performance. |
| 1345 |
path: URL path, relative to the server, to find files. Defaults to |
| 1346 |
main path + '/file/'. |
| 1347 |
ssl: whether to use HTTPS for file URLs. Defaults to null, meaning to |
| 1348 |
guess based on other SSL settings. |
| 1349 |
filecommand: command to use for determining the type of a file. May be |
| 1350 |
skipped if fileinfo extension is installed. Defaults to |
| 1351 |
'/usr/bin/file'. |
| 1352 |
|
| 1353 |
group |
| 1354 |
----- |
| 1355 |
|
| 1356 |
Options for group functionality. |
| 1357 |
|
| 1358 |
maxaliases: maximum number of aliases a group can have. Default 3. Set |
| 1359 |
to 0 or less to prevent aliases in a group. |
| 1360 |
desclimit: maximum number of characters to allow in group descriptions. |
| 1361 |
null (default) means to use the site-wide text limits. 0 |
| 1362 |
means no limit. |
| 1363 |
|
| 1364 |
oohembed |
| 1365 |
-------- |
| 1366 |
|
| 1367 |
oEmbed endpoint for multimedia attachments (links in posts). |
| 1368 |
|
| 1369 |
endpoint: oohembed endpoint using http://oohembed.com/ software. |
| 1370 |
|
| 1371 |
search |
| 1372 |
------ |
| 1373 |
|
| 1374 |
Some stuff for search. |
| 1375 |
|
| 1376 |
type: type of search. Ignored if PostgreSQL or Sphinx are enabled. Can either |
| 1377 |
be 'fulltext' (default) or 'like'. The former is faster and more efficient |
| 1378 |
but requires the lame old MyISAM engine for MySQL. The latter |
| 1379 |
will work with InnoDB but could be miserably slow on large |
| 1380 |
systems. We'll probably add another type sometime in the future, |
| 1381 |
with our own indexing system (maybe like MediaWiki's). |
| 1382 |
|
| 1383 |
sessions |
| 1384 |
-------- |
| 1385 |
|
| 1386 |
Session handling. |
| 1387 |
|
| 1388 |
handle: boolean. Whether we should register our own PHP session-handling |
| 1389 |
code (using the database and memcache if enabled). Defaults to false. |
| 1390 |
Setting this to true makes some sense on large or multi-server |
| 1391 |
sites, but it probably won't hurt for smaller ones, either. |
| 1392 |
debug: whether to output debugging info for session storage. Can help |
| 1393 |
with weird session bugs, sometimes. Default false. |
| 1394 |
|
| 1395 |
background |
| 1396 |
---------- |
| 1397 |
|
| 1398 |
Users can upload backgrounds for their pages; this section defines |
| 1399 |
their use. |
| 1400 |
|
| 1401 |
server: the server to use for background. Using a separate (even |
| 1402 |
virtual) server for this can speed up load times. Default is |
| 1403 |
null; same as site server. |
| 1404 |
dir: directory to write backgrounds too. Default is '/background/' |
| 1405 |
subdir of install dir. |
| 1406 |
path: path to backgrounds. Default is sub-path of install path; note |
| 1407 |
that you may need to change this if you change site-path too. |
| 1408 |
ssl: Whether or not to use HTTPS for background files. Defaults to |
| 1409 |
null, meaning to guess from site-wide SSL settings. |
| 1410 |
|
| 1411 |
ping |
| 1412 |
---- |
| 1413 |
|
| 1414 |
Using the "XML-RPC Ping" method initiated by weblogs.com, the site can |
| 1415 |
notify third-party servers of updates. |
| 1416 |
|
| 1417 |
notify: an array of URLs for ping endpoints. Default is the empty |
| 1418 |
array (no notification). |
| 1419 |
|
| 1420 |
design |
| 1421 |
------ |
| 1422 |
|
| 1423 |
Default design (colors and background) for the site. Actual appearance |
| 1424 |
depends on the theme. Null values mean to use the theme defaults. |
| 1425 |
|
| 1426 |
backgroundcolor: Hex color of the site background. |
| 1427 |
contentcolor: Hex color of the content area background. |
| 1428 |
sidebarcolor: Hex color of the sidebar background. |
| 1429 |
textcolor: Hex color of all non-link text. |
| 1430 |
linkcolor: Hex color of all links. |
| 1431 |
backgroundimage: Image to use for the background. |
| 1432 |
disposition: Flags for whether or not to tile the background image. |
| 1433 |
|
| 1434 |
notice |
| 1435 |
------ |
| 1436 |
|
| 1437 |
Configuration options specific to notices. |
| 1438 |
|
| 1439 |
contentlimit: max length of the plain-text content of a notice. |
| 1440 |
Default is null, meaning to use the site-wide text limit. |
| 1441 |
0 means no limit. |
| 1442 |
|
| 1443 |
message |
| 1444 |
------- |
| 1445 |
|
| 1446 |
Configuration options specific to messages. |
| 1447 |
|
| 1448 |
contentlimit: max length of the plain-text content of a message. |
| 1449 |
Default is null, meaning to use the site-wide text limit. |
| 1450 |
0 means no limit. |
| 1451 |
|
| 1452 |
logincommand |
| 1453 |
------------ |
| 1454 |
|
| 1455 |
Configuration options for the login command. |
| 1456 |
|
| 1457 |
disabled: whether to enable this command. If enabled, users who send |
| 1458 |
the text 'login' to the site through any channel will |
| 1459 |
receive a link to login to the site automatically in return. |
| 1460 |
Possibly useful for users who primarily use an XMPP or SMS |
| 1461 |
interface and can't be bothered to remember their site |
| 1462 |
password. Note that the security implications of this are |
| 1463 |
pretty serious and have not been thoroughly tested. You |
| 1464 |
should enable it only after you've convinced yourself that |
| 1465 |
it is safe. Default is 'false'. |
| 1466 |
|
| 1467 |
singleuser |
| 1468 |
---------- |
| 1469 |
|
| 1470 |
If an installation has only one user, this can simplify a lot of the |
| 1471 |
interface. It also makes the user's profile the root URL. |
| 1472 |
|
| 1473 |
enabled: Whether to run in "single user mode". Default false. |
| 1474 |
nickname: nickname of the single user. |
| 1475 |
|
| 1476 |
robotstxt |
| 1477 |
--------- |
| 1478 |
|
| 1479 |
We put out a default robots.txt file to guide the processing of |
| 1480 |
Web crawlers. See http://www.robotstxt.org/ for more information |
| 1481 |
on the format of this file. |
| 1482 |
|
| 1483 |
crawldelay: if non-empty, this value is provided as the Crawl-Delay: |
| 1484 |
for the robots.txt file. see http://ur1.ca/l5a0 |
| 1485 |
for more information. Default is zero, no explicit delay. |
| 1486 |
disallow: Array of (virtual) directories to disallow. Default is 'main', |
| 1487 |
'search', 'message', 'settings', 'admin'. Ignored when site |
| 1488 |
is private, in which case the entire site ('/') is disallowed. |
| 1489 |
|
| 1490 |
Plugins |
| 1491 |
======= |
| 1492 |
|
| 1493 |
Beginning with the 0.7.x branch, StatusNet has supported a simple but |
| 1494 |
powerful plugin architecture. Important events in the code are named, |
| 1495 |
like 'StartNoticeSave', and other software can register interest |
| 1496 |
in those events. When the events happen, the other software is called |
| 1497 |
and has a choice of accepting or rejecting the events. |
| 1498 |
|
| 1499 |
In the simplest case, you can add a function to config.php and use the |
| 1500 |
Event::addHandler() function to hook an event: |
| 1501 |
|
| 1502 |
function AddGoogleLink($action) |
| 1503 |
{ |
| 1504 |
$action->menuItem('http://www.google.com/', _('Google'), _('Search engine')); |
| 1505 |
return true; |
| 1506 |
} |
| 1507 |
|
| 1508 |
Event::addHandler('EndPrimaryNav', 'AddGoogleLink'); |
| 1509 |
|
| 1510 |
This adds a menu item to the end of the main navigation menu. You can |
| 1511 |
see the list of existing events, and parameters that handlers must |
| 1512 |
implement, in EVENTS.txt. |
| 1513 |
|
| 1514 |
The Plugin class in lib/plugin.php makes it easier to write more |
| 1515 |
complex plugins. Sub-classes can just create methods named |
| 1516 |
'onEventName', where 'EventName' is the name of the event (case |
| 1517 |
matters!). These methods will be automatically registered as event |
| 1518 |
handlers by the Plugin constructor (which you must call from your own |
| 1519 |
class's constructor). |
| 1520 |
|
| 1521 |
Several example plugins are included in the plugins/ directory. You |
| 1522 |
can enable a plugin with the following line in config.php: |
| 1523 |
|
| 1524 |
addPlugin('Example', array('param1' => 'value1', |
| 1525 |
'param2' => 'value2')); |
| 1526 |
|
| 1527 |
This will look for and load files named 'ExamplePlugin.php' or |
| 1528 |
'Example/ExamplePlugin.php' either in the plugins/ directory (for |
| 1529 |
plugins that ship with StatusNet) or in the local/ directory (for |
| 1530 |
plugins you write yourself or that you get from somewhere else) or |
| 1531 |
local/plugins/. |
| 1532 |
|
| 1533 |
Plugins are documented in their own directories. |
| 1534 |
|
| 1535 |
Troubleshooting |
| 1536 |
=============== |
| 1537 |
|
| 1538 |
The primary output for StatusNet is syslog, unless you configured a |
| 1539 |
separate logfile. This is probably the first place to look if you're |
| 1540 |
getting weird behaviour from StatusNet. |
| 1541 |
|
| 1542 |
If you're tracking the unstable version of StatusNet in the git |
| 1543 |
repository (see below), and you get a compilation error ("unexpected |
| 1544 |
T_STRING") in the browser, check to see that you don't have any |
| 1545 |
conflicts in your code. |
| 1546 |
|
| 1547 |
If you upgraded to StatusNet 0.9.5 without reading the "Notice |
| 1548 |
inboxes" section above, and all your users' 'Personal' tabs are empty, |
| 1549 |
read the "Notice inboxes" section above. |
| 1550 |
|
| 1551 |
Myths |
| 1552 |
===== |
| 1553 |
|
| 1554 |
These are some myths you may see on the Web about StatusNet. |
| 1555 |
Documentation from the core team about StatusNet has been pretty |
| 1556 |
sparse, so some backtracking and guesswork resulted in some incorrect |
| 1557 |
assumptions. |
| 1558 |
|
| 1559 |
- "Set $config['db']['debug'] = 5 to debug the database." This is an |
| 1560 |
extremely bad idea. It's a tool built into DB_DataObject that will |
| 1561 |
emit oodles of print lines directly to the browser of your users. |
| 1562 |
Among these lines will be your database username and password. Do |
| 1563 |
not enable this option on a production Web site for any reason. |
| 1564 |
|
| 1565 |
- "Edit dataobject.ini with the following settings..." dataobject.ini |
| 1566 |
is a development file for the DB_DataObject framework and is not |
| 1567 |
used by the running software. It was removed from the StatusNet |
| 1568 |
distribution because its presence was confusing. Do not bother |
| 1569 |
configuring dataobject.ini, and do not put your database username |
| 1570 |
and password into the file on a production Web server; unscrupulous |
| 1571 |
persons may try to read it to get your passwords. |
| 1572 |
|
| 1573 |
Unstable version |
| 1574 |
================ |
| 1575 |
|
| 1576 |
If you're adventurous or impatient, you may want to install the |
| 1577 |
development version of StatusNet. To get it, use the git version |
| 1578 |
control tool <http://git-scm.com/> like so: |
| 1579 |
|
| 1580 |
git clone git@gitorious.org:statusnet/mainline.git |
| 1581 |
|
| 1582 |
This is the version of the software that runs on Identi.ca and the |
| 1583 |
status.net hosted service. Using it is a mixed bag. On the positive |
| 1584 |
side, it usually includes the latest security and bug fix patches. On |
| 1585 |
the downside, it may also include changes that require admin |
| 1586 |
intervention (like running a script or even raw SQL!) that may not be |
| 1587 |
documented yet. It may be a good idea to test this version before |
| 1588 |
installing it on your production machines. |
| 1589 |
|
| 1590 |
To keep it up-to-date, use 'git pull'. Watch for conflicts! |
| 1591 |
|
| 1592 |
Further information |
| 1593 |
=================== |
| 1594 |
|
| 1595 |
There are several ways to get more information about StatusNet. |
| 1596 |
|
| 1597 |
* There is a mailing list for StatusNet developers and admins at |
| 1598 |
http://mail.status.net/mailman/listinfo/statusnet-dev |
| 1599 |
* The #statusnet IRC channel on freenode.net <http://www.freenode.net/>. |
| 1600 |
* The StatusNet wiki, http://status.net/wiki/ |
| 1601 |
* The StatusNet blog, http://status.net/blog/ |
| 1602 |
* The StatusNet status update, <http://status.status.net/> (!) |
| 1603 |
|
| 1604 |
Feedback |
| 1605 |
======== |
| 1606 |
|
| 1607 |
* Microblogging messages to http://support.status.net/ are very welcome. |
| 1608 |
* The microblogging group http://identi.ca/group/statusnet is a good |
| 1609 |
place to discuss the software. |
| 1610 |
* StatusNet has a bug tracker for any defects you may find, or ideas for |
| 1611 |
making things better. http://status.net/bugs |
| 1612 |
|
| 1613 |
Credits |
| 1614 |
======= |
| 1615 |
|
| 1616 |
The following is an incomplete list of developers who've worked on |
| 1617 |
StatusNet. Apologies for any oversight; please let evan@status.net know |
| 1618 |
if anyone's been overlooked in error. |
| 1619 |
|
| 1620 |
* Evan Prodromou, founder and lead developer, StatusNet, Inc. |
| 1621 |
* Zach Copley, StatusNet, Inc. |
| 1622 |
* Earle Martin, StatusNet, Inc. |
| 1623 |
* Marie-Claude Doyon, designer, StatusNet, Inc. |
| 1624 |
* Sarven Capadisli, StatusNet, Inc. |
| 1625 |
* Robin Millette, StatusNet, Inc. |
| 1626 |
* Ciaran Gultnieks |
| 1627 |
* Michael Landers |
| 1628 |
* Ori Avtalion |
| 1629 |
* Garret Buell |
| 1630 |
* Mike Cochrane |
| 1631 |
* Matthew Gregg |
| 1632 |
* Florian Biree |
| 1633 |
* Erik Stambaugh |
| 1634 |
* 'drry' |
| 1635 |
* Gina Haeussge |
| 1636 |
* Tryggvi Björgvinsson |
| 1637 |
* Adrian Lang |
| 1638 |
* Ori Avtalion |
| 1639 |
* Meitar Moscovitz |
| 1640 |
* Ken Sheppardson (Trac server, man-about-town) |
| 1641 |
* Tiago 'gouki' Faria (i18n manager) |
| 1642 |
* Sean Murphy |
| 1643 |
* Leslie Michael Orchard |
| 1644 |
* Eric Helgeson |
| 1645 |
* Ken Sedgwick |
| 1646 |
* Brian Hendrickson |
| 1647 |
* Tobias Diekershoff |
| 1648 |
* Dan Moore |
| 1649 |
* Fil |
| 1650 |
* Jeff Mitchell |
| 1651 |
* Brenda Wallace |
| 1652 |
* Jeffery To |
| 1653 |
* Federico Marani |
| 1654 |
* Craig Andrews |
| 1655 |
* mEDI |
| 1656 |
* Brett Taylor |
| 1657 |
* Brigitte Schuster |
| 1658 |
|
| 1659 |
Thanks also to the developers of our upstream library code and to the |
| 1660 |
thousands of people who have tried out Identi.ca, installed StatusNet, |
| 1661 |
told their friends, and built the Open Microblogging network to what |
| 1662 |
it is today. |