<?xml version="1.0" encoding="UTF-8"?>
<book xmlns="http://docbook.org/ns/docbook" version="5.0" xml:lang="en"
    xmlns:xi="http://www.w3.org/2001/XInclude">

    <info>
        <title>Guacamole Manual</title>
        <edition>0.9.0</edition>
        <author>
            <personname><firstname>Michael</firstname>
                <surname>Jumper</surname></personname>
            <email>mike.jumper@guac-dev.org</email>
        </author>
    </info>
    <preface xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="preface">
        <title>Introduction</title>
        <para>This book is the official Guacamole manual, written by the upstream developers of the
            Guacamole project. It is also the official general documentation, and an online version
            at <link xlink:href="http://guac-dev.org/">http://guac-dev.org/</link>. It is a work in
            progress which will be continuously updated as Guacamole changes with each
            release.</para>
        <para>We decided to maintain the documentation for Guacamole as a book, as there is an awful
            lot that can be done with the Guacamole web application, and even more that can be done
            with the API. This book is intended to explore the possibilities of Guacamole as an
            application, and to provide documentation necessary to install, maintain, and use
            Guacamole.</para>
        <para>For the sake of users and administrators, we have provided a
            high-level overview of Guacamole's architecture and technical
            design, as well as basic usage instructions and installation
            instructions for common platforms.</para>
        <para>For the sake of developers, we have provided a protocol reference
            and tutorials for common tasks (implementing protocol support,
            integrating Guacamole into your own application, etc.) to give a
            good starting point beyond simply looking at the Guacamole
            codebase.</para>
        <para>This particular edition of the <citetitle>Guacamole Manual</citetitle> covers
            Guacamole version 0.9.0. New releases which create new features or break compatibility
            will result in new editions of the user's guide, as will any necessary corrections. As
            the official documentation for the project, this book will always be freely available in
            its entirety online.</para>
        <indexterm>
            <primary>Guacamole</primary>
            <secondary>history</secondary>
        </indexterm>
        <simplesect>
            <title>What is Guacamole?</title>
            <indexterm>
                <primary>Guacamole</primary>
                <secondary>definition</secondary>
            </indexterm>
            <para>Guacamole is an HTML5 web application that provides access to desktop environments
                using remote desktop protocols (such as VNC or RDP). Guacamole is also the project
                that produces this web application, and provides an API that drives it. This API can
                be used to power other similar applications or services.</para>
            <para>"Guacamole" is most commonly used to refer to the web application produced by the
                Guacamole project using their API. This web application is part of a stack that
                provides a protocol-agnostic remote desktop gateway. Written in JavaScript and using
                only HTML5 and other standards, the client part of Guacamole requires nothing more
                than a modern web browser or web-enabled device when accessing any of the desktops
                served.</para>
            <indexterm>
                <primary>RealMint</primary>
            </indexterm>
            <para>Historically, Guacamole was an HTML5 VNC client, and before that, a JavaScript
                Telnet client called <application
                    xlink:href="http://sourceforge.net/projects/realmint">RealMint</application>
                ("RealMint" is an anagram for "terminal"), but this is no longer the case.
                Guacamole's architecture has grown to encompass remote desktop in general, and can
                be used as a gateway for any number of computers. Originally a proof-of-concept,
                Guacamole is now performant enough for daily use, and all Guacamole development is
                done over Guacamole.</para>
            <para>As an API, Guacamole provides a common and efficient means of streaming text data
                over a JavaScript-based tunnel (which need not use WebSocket), and a client
                implementation which supports the Guacamole protocol and renders the remote display
                when combined with a Guacamole protocol stream from the tunnel.</para>
            <para>It provides cross-browser mouse and keyboard events, an XML-driven on-screen
                keyboard, and synchronized nestable layers with hardware-accelerated compositing.
                Projects that wish to provide remote desktop support over HTML5 can leverage the
                years of research and development that went into Guacamole by incorporating the API
                into their application or service.</para>
        </simplesect>
        <simplesect xml:id="access-from-anywhere" xmlns:xl="http://www.w3.org/1999/xlink">
            <title>Why use Guacamole?</title>
            <para>The principle reason to use Guacamole is constant, world-wide, unfettered access
                to your computers.</para>
            <para>Guacamole allows access one or more desktops from anywhere remotely, without
                having to install a client, particularly when installing a client is not possible.
                By setting up a Guacamole server, you can provide access to any other computer on
                the network from virtually any other computer on the internet, anywhere in the
                world. Even mobile phones or tablets can be used, without having to install
                anything.</para>
            <para>As a true web application whose communication is over HTTP or HTTPS only,
                Guacamole allows you to access your machines from anywhere without violating the
                policy of your workplace, and without requiring the installation of special clients.
                The presence of a proxy or corporate firewall does not prevent Guacamole use.</para>
        </simplesect>
        <simplesect xml:id="access-from-anything" xmlns:xl="http://www.w3.org/1999/xlink">
            <title>Access your computers from any device</title>
            <para>As Guacamole requires only a reasonably-fast, standards-compliant browser,
                Guacamole will run on many devices, including mobile phones and tablets.</para>
            <para>Guacamole is specifically designed to not care whether you have a mouse, keyboard,
                touchscreen, or any combination of those.</para>
            <para>One of the major design philosophies behind Guacamole is that it should never
                assume you have a particular device (ie: a mobile phone) just because your browser
                has or is missing a specific feature (ie: touch events or a smallish screen).
                Guacamole's codebase provides support for both mouse and touch events
                simultaneously, without choosing one over the other, while the interface is intended
                to be usable regardless of screen size.</para>
            <para>Barring bugs, you should be able to use Guacamole on just about any modern device
                with a web browser.</para>
        </simplesect>
        <simplesect xml:id="non-physical-computer" xmlns:xl="http://www.w3.org/1999/xlink">
            <title>Keep a computer in the "cloud"</title>
            <para>Ignoring the buzzword, it's often useful to have a computer that has no dedicated
                physical hardware, where its processing and storage power are handled transparently
                by redundant systems in some remote datacenter.</para>
            <para>Computers hosted on virtualized hardware are more resilient to failures, and with
                so many companies now offering on-demand computing resources, Guacamole is a perfect
                way to access several machines that are only accessible over the internet.</para>
            <para>In fact, all Guacamole development is done on computers like this. This is partly
                because we like the mobility, and partly because we want to ensure Guacamole is
                always performant enough for daily use.</para>
        </simplesect>
        <simplesect xml:id="group-access" xmlns:xl="http://www.w3.org/1999/xlink">
            <title>Provide easy access to a group</title>
            <para>Guacamole allows you to centralize access to a large group of machines, and
                specify on a per-user basis which machines are accessible. Rather than remember a
                list of machines and credentials, users need only log into a central server and
                click on one of the connections listed.</para>
            <para>If you have multiple computers which you would like to access remotely, or you are
                part of a group where each person has a set of machines that they need remote access
                to, Guacamole is a good way to provide that access while also ensuring that access
                is available from anywhere.</para>
        </simplesect>
        <simplesect xml:id="adding-remote-access" xmlns:xl="http://www.w3.org/1999/xlink">
            <title>Adding HTML5 remote access to your existing infrastructure</title>
            <para>As Guacamole is an API, not just a web application, the core components and
                libraries provided by the Guacamole project can be used to add HTML5 remote access
                features to an existing application. You need not use the main Guacamole web
                application; you can write (or integrate with) your own rather easily.</para>
            <para>If you host an on-demand computing service, adding HTML5-based remote access
                allows users of your service more broad access; users need nothing more than a web
                browser to see their computers' screens.</para>
        </simplesect>
    </preface>

    <part xml:id="users-guide">
        <title>User's Guide</title>
        <xi:include href="chapters/architecture.xml"/>
        <xi:include href="chapters/installing.xml"/>
        <xi:include href="chapters/configuring.xml"/>
        <xi:include href="chapters/mysql-auth.xml"/>
        <xi:include href="chapters/ldap-auth.xml"/>
        <xi:include href="chapters/noauth.xml"/>
        <xi:include href="chapters/using.xml"/>
        <xi:include href="chapters/troubleshooting.xml"/>
        <!--<xi:include href="chapters/home-desktop.xml"/>-->
        <!--<xi:include href="chapters/ec2.xml"/>-->
    </part>

    <part xml:id="developers-guide">
        <title>Developer's Guide</title>
        <xi:include href="chapters/protocol.xml"/>
        <xi:include href="chapters/libguac.xml"/>
        <xi:include href="chapters/guacamole-common.xml"/>
        <xi:include href="chapters/guacamole-common-js.xml"/>
        <xi:include href="chapters/guacamole-ext.xml"/>
        <xi:include href="chapters/adding-protocol.xml"/>
        <xi:include href="chapters/custom-auth.xml"/>
        <xi:include href="chapters/yourown.xml"/>
    </part>

    <part xml:id="appendices">
        <title>Appendices</title>
        <xi:include href="appendices/faq.xml"/>
        <xi:include href="references/protocol.xml"/>
        <index xml:id="book-index"></index>
    </part>

</book>

