Embeddable cross-platform chat for communities
JavaScript CSS HTML Shell
Latest commit aa6caeb Dec 11, 2015 @harishkumarv harishkumarv committed with Chandrakanta Shatapathy pinned post hack.
Permalink
Failed to load latest commit information.
.git-hooks Add pre-commit hook for .jsx and .es6 files Jul 8, 2015
anti-abuse fix Dec 4, 2015
anti-flood Adding more testcases. Feb 23, 2015
authorizer Adding the appName property to config. Oct 13, 2015
browserid-auth Deleting old guest users on sign up. Aug 14, 2015
cache Adding caching for getEntities query. Nov 12, 2015
censor Storing guests into postgres. Aug 13, 2015
customization [refactor] build: use single .js extension instead of .jsx and .es6 Sep 16, 2015
email fixed Dec 15, 2015
entityloader fixed typo Nov 12, 2015
facebook Merge branch 'master' into guest2pg Aug 17, 2015
featured Adding the text property to getThreads query. Oct 16, 2015
github Cleanup files Apr 2, 2015
google Deleting old guest users on sign up. Aug 14, 2015
history Adding the appName property to config. Oct 13, 2015
hn-entityloader fixing the unfollow issue. Nov 12, 2015
http temp fix for undefined Nov 20, 2015
init Remove old files Jun 17, 2015
irc Update roomEvent.js Oct 22, 2015
ircClient 1. Removed occupant and member list loading for all actions other tha… Jun 23, 2015
jws [refactor] dev: remove app-utils Jul 31, 2015
lib hot fixes on updating notes Nov 23, 2015
notability fixed typo Oct 22, 2015
notification [refactor] build: remove unnecessary linter config Sep 16, 2015
persistence Implement new API Apr 3, 2015
public Adding the consent screen image. Oct 13, 2015
push-notification [fix] notification: send group to the client Sep 10, 2015
redis-storage Update change-user.js Nov 26, 2015
search Adding the presensehandling rule. Mar 4, 2015
sitemap Adding more testcases. Feb 23, 2015
storage fixed few tests Nov 23, 2015
store Fix isUserAdmin method in store Nov 6, 2015
superuser Adding more testcases. Feb 23, 2015
test updated test Oct 29, 2015
testauth added the signup auth Apr 27, 2015
thread-color Fixing the threader bug in handling new conversations. Jun 19, 2015
threader [refactor] build: remove unnecessary linter config Sep 16, 2015
tools Merge branch 'master' into misc-fixes Dec 4, 2015
translation Adding more testcases. Feb 23, 2015
twitter changed the priority & typo Oct 13, 2015
ui removed twitter client Dec 7, 2015
upload Don't allow guests to upload files Jun 2, 2015
validator pinned post hack. Jan 7, 2016
widget [refactor] build: remove unnecessary linter config Sep 16, 2015
.babelrc Add Babel config Nov 16, 2015
.brackets.json Add ESLint to brackets config May 8, 2015
.editorconfig [fix] dev: add .yaml and .yml files to .editorconfig Aug 7, 2015
.eslintrc Update to Babel 6 Nov 16, 2015
.gitignore Add Babel config Nov 16, 2015
.hound.yml Added hound config Mar 21, 2015
.jsbeautifyrc Adding more testcases. Feb 23, 2015
.scss-lint.yml Update scss lint config Aug 7, 2015
.travis.yml avoid npm update Nov 16, 2015
LICENSE.md Adding more testcases. Feb 23, 2015
README.md Manual installation instructions Nov 27, 2015
bower.json Migrate to engine.io Sep 23, 2015
client-config-defaults.js Adding the appName property to config. Oct 13, 2015
client-config-template.js renamed template files & added jws key Jul 28, 2015
gulpfile.babel.js disabling lastseentime in queries. Nov 19, 2015
index.js moving the plugins list to the config file. Oct 7, 2015
merge-config.js Adding more testcases. Feb 23, 2015
newrelic.js fix Dec 4, 2015
package.json added bower Nov 20, 2015
server-config-defaults.js changed email sending timing Dec 8, 2015
server-config-template.js renamed template files & added jws key Jul 28, 2015

README.md

travis status

Scrollback, where communities hang out

Scrollback provides a free-to-use service at scrollback.io. If you’re planning to run a community chat room, you should try it out now!

You can even embed Scrollback room on your webpage/blog.

Install

1. Install dependencies

  • Node.js (0.12 or higher)
  • Postgres (9.4 or higher)
  • Redis
  • Gulp (globally)

2. Create Postgres db and user for scrollback (recommended)

If you skip this step, configure Scrollback to use an existing user and database using the Configure step below.

Sign into psql as the administrator account (postgres in Linux, the user who installed PostgreSQL in OSX)

CREATE USER scrollback PASSWORD scrollback;
CREATE DATABASE scrollback;
\c scrollback
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO scrollback;

3. Create scrollback tables

psql -U scrollback < tools/pg/sbentity.sql
psql -U scrollback < tools/pg/sbcontent.sql
psql -U scrollback < tools/pg/sbnotes.sql

4. Install npm dependencies

npm install

5. Build the client

gulp

You must rebuild the client every time you change client configuration or modify any of the client code.

6. Run Scrollback

node index.js

Scrollback will print warnings about newrelic (a performance monitoring service) not being configured and about not being able to connect to the IRC and Threader processes. You can ignore them.

If you wish to connect to IRC, run the Scrollback IRC bouncer as root:

node ircClient/server.js

Running as root is necessary because it needs to listen on port 113 (identd) which is required by some IRC networks.

Configure (optional)

Creating server-config.js and client-config.js files where you can override values from server-config-defaults.js and client-config-defaults.js. Example:

module.exports = {
    core: {
        name: "scrollback"
    }
}

Contribute to Scrollback

We maintain a wiki that explains Scrollback architecture. It's a work-in-progress so please let us know if there are gaps in the content. Better yet, feel free to send us a Pull Request to make it better.

License

Scrollback is licensed under GNU Affero General Public License. For more information see http://www.gnu.org/licenses/agpl-3.0.html