A Chef cookbook for Roundcube Webmail, a PHP-based webmail application.
Upstream:
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.
GRANT ALL ON *.* to roundcube@localhost IDENTIFIED BY 's3cure_as';
Or, all hosts:
GRANT ALL ON *.* to roundcube@'%' IDENTIFIED BY 's3cure_as';
- Debian
- Ubuntu
- CentOS
- Fedora
- RedHat
Contribution for other platforms welcome (submit a pull request).
On RedHat based platforms, you need to disable or configure SELinux correctly to work with mysql
and php-fpm
cookbooks. You can use the selinux::disabled
recipe for that.
node['roundcube']['version']
- Roundcube Version stringnode['roundcube']['download_url']
- URL to fetch the Roundcube tarball fromnode['roundcube']['download_checksum']
- The checksum of the Roundcube tarballnode['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 interfacenode['roundcube']['support_url']
- The support URL to display for the Roundcube servicenode['roundcube']['product_name']
- The product name to display for the Roundcube servicenode['roundcube']['skin']
- The name of the skin to use for Roundcube's appearancenode['roundcube']['listen_port']
- The listen port to configure with Roundcube's web servernode['roundcube']['server_name']
- The server_name to configure with Roundcube's web servernode['roundcube']['database']['user']
- Username to grant access privileges for databasenode['roundcube']['database']['password']
- Database password for the roundcube database usernode['roundcube']['database']['schema']
- Name of the Roundcube databasenode['roundcube']['smtp']['server']
- The hostname or IP of the SMTP server for Roundcube to interface with for sending mailsnode['roundcube']['smtp']['port']
- The port of the SMTP server for sending mailsnode['roundcube']['smtp']['user']
- The SMTP usernamenode['roundcube']['smtp']['password']
- The SMTP passwordnode['roundcube']['php_packages']
- The required PHP packages to installnode['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 roundcube::nginx
recipe.
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 /var/run/php-fpm-roundcube.sock
.
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.
- Author:: Chris Fordham (chris@fordham-nagy.id.au)
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.