Home

Awesome

docker-reveal - A Docker image for reveal.js presentations

This docker image is useful for creating reveal.js presentations. It uses the Yeoman generator generator-reveal under the hoods.

Features

Initialization

All your slides will be stored belong a certain directory, referred to $SLIDES from now on. In order to initialize a first simple set of slides (as yo reveal would do) mount $SLIDES into the container and run this image with the option -i:

docker run -ti \
           -p 9000:9000 -p 57575:57575 -p 35729:35729 \
           -v $SLIDES:/slides \
           rhuss/docker-reveal -i

This will copy over a set of slides and start an HTTP server on port 9000. You can visit the demo slides by opening your browser at http://dockerhost:9000/ where dockerhost is the IP address of you docker host (e.g. localhost).

You can now edit the files in $SLIDES. Any change will be picked up immediately and if you have LiveReload installed your browser will refresh immediately.

Creating slides

Slides can be created easily with yo:

docker run -ti \
           -v $SLIDES:/slides \
           rhuss/docker-reveal -n "Slide title" [--markdown|--notes|--attributes]

This can be also done manually:

More options are available, please refer to generator-reveal's documentation for details.

Tips

Finishing up

When you are finished with authoring you can create your own image containing your full presentation. This could also contain the source of your applications which you demo. An example Dockerfile could look like:

FROM rhuss/docker-reveal:latest

# Add presentation slides (add here the $SLIDES dir as source directory
ADD slides/ /

# Optionally checkout your source code and warm it up
RUN cd / && \
    git clone https://github.com/rhuss/docker-maven-sample.git && \
    cd docker-maven-sample && \
    mvn install

8bitdo Zero support

In case you own a 8bitdo Zero and want to use it as remote control, set in you Browser's localStorage (see Developer console) the key use8Bitdo to true. Then you can use the following buttons for the following actions:

ButtonAction
LNext slide
RPrevious slide
UpUp one slide
DownDown one slide
LeftLeft one slide
RightRight one slide
SelectMenu
StartOverview
APause (Black)
YFull Screen

When in menu mode the button mappings is:

ButtonAction
LSelect menu item
UpUp in menu list
DownDown in menu list
LeftLeft panel
RightRight Panel
SelectLeave Menu
AFirst position in list
YLast position in list
XPage up in list
YPage down in list

Gotchas

The terminal emulation works quite nicely but is of course completely insecure with respect to your container. Please keep this in mind. Also, the dynamic sizing of the iframe providing the Butterfly terminal emulation could be improved. I happily will apply pull requests here ;-)