Convos - Multiuser IRC proxy with web interface
0.8001
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.
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
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:
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.
You can also customize the config by setting MOJO_CONFIG before running any of the commands above. Example:
MOJO_CONFIG
$ MOJO_CONFIG=$HOME/.convos.conf convos daemon
You can use https://github.com/Nordaaker/convos/blob/release/convos.conf as config file template.
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.
REDISTOGO_URL
DOTCLOUD_DATA_REDIS_URL
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_REDIS_INDEX=2
CONVOS_INVITE_CODE
If set must be appended to register url. Example:
http://your.convos.by/register/some-secret-invite-code
CONVOS_SECURE_COOKIES=1
Set CONVOS_SECURE_COOKIES to true in order to set the secure flag on all session cookies. Requires HTTPS.
MOJO_IRC_DEBUG=1
Set MOJO_IRC_DEBUG for extra IRC debug output to STDERR.
MOJO_LISTEN
List of one or more locations to listen on. This also works for hypnotoad. Example:
MOJO_LISTEN="http://*:8080,https://*:8443"
"listen" in Mojo::Server::Daemon.
MOJO_REVERSE_PROXY
Set this to a true value if you're using hypnotoad behind a reverse proxy, such as nginx.
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; }
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
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.
Holds a Convos::Core::Archive object.
Holds a Mojolicious::Static object pointing to a cache dir. The directory is "/tmp/convos" by default.
Holds a Convos::Core object.
Holds a Convos::Upgrader object.
This method will run once at server start
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.
Jan Henning Thorsen - jhthorsen@cpan.org
jhthorsen@cpan.org
Marcus Ramberg - marcus@nordaaker.com
marcus@nordaaker.com
To install Convos, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Convos
CPAN shell
perl -MCPAN -e shell install Convos
For more information on module installation, please visit the detailed CPAN module installation guide.