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"