2017-11-01 18:01:47 +01:00
Download Roundcube 1.3.x to the web htdocs directory and extract it (here `rc/` ):
2017-05-06 00:22:26 +02:00
```
2017-11-24 01:51:18 +01:00
cd data/web
2017-11-01 18:01:47 +01:00
wget -O - https://github.com/roundcube/roundcubemail/releases/download/1.3.x/roundcubemail-1.3.x-complete.tar.gz | tar xfvz -
2017-05-06 00:22:26 +02:00
# Change folder name
2017-11-01 18:01:47 +01:00
mv roundcubemail-1.3.x rc
2017-05-06 00:22:26 +02:00
# Change permissions
chown -R root: rc/
```
Create a file `data/web/rc/config/config.inc.php` with the following content.
2019-07-31 12:11:39 +02:00
**Change the `des_key` parameter to a random value.** It is used to temporarily store your IMAP password. The "db_prefix" is optional but recommended.
2017-05-06 00:22:26 +02:00
```
< ?php
error_reporting(0);
if (!file_exists('/tmp/mime.types')) {
2019-01-10 07:51:45 +01:00
file_put_contents("/tmp/mime.types", fopen("http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types", 'r'));
2017-05-06 00:22:26 +02:00
}
$config = array();
2019-01-10 07:51:45 +01:00
$config['db_dsnw'] = 'mysql://' . getenv('DBUSER') . ':' . getenv('DBPASS') . '@mysql/' . getenv('DBNAME');
2017-05-06 00:22:26 +02:00
$config['default_host'] = 'tls://dovecot';
$config['default_port'] = '143';
$config['smtp_server'] = 'tls://postfix';
$config['smtp_port'] = 587;
$config['smtp_user'] = '%u';
$config['smtp_pass'] = '%p';
$config['support_url'] = '';
$config['product_name'] = 'Roundcube Webmail';
2019-01-09 08:50:53 +01:00
$config['des_key'] = 'yourrandomstring_changeme';
2017-05-06 00:22:26 +02:00
$config['log_dir'] = '/dev/null';
$config['temp_dir'] = '/tmp';
$config['plugins'] = array(
2019-01-09 08:50:53 +01:00
'archive',
'managesieve'
2017-05-06 00:22:26 +02:00
);
$config['skin'] = 'larry';
$config['mime_types'] = '/tmp/mime.types';
$config['imap_conn_options'] = array(
2019-01-09 08:50:53 +01:00
'ssl' => array('verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true)
2017-05-06 00:22:26 +02:00
);
2017-11-01 18:01:47 +01:00
$config['enable_installer'] = true;
2017-05-06 00:22:26 +02:00
$config['smtp_conn_options'] = array(
2019-01-09 08:50:53 +01:00
'ssl' => array('verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true)
);
$config['managesieve_port'] = 4190;
$config['managesieve_host'] = 'tls://dovecot';
$config['managesieve_conn_options'] = array(
'ssl' => array('verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true)
2017-05-06 00:22:26 +02:00
);
2019-01-09 08:50:53 +01:00
// Enables separate management interface for vacation responses (out-of-office)
// 0 - no separate section (default),
// 1 - add Vacation section,
// 2 - add Vacation section, but hide Filters section
$config['managesieve_vacation'] = 1;
2019-07-31 12:11:39 +02:00
$config['db_prefix'] = 'mailcow_rc1';
2019-01-09 08:50:53 +01:00
2017-05-06 00:22:26 +02:00
```
Point your browser to `https://myserver/rc/installer` and follow the instructions.
Initialize the database and leave the installer.
**Delete the directory `data/web/rc/installer` after a successful installation!**
### Enable change password function in Roundcube
Open `data/web/rc/config/config.inc.php` and enable the password plugin:
```
...
$config['plugins'] = array(
'archive',
'password',
);
...
```
Open `data/web/rc/plugins/password/password.php` , search for `case 'ssha':` and add above:
```
case 'ssha256':
$salt = rcube_utils::random_bytes(8);
$crypted = base64_encode( hash('sha256', $password . $salt, TRUE ) . $salt );
$prefix = '{SSHA256}';
break;
```
Open `data/web/rc/plugins/password/config.inc.php` and change the following parameters (or add them at the bottom of that file):
```
$config['password_driver'] = 'sql';
$config['password_algorithm'] = 'ssha256';
$config['password_algorithm_prefix'] = '{SSHA256}';
$config['password_query'] = "UPDATE mailbox SET password = %P WHERE username = %u";
```
2017-06-11 02:31:01 +02:00
2018-10-03 22:54:41 +02:00
### Integrate CardDAV addressbooks in Roundcube
Download the latest release of [RCMCardDAV ](https://github.com/blind-coder/rcmcarddav/ ) to the Roundcube plugin directory and extract it (here `rc/plugins` ):
```
cd data/web/rc/plugins
wget -O - https://github.com/blind-coder/rcmcarddav/releases/download/v3.0.3/carddav-3.0.3.tar.bz2 | tar xfvj -
2018-10-06 22:56:10 +02:00
chown -R root: carddav/
2018-10-03 22:54:41 +02:00
```
Copy the file `config.inc.php.dist` to `config.inc.php` (here in `rc/plugins/carddav` ) and append the following preset to the end of the file - don't forget to replace `mx.example.org` with your own hostname:
```
$prefs['SOGo'] = array(
'name' => 'SOGo',
'username' => '%u',
'password' => '%p',
'url' => 'https://mx.example.org/SOGo/dav/%u/',
'carddav_name_only' => true,
'use_categories' => true,
'active' => true,
'readonly' => false,
'refresh_time' => '02:00:00',
'fixed' => array( 'active', 'name', 'username', 'password', 'refresh_time' ),
'hide' => false,
);
```
2018-10-06 22:56:10 +02:00
Please note, that this preset only integrates the default addressbook (the one that's named "Personal Address Book" and can't be deleted). Additional addressbooks are currently not automatically detected but can be manually added within the roundecube settings.
2018-10-03 22:54:41 +02:00
Enable the plugin by adding `carddav` to `$config['plugins']` in `roundcube/config/config.inc.php` .
If you want to remove the default addressbooks (stored in the Roundcube database), so that only the CardDAV addressbooks are accessable, append `$config['address_book_type'] = '';` to the config file `data/web/rc/config/config.inc.php` .
2017-06-12 12:43:44 +02:00
---
2017-06-11 06:40:03 +02:00
Optionally, you can add Roundcube's link to the mailcow Apps list.
2017-06-11 02:31:01 +02:00
To do this, open or create `data/web/inc/vars.local.inc.php` and add the following code-block:
2017-06-11 06:40:35 +02:00
*NOTE: Don't forget to add the `<?php` delimiter on the first line*
2017-06-11 02:31:01 +02:00
````
...
$MAILCOW_APPS = array(
array(
'name' => 'SOGo',
'link' => '/SOGo/'
),
array(
2017-06-12 12:46:45 +02:00
'name' => 'Roundcube',
2017-06-13 14:58:24 +02:00
'link' => '/rc/'
2017-06-11 02:31:01 +02:00
)
);
...
````