Version information
This version is compatible with:
- Puppet Enterprise 2018.1.x, 2017.3.x, 2017.2.x, 2017.1.x, 2016.5.x, 2016.4.x
- Puppet >=4.0.0 <6.0.0
- ,
Start using this module
Add this module to your Puppetfile:
mod 'tohuwabohu-roundcube', '3.3.0'
Learn more about managing modules with a PuppetfileDocumentation
roundcube
Overview
Puppet module to install and manage Roundcube. Roundcube webmail...
is a browser-based multilingual IMAP client with an application-like user interface.
(source: Roundcube website).
Usage
The module uses composer to install 3rd party dependencies specified by Roundcube and to download additional plugins from the Roundcube Plugin Repository.
Note: At the moment, the module relies on git
being installed without explicitly requiring it. Git is to checkout
several pacakge repositories listed in Roundcube's composer.json
.
To install Roundcube with all defaults simply use
class { 'roundcube': }
Specify a certain mail server
class { 'roundcube':
imap_host => 'ssl://localhost',
imap_port => 993,
}
Specify the database to be used by Roundcube
class { 'roundcube':
db_type => 'pgsql',
db_name => 'roundcube',
db_host => 'localhost',
db_username => 'roundcube',
db_password => 'secret',
}
or specify the database DSN directly (e.g. when using SQLite)
class { 'roundcube':
db_dsn => 'sqlite:////var/lib/database/roundcube.db?mode=0646',
}
Specify a couple of plugins to activate
class { 'roundcube':
plugins => [
'emoticons',
'markasjunk',
'password',
],
}
(see below for more information)
Archive Module
This module supports both well-known archive
modules. This allows you to use your favorite archive module (either https://github.com/voxpupuli/puppet-archive or https://github.com/camptocamp/puppet-archive). Please make sure that the required archive module is installed and that you have set the parameter archive_provider
to either camptocamp
(default) or puppet
.
Advanced usage
Specify advanced parameters
class { 'roundcube':
options_hash {
'language' => 'en_US', # override auto-detection
'support_url' => 'http://example.com/helpdesk',
},
}
or even use your own configuration file template
class { 'roundcube':
config_file_template => 'path/to/config_file.erb.',
options_hash => {
'some_param_1' => '...',
},
}
You can then use <%= @options['some_param_1'] %>
in your template. See config/defaults.inc.php
in the Roundcube
directory for a complete list of possible configuration arguments.
Roundcube plugins
Roundcube ships a couple of very useful plugins. If you're happy with the default settings, you can enable plugins by
simply adding the plugin names to the plugins
list:
class { 'roundcube':
plugins => [
'password',
],
}
If you want to override the default configuration, you should declare a roundcube::plugin
resource instead and provide
the custom configuration values
$db_password_encoded = uriescape($db_password)
$password_db_dsn = "pgsql://${db_username}:${db_password_encoded}@localhost/${db_name}"
roundcube::plugin { 'password':
options_hash => {
'password_minimum_length' => 16,
'password_require_nonalpha' => true,
'password_force_new_user' => true,
'password_db_dsn' => $password_db_dsn,
},
}
To install a plugin from the Roundcube plugin repository, you only need to specify the package name and the desired version, e.g.
roundcube::plugin { 'johndoh/markasjunk2':
ensure => 'dev-release-1.9',
options_hash => {
# override the default options
},
}
Limitations
The module has been tested on the following operating systems. Testing and patches for other platforms are welcome.
- Debian 8.0 (Jessie)
- Debian 9.0 (Stretch)
- Ubuntu 14.04 (Trusty Tahr)
- Ubuntu 16.04 (Xenial Xerus)
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
Development
This project uses rspec-puppet and beaker to ensure the module works as expected and to prevent regressions.
gem install bundler
bundle install --path vendor
bundle exec rake spec
bundle exec rake beaker
(note: see Beaker - Supported ENV variables for a list of environment variables to control the default behaviour of Beaker)
2018-06-03 - Release 3.3.0
Two minor improvements
- Add
archive_proxy_server
parameter to configure proxy server when archive module is being used (#10) - Allow
plugins
configuration to be managed separately outside of this module (#12)
2018-04-21 - Release 3.2.0
Quick update to support the most recent 4.x concat version (#8).
2017-11-26 - Release 3.1.0
Summary
This update contains a couple of major improvements which should not break any backward compatibility
- Update to roundcube 1.3.3 mainly because of security update
- Update of the test infrastructure (gems and more test platforms)
- Add support of Puppet 5; in turn support of Puppet 3 has been dropped
- Add support of Debian 9 and Ubuntu 16.04
Note: this will be the last release supporting camptocamp-archive
, the next major release will drop the support.
2016-09-07 - Release 3.0.0
Summary
Add support for both well-known archive providers, puppet-archive and camptocamp-archive (#6).
Note: As part of this change, the dependency on camptocamp-archive
has been dropped so anyone using
librarian-puppet can freely select the archive provider of choice. By default this module will use camptocamp-archive
.
2016-04-24 - Release 2.2.0
Summary
Update the default roundcube version to 1.1.5; packages are now sourced from [http://github.com] instead of [http://downloads.sourceforge.net].
2016-03-25 - Release 2.1.0
Summary
Update the default roundcube version to 1.1.4 and add support for Puppet 4.
Improvements
- Replace ripienaar/module_data with
params.pp
; the module is unlikly to work with Puppet 4 (see Native Puppet 4 Data in Modules) and in order to not break Puppet 3 support it is easier to just stick with a simpleparams.pp
for the moment. - Set
composer_disable_git_ssl_verify
parameter tofalse
by default; previously it was set totrue
for all Debian systems to ensure the bootstrapping of the roundcube app would work even though one of the roundcube git repositories was presenting a SSL certificate not matching the domain. But now the complete installer is used instead, so this flag is no longer required.
Furthermore, the test infrastructure has been overhauled:
- Bump gem dependencies to the latest version
- Bump Puppet module dependencies to the latest version
- Update travis test matrix and add support for Puppet 4
- Replace VirtualBox with Docker for acceptance tests
- Add Debian 8
2015-09-06 - Release 2.0.3
Summary
This release fixes two issues with roundcube 1.1.2
- #1: maintenance cron job is too verbose
- #2: two conflicting pear dependencies installed by composer prevent the sending of emails
2015-08-30 - Release 2.0.2
Summary
Fixes a bug which causes plugins from the plugin repository not being enabled as expected.
2015-08-30 - Release 2.0.0
Summary
Major rewrite after upgrading from Roundcube 0.9.x to 1.0.0.
Dependencies
- willdurand/composer (1.x)
- puppetlabs/concat (>= 1.0.0 < 5.0.0)
- puppetlabs/stdlib (>= 4.6.0 < 5.0.0)