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.
Node version 0.8.x+
First, clone this repository. Assuming you cloned into a folder named reveal-server, use these commands to complete the installation:
$ cd reveal-server
$ npm installNext, 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/* publicOtherwise, 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.jsonThen 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.jsThe server will then be available at http://localhost:3000.
- 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
MIT licensed
Copyright (C) 2012-2013 Joseph L. LeBlanc, http://jlleblanc.com