Skip to content

jlleblanc/reveal-server

Repository files navigation

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

About

An Express/Socket.IO based server for Reveal.js presentations

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published