The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
NAME
    Convos - Multiuser IRC proxy with web interface

VERSION
    0.6

DESCRIPTION
    Convos is to a multi-user IRC Proxy, that also provides a easy to use
    Web interface. Feature list:

    *   Always online

        The backend server will keep you logged in and logs all the activity
        in your archive.

    *   Archive

        All chats will be logged and indexed, which allow you to search in
        earlier conversations.

    *   Avatars

        The chat contains profile pictures which can be retrieved from
        Facebook or from gravatar.com.

    *   Include external resources

        Links to images and video will be displayed inline. No need to click
        on the link to view the data.

  Architecture principles
    *   Keep the JS simple and manageable

    *   Use Redis to manage state / publish subscribe

    *   Archive logs in plain text format, use ack to search them.

    *   Bootstrap-based user interface

RUNNING CONVOS
    Convos has sane defaults so after installing Convos you should be able
    to just run it:

      # Install
      $ cpanm Convos
      # Run it
      $ convos backend &
      $ convos daemon

    The above works, but if you have a lot of users you probably want to use
    hypnotoad instead of "daemon":

      $ hypnotoad $(which convos)

    The command above will start a full featured, UNIX optimized, preforking
    non-blocking webserver. Run the same command again, and the webserver
    will hot reload the source code without loosing any connections.

  Configuration
    You can also customize the config by setting "MOJO_CONFIG" before
    running any of the commands above. Example:

      $ MOJO_CONFIG=$HOME/.convos.conf convos daemon

    You can use
    <https://github.com/Nordaaker/convos/blob/release/convos.conf> as config
    file template.

  Environment
    Convos can be configured with the following environment variables:

    *   CONVOS_BACKEND_EMBEDDED=1

        Set CONVOS_MANUAL_BACKEND to a true value if you want to force the
        frontend to start the backend embedded. This is useful if you want
        to test Convos with morbo.

    *   CONVOS_DEBUG=1

        Set CONVOS_DEBUG for extra debug output to STDERR.

    *   CONVOS_MANUAL_BACKEND=1

        Disable the frontend from automatically starting the backend.

    *   CONVOS_REDIS_URL

        This is the URL to the Redis backend, and should follow this format:

          redis://x:password@server:port/database_index
          redis://127.0.0.1:6379/1 # suggested value

        Convos will use "REDISTOGO_URL" or "DOTCLOUD_DATA_REDIS_URL" if
        "CONVOS_REDIS_URL" is not set.

        It is also possible to set "CONVOS_REDIS_INDEX=2" to use the
        database index 2, instead of the default. This is useful when
        "REDISTOGO_URL" or "DOTCLOUD_DATA_REDIS_URL" does not contain the
        datbase index.

    *   CONVOS_INVITE_CODE

        If set must be appended to register url. Example:

          http://your.convos.by/register/some-secret-invite-code

    *   MOJO_IRC_DEBUG=1

        Set MOJO_IRC_DEBUG for extra IRC debug output to STDERR.

  HTTP headers
    *   X-Request-Base

        Set this header if you are mounting Convos under a custom path.
        Example with nginx:

          # mount the application under /convos
          location /convos {
            # remove "/convos" from the forwarded request
            rewrite ^/convos(.*)$ $1 break;

            # generic headers for correct handling of ws and http
            proxy_http_version 1.1;
            proxy_set_header Connection "upgrade";
            proxy_set_header Host $host;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Host $host;

            # set this if you are running SSL
            proxy_set_header X-Forwarded-HTTPS 1;

            # inform Convos the full location where it is mounted
            proxy_set_header X-Request-Base "https://some-domain.com/convos";

            # tell nginx where Convos is running
            proxy_pass http://10.0.0.10:8080;
          }

RESOURCES
    *   Homepage: <http://convos.by>

    *   Project page: <https://github.com/Nordaaker/convos>

    *   Icon:
        <https://raw.github.com/Nordaaker/convos/master/public/image/icon.sv
        g>

    *   Logo:
        <https://raw.github.com/Nordaaker/convos/master/public/image/logo.sv
        g>

SEE ALSO
    *   Convos::Archive

        Mojolicious controller for IRC logs.

    *   Convos::Client

        Mojolicious controller for IRC chat.

    *   Convos::User

        Mojolicious controller for user data.

    *   Convos::Core

        Backend functionality.

ATTRIBUTES
  archive
    Holds a Convos::Core::Archive object.

  cache
    Holds a Mojolicious::Static object pointing to a cache dir. The
    directory is "/tmp/convos" by default.

  core
    Holds a Convos::Core object.

  upgrader
    Holds a Convos::Upgrader object.

METHODS
  startup
    This method will run once at server start

COPYRIGHT AND LICENSE
    Copyright (C) 2012-2013, Nordaaker.

    This program is free software, you can redistribute it and/or modify it
    under the terms of the Artistic License version 2.0.

AUTHOR
    Jan Henning Thorsen - "jhthorsen@cpan.org"

    Marcus Ramberg - "marcus@nordaaker.com"