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 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.
- 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