Roundcube

From Alpine Linux

What is Roundcube

Roundcube is a free and open source webmail software for the masses, written in PHP.

Set up Roundcube from source on Alpine Linux

This document will be a quick c/p guide to setup Roundcube from Source on Alpine Linux and connecting to MS Exchange Server. We assume you have Alpine Linux installed and running. What we will install is the following:

  • PHP
  • Lighttpd
  • Postgresql
  • Roundcube (from source)

Installing PHP and Lighttpd

Basic Installation

For installing the additional packages first activate community packages and update the package index

Install the required packages:

# apk add lighttpd php82 fcgi php82-cgi

Configure Lighttpd

Edit lighttpd.conf (/etc/lighttpd/lighttpd.conf) and uncomment the line:

Contents of /etc/lighttpd/lighttpd.conf

... include "mod_fastcgi.conf" ...

Edit mod_fastcgi.conf (/etc/lighttpd/mod_fastcgi.conf), find and change /usr/bin/php-cgi to /usr/bin/php-cgi82.

Contents of /etc/lighttpd/mod_fastcgi.conf

... "bin-path" => "/usr/bin/php-cgi82" # php-cgi ...

Start lighttpd service and add it to default runlevel

# rc-service lighttpd start # rc-update add lighttpd default

To add security, configure https access in Lighttpd.

Add additional packages

apk add php-openssl php-intl

vHost

vi /etc/lighttpd/lighttpd.conf

  • Uncomment this line:
 "mod_simple_vhost"
  • Add this lines
 simple-vhost.server-root   = "/var/www/localhost/htdocs/"
 simple-vhost.default-host  = "/"
 simple-vhost.document-root = "www/"
 $SERVER["socket"] == "round.cube.mail.ipaddres:443" {
 ssl.engine    = "enable"
 ssl.pemfile   = "/etc/lighttpd/server-bundle.pem"
 }
  
  • Restart the web service:

/etc/init.d/lighttpd restart

  • Set the php timezone acording to: [1]

vi /etc/php/php.ini

  • Uncomment and set the date.timezone = (e.g. 'America/Asuncion')

Download and Install Rouncube

  • Create folder

mkdir -p /usr/share/webapps cd /usr/share/webapps

  • Download

wget http://downloads.sourceforge.net/project/roundcubemail/roundcubemail/0.5.2/roundcubemail-0.5.2.tar.gz

  • Unpack

tar zxvf roundcubemail-0.5.2.tar.gz

  • Rename folder and change permissions

mv roundcubemail-0.5.2 roundcubemail chmod 775 -R roundcubemail

  • Create the symlynk

mv /var/www/localhost/htdocs/ /var/www/localhost/htdocs.old ln -s /usr/share/webapps/roundcube/ /var/www/localhost/htdocs/

  • Create logs folder

mkdir -p /var/log/roundcube/ chown -R lighttpd:lighttpd /var/log/roundcube/ chmod 775 /var/log/roundcube/ -R

Postgres installation

  • Add postgresql, create and configure database

apk add postgresql postgresql-client /etc/init.d/postgresql setup /etc/init.d/postgresql start rc-update add postgresql

su postgres createuser roundcube

Answers: N,N,Y

  • Shall the new role be a superuser? (y/n) n
  • Shall the new role be allowed to create databases? (y/n) n
  • Shall the new role be allowed to create more new roles? (y/n) y

createdb -O roundcube -E UNICODE -T template0 roundcubemail

Note: Set the same timzone you use in the php.ini (e.g. 'America/Asuncion')

 psql roundcubemail
 ALTER USER roundcube WITH PASSWORD 'the_new_password';
 ALTER DATABASE roundcubemail SET timezone TO 'America/Asuncion';
 \c - roundcube
 \i /usr/share/webapps/roundcube/SQL/postgres.initial.sql
 roundcubemail=> \q
 exit

Roundcube Web Configuration

Start your browser and visit: https://round.cube.mail.ipaddres/installer/

Roundcube Webmail Installer have 3 steps:

  • Check environment
Check if all is ok, click NEXT
  • Create config

Here you need to set:

a. General configuration
product_name
Your Country Branch Webmail Access
temp_dir
/tmp/
identities_level
one identity with possibility to edit all params
b. Logging & Debugging
log_driver
syslog
log_dir
/var/log/roundcube/
c. Database setup
db_dsnw
Database settings for read/write operations:
PgSQL Database type
localhost Database server
roundcubemail Database name
roundcube Database user name
********* Database password
d. IMAP Settings
default_host
The IMAP host(s) chosen to perform the log-in
your.exchange.ip.address
username_domain
your.domain
e. SMTP Settings
smtp_server
your.exchange.ip.address

Now need to download and copy both files (main.inc.php and db.inc.php) to /etc/roundcube/

  • Test config
Test the SMTP config sending a mail and the IMAP config using a username and password.

Final Steps