Roundcube Webmail Cookbook
A Chef cookbook for Roundcube Webmail, a PHP-based webmail application.
This cookbook purposely does not provide any functionality to setup and configure the database component of Roundcube. It is recommended that a different host is used as the database server.
Create a database and import the initial SQl, see http://trac.roundcube.net/wiki/Howto_Install#DatabaseConfiguration.
MySQL Quick Setup
GRANT ALL ON *.* to roundcube@localhost IDENTIFIED BY 's3cure_as';
Or, all hosts:
GRANT ALL ON *.* to roundcube@'%' IDENTIFIED BY 's3cure_as';
Contribution for other platforms welcome (submit a pull request).
On RedHat based platforms, you need to disable or configure SELinux correctly to work with
php-fpm cookbooks. You can use the
selinux::disabled recipe for that.
node['roundcube']['version']- Roundcube Version string
node['roundcube']['download_url']- URL to fetch the Roundcube tarball from
node['roundcube']['download_checksum']- The checksum of the Roundcube tarball
node['roundcube']['install_dir']- The destination directory to extract Roundcube to (minus the trailing /roundcube)
node['roundcube']['default_host']- The IMAP server host for Roundcube to interface
node['roundcube']['support_url']- The support URL to display for the Roundcube service
node['roundcube']['product_name']- The product name to display for the Roundcube service
node['roundcube']['skin']- The name of the skin to use for Roundcube's appearance
node['roundcube']['listen_port']- The listen port to configure with Roundcube's web server
node['roundcube']['server_name']- The server_name to configure with Roundcube's web server
node['roundcube']['database']['user']- Username to grant access privileges for database
node['roundcube']['database']['password']- Database password for the roundcube database user
node['roundcube']['database']['schema']- Name of the Roundcube database
node['roundcube']['smtp']['server']- The hostname or IP of the SMTP server for Roundcube to interface with for sending mails
node['roundcube']['smtp']['port']- The port of the SMTP server for sending mails
node['roundcube']['smtp']['user']- The SMTP username
node['roundcube']['smtp']['password']- The SMTP password
node['roundcube']['php_packages']- The required PHP packages to install
node['roundcube']['php-fpm']['pool']- The PHP-FPM pool name to use by Roundcube
The default recipe will update the apt package list initially, then install PHP & MySQL client and lastly install and configure Roundcube.
Installs Roundcube as defined by node attributes using ark.
Configures Roundcube only.
Installs and configures NGINX including needed dependencies and a vhost for Roundcube.
A dry recipe that provides a configuration file for an NGINX Roundcube vhost only. The NGINX service is notified to restart.
A recipe that installs the PHP-FPM pool. Used by the
The default recipe will install and configure Roundcube intefacing GMail for both IMAP and SMTP; no web server is configured - it is recommended to also add the
roundcube::nginx recipe to the run_list (Apache HTTPd support TODO or contrib welcome).
When utilizing the nginx recipe, the
php-fpm cookbook is used to configure PHP-FPM and adds a pool named 'roundcube' with the socket residing in
Note: this cookbook does not configure a database server for Roundcube, this should be done independently (see prerequisites above).
For further prototyping Roundcube on a server node: https://github.com/chef-blueprints/roundcube.
For Roundcube itself, see http://trac.roundcube.net/wiki/Howto_Install#Troubleshooting.
License & Authors
- Author:: Chris Fordham (firstname.lastname@example.org)
Copyright 2014 Chris Fordham Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.