Roundcube not recognizing plugin

I’ve been searching these forums and Google for most the afternoon. I have HestiaCP 1.1.1 installed. So far everything has been running smooth. I’ve configured SSLs, created emails (w/ SES integration at Exim level), tweaked phpMyAdmin, ran CLI options, etc. Easy transition over from VestaCP. Great job to this amazing team!

I’m currently trying to add a Roundcube+ skin. I’ve done it successfully in the past with Vesta. But I’m not getting Roundcube to recognize the plugin / skin. The only thing I can tell different is the file uses $rcmail_config instead of $config. Any thoughts on why this config looks different than that comes with Roundcube?

1 Like

I don’t know but see here how its done with some other improvements

1 Like

Thanks for sharing the commit. So which folder do I need to place custom Roundcube plugins in?




If I check the pull request it should be /etc/roundcube/plugins @Alex knows it probably better…

1 Like

Ok … that’s where I put them. Maybe these plugins are not compatible with this version Roundcube. I’ll reach out to the author and verify.

Hi @griffiti the location for the plugins mentioned by @eris is the correct one. Did you load them in the Roundcube config file?

1 Like

Well…the config is in a few locations. And that code commit actually updated


so it’s a little confusing.

This config is not directly related to hestia - we use “just” the default repository package. As @eris and @alex have written, /etc/roundcube/ should be the right place and also should get loaded properly.

config file used to be called in previous versions so in Hestia repo the file checks OS version and renames it to if using Ubuntu 18.04 or Ubuntu 20.04.

The file you need to modify is: /etc/roundcube/

If you are referring to:

This is the location of Hestia configuration file which is used to replace the default Roundcube config /etc/roundube/ or /etc/roundcube/ in earlier versions.

1 Like

Thanks for the feedback! I appreciate all the help. I’ll update when I get the plugin configured properly. I’m really enjoying HestiaCP so far. Currently migrating a hosting server w/ clients running VestaCP. It’s been mostly a smooth process. Thanks for all the hard work.

I’d like to give back too. I’ll review the docs and github about how to get involved.


I’ve been through a few config hassles with roundcube on “the other control panel” and as Hestia is based on it, I’m fairly sure its configured in the same way. Basically there are three directories of files pertaining to roundcube. Generally if I’m going to do anything to roundcube I’ll back all three up.

  • The web directory is in /var/lib/roundcube, which contains symlinks to the other locations. This is the one you add to your nginx / apache config.

  • The actual program files are in /usr/share/roundcube/. This is where you update them if you’re upgrading, or adding plugins.

  • The config happens in /etc/roundcube. This is symlinked to from /var/lib/roundcube

So if you’re adding a plugin,

  1. Put the plugin in /usr/share/roundcube/plugins.
  2. Check that the plugin directory (or individual plugins) are symlinked from /var/lib/roundcube/plugins. Add if necessary.
  3. Now edit /etc/roundcube/ and make sure the plugin is added to the array eg
Here's an example. 
# Backup database
mysqldump roundcube > roundcube.sql

# Install plugin
cd /usr/share/roundcube/plugins
tar -zxvf
# Carddav plugin needs these extra steps
cd carddav/
composer install --no-dev

# Make symlink
cd /var/lib/roundcube/plugins
ln -s /usr/share/roundcube/plugins/carddav

# Edit config
cd /etc/roundcube/
grep -n plugins     # finds line number 
nano +380           #edits at line 380
    $config['plugins'] = array( 'password' ); 
    # change to
    $config['plugins'] = array( 'password', 'carddav' );

That should be it. Check the logs in /var/log/roundcube/error.log for any problems.


Thanks for the explanation and breakdown. This helps a lot. I’ll make sure to configure as suggested and perhaps get the desired results.