NAME
Convos - Multiuser IRC proxy with web interface
VERSION
0.5
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_PING_INTERVAL=30
Set how often to send "keep-alive" through the web socket. Default is every 30 second.
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
orDOTCLOUD_DATA_REDIS_URL
ifCONVOS_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 whenREDISTOGO_URL
orDOTCLOUD_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.svg
Logo: https://raw.github.com/Nordaaker/convos/master/public/image/logo.svg
SEE ALSO
-
Mojolicious controller for IRC logs.
-
Mojolicious controller for IRC chat.
-
Mojolicious controller for user data.
-
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