NAME
Convos - Multiuser IRC proxy with web interface
VERSION
0.82
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.
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_ORGANIZATION_NAME
Set this to customize the organization name on the landing page, in the title tag and other various sites. The default is Nordaaker.
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
REDISCLOUD_URL
,REDISTOGO_URL
,DOTCLOUD_DATA_REDIS_URL
or default to "redis://127.0.0.1:6379/1" unlessCONVOS_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
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"
MOJO_REVERSE_PROXY
Set this to a true value if you're using hypnotoad behind a reverse proxy, such as nginx.
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; }
CUSTOM TEMPLATES
Some parts of the Convos templates can include custom content. Example:
# Create a directory where you can store the templates
$ mkdir -p custom-convos/vendor
# Edit the template you want to customize
$ $EDITOR custom-convos/vendor/login_footer.html.ep
# Start convos with CONVOS_TEMPLATES set. Without /vendor at the end
$ CONVOS_TEMPLATES=$PWD/custom-convos convos daemon --listen http://*:5000
Any changes to the templates require the server to restart.
The templates that can be customized are:
vendor/login_footer.html.ep
This template will be included below the form on the
/login
page.vendor/register_footer.html.ep
This template will be included below the form on the
/register
page.
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.
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