An Express/Socket.IO based server for Reveal.js presentations
JavaScript
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
public
routes
views
.gitignore
LICENSE
README.mdown
app.js
auth.js
config.js
config.json.dist
package.json
presenter.js
viewer.js

README.mdown

Reveal Server

This server is designed so you can copy a Reveal.js presentation into the public folder, then give that presentation remotely. The /login route will allow you to authenticate as the presenter. You'll then be redirected back to the presentation, and all of your slide/fragment changes will be broadcast to anyone visiting the site.

Prerequisites

Node version 0.8.x+

Installation

First, clone this repository. Assuming you cloned into a folder named reveal-server, use these commands to complete the installation:

$ cd reveal-server
$ npm install

Next, copy your Reveal.js presentation into the public folder. Make sure that the plugin/slidesync folder inside of public is preserved. If you're on a Mac, this is best done from the command line as Finder will clobber existing folders:

$ cp -r /path/to/existing/reveal/presentation/* public

Otherwise, just make sure that reveal-server/public/plugin/slidesync is still in place after you copy.

Next, you'll want to set up a password and session secret so that you can log in as the presenter. If you're trying this out locally, copy config.json.dist to config.json:

$ cp config.json.dist config.json

Then open config.json and edit the values to your liking:

{
	"password": "shh, this is your password",
	"session_secret": "keyboard cat"
}

If you're using Reveal Server in a production environment, omit config.json and set the environment variables password and session_secret directly.

Finally, you will need to edit the configuration of your presentation's index.html file. Open reveal-server/public/index.html and add the following lines in the middle of the dependencies array:

{ src: '/socket.io/socket.io.js'},
{ src: 'plugin/slidesync/slidesync.js'},

(Omit the final , off the end of { src: 'plugin/slidesync/slidesync.js'}, if it is the last dependency.)

Now you are ready to start the server:

$ node app.js

The server will then be available at http://localhost:3000.

Todos

  • Create an easier way to configure the server for first time use
  • Create a command line tool for creating, starting, stopping, etc...
  • Authenticate over the websockets, forgoing sessions and Express altogether
  • Keep track of latest slide so that late viewers are automatically taken to the correct place
  • Add option for disabling controls for viewers when the presentation is live

License

MIT licensed

Copyright (C) 2012-2013 Joseph L. LeBlanc, http://jlleblanc.com