Roundcube - безкоштовний поштовий WEB-клієнт написаний на PHP. А тому є чи не найпопулярнішим поштовим клієнтом оскільки не вимагає багато роботи для встановлення і налаштування. Отож встановимо цей поштовий клієнт на наш сервер з Debian.
Крок 1. Завантаження Roundcube Webmail
Зайдемо по SSH на наш Debian сервер, і за допомогою wget завантажуємо собі сорти Roundcube Webmail
wget https://github.com/roundcube/roundcubemail/releases/download/1.6.0/roundcubemail-1.6.0-complete.tar.gz
Створимо папку /var/www і розпакуємо туди архів з Roundcube Webmail
tar xvf roundcubemail-1.6.0-complete.tar.gz
sudo mkdir -p /var/www/
sudo mv roundcubemail-1.6.0 /var/www/roundcube
змінимо власника папки з Roundcube Webmail на www-data
chown www-data:www-data /var/www/roundcube -R
Крок 2. Встановлення PHP залежностей
Встановлюємо php залежності. В Debian за замовчуванням вже є в репозиторії пакунки PHP, але якщо ви хочете додати інший репозиторій, зараз саме час це зробити ;)
apt update
apt install php-net-ldap2 php-net-ldap3 php-imagick php7.4-fpm php7.4-common php7.4-gd php7.4-imap php7.4-mysql php7.4-curl php7.4-zip php7.4-xml php7.4-mbstring php7.4-bz2 php7.4-intl php7.4-gmp php7.4-redis
Крок 3. Створення БД і користувача для Roundcube Webmail
Встановимо сервер БД MariaDB
apt install mariadb-server mariadb-client
Залогінимось під рутом
mysql -u root
Створимо базу даних roundcubemail, користувача roundcube, і дамо доступ цьому користувачу до бази даних roundcubemail
CREATE DATABASE roundcubemail DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER roundcube@localhost IDENTIFIED BY 'super_password';
GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost;
flush privileges;
exit;
Тепер імпортуємо таблиці Roundcube Webmail в нашу БД
mysql roundcubemail < /var/www/roundcube/SQL/mysql.initial.sql
Крок 4. Створення конфіга хоста в Nginx
Створимо файл конфіга для нашого Roundcube Webmail
nano /etc/nginx/conf.d/roundcube.conf
і помістимо туда таку конфігурацію
server {
listen 80;
listen [::]:80;
server_name mail.example.com;
root /var/www/roundcube/;
index index.php index.html index.htm;
error_log /var/log/nginx/roundcube.error;
access_log /var/log/nginx/roundcube.access;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /.well-known/acme-challenge {
allow all;
}
location ~ ^/(README|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ {
deny all;
}
location ~ ^/(bin|SQL)/ {
deny all;
}
# A long browser cache lifetime can speed up repeat visits to your page
location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
access_log off;
log_not_found off;
expires 360d;
}
}
Зберігаємо файл, і перезапускаєм nginx
systemctl reload nginx
Крок 5. Додаємо HTTPS
Для додавання https скористаємось безкоштовним сервісом Let'sEncrypt. Для цього встановимо софтинку, яка буде запитувати сертифікат для нас і встановлювати його на сервер
apt install python3-certbot-nginx
Тепер отримаємо собі сертифікат
certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d mail.example.com
де
- --nginx: використовуємо плагін nginx.
- --agree-tos: погоджуємось з умовами використання.
- --redirect: Примусовий HTTPS через 301 редірект.
- --hsts: додавати заголовок Strict-Transport-Security кожному запиту.
- --staple-ocsp: Включає OCSP Stapling.
Сертифікат буде отримано і встановлено автоматично. Також certbot створить cron задачу, яка автоматично продовжуватиме сертифікат.
Крок 6. Конфігурація Roundcube Webmail
Перейдемо в директорію Roundcube Webmail
cd /var/www/roundcube/config/
Скопіюємо конфігурацію файл sample і одразу поредагуєм його
cp config.inc.php.sample config.inc.php
nano config.inc.php
Знайдем стрічку
$config['db_dsnw'] = 'mysql://roundcube:pass@localhost/roundcubemail';
і замінимо в ній дані БД на свої
Тоді знайдемо стрічки які відповідають за підключення до сервера IMAP/POP3
$config['imap_host'] = 'localhost:143';
$config['smtp_host'] = 'localhost:587';
і замінимо їх на
$config['imap_host'] = 'tls://mail.example.com:143';
$config['smtp_host'] = 'tls://mail.example.com:587';
вказавши замість mail.example.com свій сервер
Також потрібно замінити DES ключ. Знайдем строчку
$config['des_key'] = 'rcmail-!24ByteDESkey*Str';
і пропишемо в ній яку небудь іншу стрічку, наприклад
$config['des_key'] = '87Usda0*ASd09ASDlk=';
Roundcube Webmail має дуже багато функціональних плагінів, але по замовчуванню вони неактивні, тож активуємо їх!
Знайдемо стрічку
// List of active plugins (in plugins/ directory)
$config['plugins'] = [
'archive',
'zipdownload',
];
і поміняємо її на
// List of active plugins (in plugins/ directory)
$config['plugins'] = [
'acl',
'additional_message_headers',
'archive', 'attachment_reminder',
'autologon',
'debug_logger',
'emoticons',
'filesystem_attachments',
'help',
'hide_blockquote',
'http_authentication',
'identicon',
'identity_select',
'jqueryui',
'krb_authentication',
'managesieve',
'markasjunk',
'new_user_dialog',
'new_user_identity',
'newmail_notifier',
'password',
'reconnect',
'redundant_attachments',
'show_additional_headers',
'squirrelmail_usercopy',
'subscriptions_option',
'userinfo',
'vcard_attachments',
'virtuser_file',
'virtuser_query',
'zipdownload'
];
ви можете почитати більше про плагіни на офіційному сайті, і додати або забрати якісь із них.
Також можна включити автоматичну перевірку правопису додавши стрічку
$config['enable_spellcheck'] = true;
Зберігаєм файлик, і не забуваємо витерти інсталлер
rm /var/www/roundcube/installer/ -r
Ось і все!
Гарного адміністрування!
Коментарі