NAME Convos - Multiuser IRC proxy with web interface VERSION 0.7 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 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: * Project page: * Icon: * Logo: 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"