Version information
This version is compatible with:
- Puppet Enterprise 2023.8.x, 2023.7.x, 2023.6.x, 2023.5.x, 2023.4.x, 2023.3.x, 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x, 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x, 2018.1.x, 2017.3.x
- Puppet >= 5.0.0 < 9.0.0
- FreeBSD , ,
Start using this module
Add this module to your Puppetfile:
mod 'tohuwabohu-roundcube', '3.8.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 9.0 (Stretch)
- Debian 10.0 (Buster)
- Ubuntu 18.04 (Bionic Beaver)
- Ubuntu 20.04 (Focal Fossa)
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
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)
Change log
All notable changes to this project will be documented in this file. The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
v3.8.0 (2024-04-20)
Changed
- Dependency puppetlabs/stdlib: replace deprecated
uriescape
function - CI: Support Puppet 8
- CI: Remove EOL'ed Puppet 6 from test matrix
v3.7.2 (2024-02-18)
- Add support for puppetlabs/stdlib 9.x
v3.7.1 (2023-06-24)
Updated
- OS compatibility: remove Debian 9, add Debian 11, remove Ubuntu 18.04, add Ubuntu 22.04
v3.7.0 (2023-06-22)
Updated
- Replace deprecated
is_
andvalidate_
puppetlabs/stdlib functions with Puppet data types; as data types are available since Puppet 5, this is considered a backward-compatible change
v3.6.1 (2023-06-19)
Improved
- unit-tests: Removed EOL'd Puppet 5 from test matrix
- unit-tests: Bumped Puppet 6 Ruby version to 2.7
Updated
- Puppet module dependencies: puppetlabs-concat and -stdlib
v3.6.0 (2022-10-08)
Summary
Add support for roundcube 1.6. As there are breaking changes, please make sure you've read the changelog. Also don't forget to apply the database changes.
Added
- Allow to configure the user used to execute the composer command; defaults to
root
(#38)
Changed
- Make module compatible with roundcube 1.6 by renaming
default_host
toimap_host
and mergingdefault_port
intoimap_host
. - Fail Puppet run if 1.6 is used with outdated parameters (e.g.
smtp_server
)
v3.5.3 (2022-09-21)
Note: this release has been removed from the forge as it was incompatible with version 1.6 of roundcube.
Changed
- Update roundcube version to 1.6.0 from 1.4.4; this also fixed the composer error complaining about missing plugins in allow-plugins list
- Mark latest versions of stdlib and concat dependencies as compatible
- Replace discontinued plugin johndoh/markasjunk2 in acceptance tests with roundcube/rcsample
v3.5.2 (2021-02-13)
Changed
- Mark all versions of Puppet 7 as supported
v3.5.1 (2021-02-13)
Deprecated
camptocamp
as default forarchive_provider
; will be replaced withpuppet
as per deprecation notice on camptocamp/archive
Changed
- Rename default branch to
main
- Migrate from travis-ci.org to Github Actions due to pending shutdown :sob:
- Add Puppet 7 unit tests
- Replace Ubuntu 16.04 with Ubuntu 20.04 in acceptance test matrix
- Mark latest versions of stdlib and concat dependencies as compatible
v3.5.0 (2020-06-13)
Changed
- Update the default version of roundcube from 1.3.3 to 1.4.4
- Update the test matrix to run agains Puppet 5 and 6; mark module as compatible with Puppet 6
- Update the acceptance test matrix: replaced Debian 7/8 with Debian 9/10 and replaced Ubuntu 12.04/14.04 with 16.04/18.04
Added
- Make compatible with FreeBSD (#16).
v3.4.2 (2019-10-13)
Added
- Add parameter
$cronjobs_manage
(#15).
v3.4.1 (2018-06-12)
This is a bugfix release to fix an unintended side-effect caused by (#12):
defining at least one roundcube::plugin
resource whilst leaving the plugins
parameter untouched did result in a
broken php configuration file.
This has been fixed by ...
- Restoring the original behaviour wrt. the
plugins
parameter - Introducing a new
plugins_manage
parameter to explicitly control the plugin configuration. If this is set tofalse
it is expected that the plugin list is managed separated and hence the module will bail out if there is any plugin configuration detected, either via theplugins
parameter or via theroundcube::plugin
resource. The parameter is set totrue
by default.
v3.4.0 (2018-06-10)
Allow to make puppet composer module optional (#13).
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 < 10.0.0)
- puppetlabs/stdlib (>= 4.6.0 < 10.0.0)