Version information
This version is compatible with:
- Puppet Enterprise 2017.2.x, 2017.1.x, 2016.5.x, 2016.4.x
- Puppet >=3.0.0 <5.0.0
- ,
Start using this module
Add this module to your Puppetfile:
mod 'tohuwabohu-roundcube', '2.1.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)
##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 7.0 (Wheezy)
- Debian 8.0 (Jessie)
- Ubuntu 12.04 (Precise Pangolin)
- Ubuntu 14.04 (Trusty Tahr)
##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)
##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
- camptocamp/archive (0.x)
- willdurand/composer (1.x)
- puppetlabs/concat (>= 1.0.0 < 3.0.0)
- puppetlabs/stdlib (>= 4.6.0 < 5.0.0)