Skip to content
A Chef cookbook for Roundcube Webmail
Ruby HTML
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
attributes
recipes
templates/default
test
.drone.yml
.gitignore
.kitchen.yml
.rubocop.yml
.travis.yml
Berksfile
CHANGELOG.md
Cheffile
Dockerfile
Gemfile
Guardfile
LICENSE
README.md
Rakefile
Thorfile
Vagrantfile
chefignore
metadata.rb

README.md

Roundcube Webmail Cookbook

Roundcube Cookbook Build Status Code Climate

A Chef cookbook for Roundcube Webmail, a PHP-based webmail application.

Upstream:

Prerequisites

Database Setup

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 privileges
GRANT ALL ON *.* to roundcube@localhost IDENTIFIED BY 's3cure_as';

Or, all hosts:

GRANT ALL ON *.* to roundcube@'%' IDENTIFIED BY 's3cure_as';

Requirements

Supported Platforms

  • Debian
  • Ubuntu
  • CentOS
  • Fedora
  • RedHat

Contribution for other platforms welcome (submit a pull request).

Other Requirements

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.

Attributes

  • 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

Recipes

roundcube::default

The default recipe will update the apt package list initially, then install PHP & MySQL client and lastly install and configure Roundcube.

roundcube::install

Installs Roundcube as defined by node attributes using ark.

roundcube::configure

Configures Roundcube only.

roundcube::nginx

Installs and configures NGINX including needed dependencies and a vhost for Roundcube.

roundcube::nginx_vhost

A dry recipe that provides a configuration file for an NGINX Roundcube vhost only. The NGINX service is notified to restart.

roundcube::php_fpm

A recipe that installs the PHP-FPM pool. Used by the roundcube::nginx recipe.

Usage

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).

Prototyping

For further prototyping Roundcube on a server node: https://github.com/chef-blueprints/roundcube.

Troubleshooting

For Roundcube itself, see http://trac.roundcube.net/wiki/Howto_Install#Troubleshooting.

License & Authors

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.
You can’t perform that action at this time.