User Tools

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
services:roundcube [2025/02/18 15:07] – [Autostart] willyservices:roundcube [2025/03/06 13:15] (current) willy
Line 9: Line 9:
 Since i don't want to oberate the external server with containers, i will show you how to install Roundcube on bare metal. It's relatively easy anyway. Since i don't want to oberate the external server with containers, i will show you how to install Roundcube on bare metal. It's relatively easy anyway.
  
-You need PHP and NGINX installed. PHP requires some extensions like PDO and zip, so: +You need PHP and NGINX installed. PHP requires some extensions like PDO and zip, also Roundcube requires aspell to be installed for syntax checking, which is controlled by L10N variable in /etc/portage/make.conf:
 <code bash> <code bash>
 echo app-eselect/eselect-php fpm >> /etc/portage/package.use/php echo app-eselect/eselect-php fpm >> /etc/portage/package.use/php
 echo dev-lang/php fpm sqlite zip spell intl pdo curl exif gd xmlreader writer >> /etc/portage/package.use/php echo dev-lang/php fpm sqlite zip spell intl pdo curl exif gd xmlreader writer >> /etc/portage/package.use/php
-emerge -vp php+echo 'L10N="it de fr en"' >> /etc/portage/make.conf 
 +emerge -vp php aspell 
 +# The following is optional, if you haven't yet created a web user: 
 +# useradd --shell /sbin/nologin web
 </code> </code>
  
 Since i use NGINX, the fpm flag needs also to be enabled. Since i use NGINX, the fpm flag needs also to be enabled.
 +
 +If you haven't yet done so, ensure your php-fpm is running as user web by checking the rows:
 +<code>
 +user = web
 +group = web
 +</code>
 +in file **/etc/php/fpm-php8.2/fpm.d/www.conf**
 +
  
 ===== Installation ===== ===== Installation =====
Line 25: Line 35:
 Since i want to share PHP between Rouncube and other public services, due to the limited resources of the external server, i will not create a dedicated user, which would require also to run multiple PHP copies. Since i want to share PHP between Rouncube and other public services, due to the limited resources of the external server, i will not create a dedicated user, which would require also to run multiple PHP copies.
  
-The webmail will be installed under **/home/web/roundcube**:+The webmail will be installed under **/home/web/roundcube**. Run the following commands ar user root:
 <code bash> <code bash>
-mkdir -p /home/web/roundcube +mkdir /home/web/roundcube 
-cd /home/web/roundcube+mkdir /var/log/roundcube 
 +chown web:web /var/log/roundcube
 </code> </code>
  
Line 36: Line 47:
 <code bash> <code bash>
 cd /home/web/roundcube cd /home/web/roundcube
-mkdir db +mkdir db temp 
-chown nginx:nginx db +chown web:web db temp 
-cd roundcube-<verison> +wget https://github.com/roundcube/roundcubemail/releases/download/X.Y.X/roundcubemail-X.Y.Z-complete.tar.gz 
-chown nginx:nginx logs temp+tar xvf roundcubemail-X.Y.Z-complete.tar.gz 
 +ln -s roundcubemail-X.Y.Z-complete.tar.gz roundcubemail
 </code> </code>
  
Line 54: Line 66:
                 index index.php;                 index index.php;
  
-                root /home/web/roundcube/roundcubemail-1.6.10;+                root /home/web/roundcube/roundcubemail;
  
                 access_log /var/log/nginx/webmail.mydomain.com_access_log main;                 access_log /var/log/nginx/webmail.mydomain.com_access_log main;
Line 62: Line 74:
 #        location ~ /(config/|temp/|logs/|installer) { #        location ~ /(config/|temp/|logs/|installer) {
 #                deny all; #                deny all;
-#                alias /home/web/roundcube/roundcubemail-1.6.10;+#                alias /home/web/roundcube/roundcubemail;
 #        } #        }
  
Line 86: Line 98:
  
 Point your browser to **https://webmail.mydomain.com/installer** and follow the onscreen instructions Point your browser to **https://webmail.mydomain.com/installer** and follow the onscreen instructions
 +
 +Double check the **temp** and **logs** paths, you need to change the path to point to the folders you created in the previous step.
 +
 +When asked for database, use this as file path **/home/web/roundcube/db/roundcube.db**.
 +
 +Save the settings by copying the produced config file as **/home/web/roundcube/roundcubemail-<version>/config/config.inc.php**.
 +
 +Here is an example which works with Stalwart:
 +<file - config.inc.php>
 +$config['db_dsnw'] = 'sqlite:////home/web/roundcube/db/roundcube.db?mode=0646';
 +$config['imap_host'] = 'ssl://mail.mydomain.com';
 +$config['smtp_host'] = 'ssl://mail.mydomain.com';
 +$config['smtp_auth_type'] = "PLAIN";
 +$config['support_url'] = '';
 +$config['log_dir'] = '/var/log/roundcube';
 +$config['temp_dir'] = '/home/web/roundcube//temp/';
 +$config['des_key'] = '<<autogenerated secret key>>';
 +$config['plugins'] = ['acl', 'archive', 'attachment_reminder', 'emoticons', 'enigma', 'filesystem_attachments', 'jqueryui', 'managesieve', 'markasjunk', 'new_user_dialog', 'newmail_notifier', 'subscriptions_option', 'userinfo', 'vcard_attachments', 'zipdownload'];
 +$config['language'] = 'en_US';
 +$config['enable_spellcheck'] = true;
 +$config['spellcheck_engine'] = 'pspell';
 +$config['mime_param_folding'] = 0;
 +</file>
 +
 +At this point the installation is complete.
 +
 +
 +===== CardDav Plugin =====
 +
 +To enable integration with your CardDav addressbook, 
 +
 +Download latest tarball from [[https://github.com/mstilkerich/rcmcarddav/releases|here]] and decompress it into rouncube //plugins// folder, then enable it by adding **carddav** to the //$config['plugins']// defined above.
 +
 +**Note:** it is critical that you LOGOUT from Roundcube before enabling the plugin, and LOGIN again after. This is because this will create the needed table. If you don't, you will get an internal error.
  
  

This website uses technical cookies only. No information is shared with anybody or used in any way but provide the website in your browser.

More information