Yes. Convos supports plugins, but there have not yet been any plugins developed. We hope to implement #244 and #90 as the first core plugins.
Look at the configuration guide to see which configuration parameters that have to be set to load a plugin.
Yes, but Convos and the web server needs to be configured properly and WebSockets need to be supported through the chain.
The first thing is that the environment variable MOJO_REVERSE_PROXY must be set to a true value.
The other thing is that the reverse proxy need to pass on some HTTP headers to Convos, so correct URLs will be generated. Below are two examples for setting up Convos behind nginx or Apache. Here are the important headers:
Here is a complete example on how to start Convos, and configur either nginx or Apache:
Start convos behind a reverse proxy:
$ MOJO_REVERSE_PROXY=1 ./script/convos daemon --listen http://127.0.0.1:8080
Example nginx config:
# Host and port where convos is running
upstream convos { server 127.0.0.1:8080; }
server {
listen 80;
server_name your-domain.com;
# Mount convos under http://your-domain.com/whatever/convos
location /whatever/convos {
# Pass requests on to the upstream defined above
rewrite ^/whatever/convos/?(.*)$ /$1 break;
proxy_pass http://convos;
# Instruct Convos to do the right thing regarding
# HTTP and WebSockets
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# Enable Convos to construct correct URLs by passing on custom
# headers. X-Request-Base is only required if "location" above
# is not "/".
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Request-Base "$scheme://$host/whatever/convos";
}
}
Example Apache config:
<VirtualHost your-domain.com:80>
ServerAdmin [email protected]
ServerName your-domain.com
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
# Enable Convos to construct correct URLs by passing on custom headers.
ProxyRequests Off
ProxyPreserveHost On
RequestHeader set X-Forwarded-Proto "http"
# Pass requests on to Convos
ProxyPass /events ws://localhost:8080/events
ProxyPass / http://localhost:8080/ keepalive=On
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
Convos does not daemonize. It runs in foreground, so if you close a terminal application, such as putty it will also kill any running instance of Convos.
To prevent this, you can run this command:
$ nohup script/convos daemon &
The &
at the end will send Convos to the background. nohup
is mostly optional, but is usually a good idea.
You might have gotten a new version of Perl which is not compatible with the modules you have already installed. To fix this issue, you can try to re-install Convos:
# Go to where you downloaded Convos
cd /path/to/convos/
# Purge all the installed packages
rm -rf local/{bin,lib,man}
# Reinstall packages
$ perl script/cpanm -n -l $PWD/local Module::Install
$ ./script/convos install
Please contact us if the above instructions does not work.
In most of the cases it’s either because we haven’t thought about it or haven’t had time to implement it yet. It might also be because we do not want to implement certain features. We do not want Convos to support every weird feature, since we want both the user experience and code base to be clean.
Please submit an issue, come and talk with us in #convos on Freeenode or send a tweet to @convosby.