forked from pump-io/pump-io.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
/
params.json
1 lines (1 loc) · 11 KB
/
params.json
1
{"name":"pump.io","tagline":"Social server with an ActivityStreams API","body":"# pump.io\r\n\r\nVersion 0.3.0-alpha.1\r\n\r\nThis is pump.io. It's a stream server that does most of what people\r\nreally want from a social network.\r\n\r\n[![Build Status](https://secure.travis-ci.org/e14n/pump.io.png)](http://travis-ci.org/e14n/pump.io)\r\n\r\n## License\r\n\r\nCopyright 2011-2013, E14N https://e14n.com/\r\n\r\nLicensed under the Apache License, Version 2.0 (the \"License\");\r\nyou may not use this file except in compliance with the License.\r\nYou may obtain a copy of the License at\r\n\r\nhttp://www.apache.org/licenses/LICENSE-2.0\r\n\r\nUnless required by applicable law or agreed to in writing, software\r\ndistributed under the License is distributed on an \"AS IS\" BASIS,\r\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\nSee the License for the specific language governing permissions and\r\nlimitations under the License.\r\n\r\n## What's it for?\r\n\r\nI post something and my followers see it. That's the rough idea behind\r\nthe pump.\r\n\r\nThere's an API defined in the API.md file. It uses activitystrea.ms\r\nJSON as the main data and command format.\r\n\r\nYou can post almost anything that can be represented with activity\r\nstreams -- short or long text, bookmarks, images, video, audio,\r\nevents, geo checkins. You can follow friends, create lists of people,\r\nand so on.\r\n\r\nThe software is useful for at least these scenarios:\r\n\r\n* Mobile-first social networking\r\n* Activity stream functionality for an existing app\r\n* Experimenting with social software\r\n\r\nVersion 0.2.0 will have a Web UI, which will probably make the whole\r\nthing much more enjoyable.\r\n\r\n## Installation\r\n\r\n### Prerequisites\r\n\r\nYou'll need four things to get started:\r\n\r\n* node.js 0.8.0 or higher\r\n* npm 1.1.0 or higher\r\n* A database server (see below)\r\n* The `graphicsmagick` package with the `gm` command\r\n\r\nNote that the requirement to have `gm` available is new for 0.3.0; if\r\nyou're upgrading, you need to install it.\r\n\r\n### Install with npm\r\n\r\nThe easiest way is to install the software globally using npm, like\r\nso:\r\n\r\n npm install -g pump.io\r\n\r\nThat should set up all the files and dependencies for you.\r\n\r\n### Local install\r\n\r\nIf you want to set up the software in its own directory, you can clone\r\nthe git repository, so:\r\n\r\n git clone https://github.com/e14n/pump.io.git\r\n\r\nYou can then install the dependencies using `npm`:\r\n\r\n cd pump.io\r\n npm install\r\n\r\nTo test the install, run:\r\n\r\n npm test\r\n\r\n### Database setup\r\n\r\npump.io uses [databank](https://github.com/evanp/databank)\r\npackage to abstract out the data storage for the system. Any databank\r\ndriver should work. Couchbase, MongoDB and Redis are probably the best\r\nbets for production servers, but the `disk` or even `memory` drivers\r\ncan work for testing.\r\n\r\nIf you're confused, just use the MongoDB one, `databank-mongodb`.\r\n\r\nYou can find other drivers like so:\r\n\r\n npm search databank\r\n\r\nOne tricky bit is that the driver you use has to be available to the\r\n`databank` package. There are two ways to make that work.\r\n\r\nFirst, you can install globally. For example:\r\n\r\n npm install -g databank-mongodb\r\n\r\nUse this if you installed the pump.io package globally.\r\n\r\nSecond, you can install in the `databank` directory.\r\n\r\n cd pump.io/node_modules/databank\r\n npm install databank-mongodb\r\n\r\nNote that you also need to install and configure your database server.\r\n\r\n### Configuration\r\n\r\npump.io uses a JSON file for configuration. It should be at\r\n`/etc/pump.io.json`.\r\n\r\nThe `pump.io.json.sample` file should give you an idea of how to use\r\nit.\r\n\r\nHere are the main configuration keys.\r\n\r\n* *driver* The databank driver you're using. Defaults to \"disk\", which\r\n is probably going to be terrible.\r\n* *params* Databank driver params; see the databank driver README for\r\n details on what to put here.\r\n* *hostname* The hostname of the server. Defaults to \"localhost\" which\r\n doesn't do much for you.\r\n* *address* The address to listen on. Defaults to `hostname`, which is\r\n OK for most systems. Use this if you've got some kind of\r\n load-balancer or NAS or whatever and your local IP doesn't map to\r\n the IP of the hostname.\r\n* *port* Port to listen on. Defaults to 31337, which is no good. You\r\n should listen on 80 or 443 if you're going to have anyone use this.\r\n* *urlPort* Port to use for generating URLs. Defaults to the same as `port`,\r\n but if you're insisting on proxying behind Apache or whatever despite\r\n warnings not to, you can use this.\r\n* *secret* A session-generating secret, server-wide password.\r\n* *noweb* Hide the Web interface. Since it's disabled for this release,\r\n this shouldn't cause you any problems.\r\n* *site* Name of the server, like \"My great social service\".\r\n* *owner* Name of owning entity, if you want to link to it.\r\n* *ownerURL* URL of owning entity, if you want to link to it.\r\n* *nologger* If you're debugging or whatever, turn off\r\n logging. Defaults to false (leave logging on).\r\n* *logfile* Full path to the logfile. Logs are JSON in\r\n [https://github.com/trentm/node-bunyan](bunyan) format.\r\n* *serverUser* If you're listening on a port lower than 1024, you need\r\n to be root. Set this to the name of a user to change to after the\r\n server is listening. `daemon` or `nobody` are good choices, or you\r\n can create a user like `pump` and use that.\r\n* *key* If you're using SSL, the path to the server key, like\r\n \"/etc/ssl/private/myserver.key\".\r\n* *cert* If you're using SSL, the path to the server cert, like\r\n \"/etc/ssl/private/myserver.crt\".\r\n* *uploaddir* If you want to enable file uploads, set this to the\r\n full path of a local directory. It should be writeable and readable by the\r\n 'serverUser'.\r\n* *debugClient* For developers, if you're debugging the Web interface\r\n and you want to use the non-minified version of the JavaScript libraries,\r\n set this to `true`. Defaults to `false`, which is what people should\r\n use in production.\r\n* *firehose* Firehose host running the\r\n [ofirehose](https://github.com/e14n/ofirehose) software. Defaults\r\n to \"ofirehose.com\". Public notices will be ping this firehose\r\n server and from there go out to search engines and the world. If\r\n you want to disconnect from the public web, set this to something\r\n falsy.\r\n* *spamhost* Host running activityspam software to use to test updates for spam.\r\n* *spamclientid* oauth pair for spam server.\r\n* *spamclientsecret* oauth pair for spam server.\r\n* *disableRegistration* default false. Disables registering new users on the\r\n site through the Web or the API.\r\n* *noCDN* Use local copies of the JavaScript libraries instead of the\r\n ones on the CDN. Good for debugging. Defaults to `false`, meaning\r\n \"use the CDN\".\r\n* *requireEmail* Require an email address to register. Should be ignored if email\r\n server isn't configured. Default `false`.\r\n* *smtpserver* Server to use for sending transactional email. If it's not set up,\r\n no email is sent and features like password recovery and email notification won't\r\n work. Defaults to `undefined`.\r\n* *smtpport* Port to connect to on SMTP server. Defaults to `25` which is really the only\r\n sane value.\r\n* *smtpuser* Username to use to connect to SMTP server. Might not be necessary for some\r\n servers. Defaults to `undefined`.\r\n* *smtppass* Password to use to connect to SMTP server. Might not be necessary for some\r\n servers. Defaults to `undefined`.\r\n* *smtpusetls* Try to negotiate using SSL with the SMTP server. Defaults to `true`, because\r\n it's a smart idea.\r\n* *smtpusessl* Only use SSL with the SMTP server. Defaults to `false`. You may need to change\r\n the `smtpport` value if you set this.\r\n* *compress* Use gzip or deflate to compress text output. This can cut down on network\r\n transfers considerably at the expense of memory and CPU on the server. Defaults to `false`.\r\n* *children* Number of children to run. Defaults to 1 for some kinds of DBs, number of CPUS - 1 for others.\r\n* *clients*. You can pre-configure some OAuth credentials if you want to have a replicable\r\n configuration (say, for test scripts or development environments). This setting is\r\n an array of objects, each of which has a 'client_id' and 'client_secret' property, and\r\n an optional 'title' and 'description' object. Most people don't need this. Default is an empty list.\r\n\r\n### Web server proxy\r\n\r\npump.io is designed to be a standalone server. You do not need\r\nto set up an Apache or nginx or lighttpd Web server in front of\r\nit. In fact, that's going to make things harder for you, and stuff\r\nlike WebSockets is going to work less well.\r\n\r\nIf you really insist, check the configuration options carefully. If\r\nyou want http://pump.yourdomain.example/ to proxy to the pump.io\r\ndaemon listening on port 8000 on 127.0.0.1, use configuration options\r\nlike this:\r\n\r\n \"hostname\": \"pump.yourdomain.example\",\r\n \"urlPort\": 80,\r\n \"address\": \"127.0.0.1\",\r\n \"port\": 8000\r\n\r\n## Running the daemon\r\n\r\nYou'll probably get a more reliable experience if you use\r\n[forever](https://npmjs.org/package/forever) to keep the daemon running.\r\n\r\n## Making changes\r\n\r\nIf you're connecting your pump.io site with other software (such as\r\nfederated servers or using Web clients), please note that most of them\r\nsave OAuth keys based on your hostname and listening port. The\r\nfollowing changes may make your relationships stop working.\r\n\r\n* Change of hostname\r\n* Change of port (from 8000 to 80 or even from HTTP to HTTPS)\r\n* Clearing your database or clearing some tables\r\n* Changing user nicknames\r\n\r\nI realize that these kind of changes are normal when someone's\r\nexperimenting with new software, and I'm trying to make the software\r\nmore robust in the face of this kind of change without sacrificing\r\nsecurity, but for now it's a good idea to decide on your \"real\" domain\r\nname first before making connections to other sites.\r\n\r\n## Bugs\r\n\r\nIf you find bugs, you can report them here:\r\n\r\nhttps://github.com/e14n/pump.io/issues\r\n\r\nYou can also email me at evan@e14n.com.\r\n\r\n## Colophon\r\n\r\nThis software includes the following great packages of client-side software.\r\n\r\n* Twitter Bootstrap\r\n* Backbone\r\n* JQuery\r\n* Fine Uploader\r\n* WysiHTML5\r\n* Spin.js\r\n* SockJS\r\n* Select2\r\n* JQuery Easydate\r\n* OAuth.js\r\n\r\nIt also uses these icon sets:\r\n\r\n* Fancy Avatars, © 2009 Brandon Mathis, http://brandonmathis.com/projects/fancy-avatars/ (CC-By)\r\n* Glyphicons, http://glyphicons.com/ (CC-By)\r\n\r\nThis sample photo is used for the main page:\r\n\r\n* http://www.flickr.com/photos/makelessnoise/240072395/ (CC-by)\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}