Menu
Szybki wybór
Hosting Domeny VPS SSL Kalkulator Porównania FAQ
Aktywne kody
Wszystkie kody rabatowe

Roundcube webmail — instalacja i konfiguracja

Opublikowano: 10 kwietnia 2026 · Kategoria: Hosting / Poczta

Roundcube to jeden z najpopularniejszych webmaili open-source — elegancki interfejs AJAX, obsługa wielu kont, filtry, kontakty i szerokie możliwości rozszerzenia przez pluginy. Jeśli stawiasz własny serwer pocztowy (Postfix + Dovecot), Roundcube jest naturalnym wyborem jako interfejs webowy. Można go też podpiąć do zewnętrznych serwerów IMAP (Gmail, O365, własny hosting). Ten artykuł pokazuje instalację, konfigurację i podstawowe zabezpieczenia.

Instalacja — Ubuntu z Nginx i PHP-FPM

# Zaleznosci
sudo apt update
sudo apt install nginx php8.1-fpm php8.1-mysql php8.1-intl \
  php8.1-json php8.1-mbstring php8.1-iconv php8.1-curl \
  php8.1-zip php8.1-xml mariadb-server -y

# Pobierz Roundcube (wersja stabilna)
cd /var/www/html
wget https://github.com/roundcube/roundcubemail/releases/download/1.6.6/roundcubemail-1.6.6-complete.tar.gz
tar -xzf roundcubemail-1.6.6-complete.tar.gz
mv roundcubemail-1.6.6 roundcube
chown -R www-data:www-data roundcube/

# Baza danych
sudo mysql -u root <<SQLEOF
CREATE DATABASE roundcube CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'roundcube'@'localhost' IDENTIFIED BY 'BezpieczneHaslo2026!';
GRANT ALL PRIVILEGES ON roundcube.* TO 'roundcube'@'localhost';
FLUSH PRIVILEGES;
SQLEOF

# Import schematu
mysql -u roundcube -p roundcube < /var/www/html/roundcube/SQL/mysql.initial.sql

Konfiguracja Nginx z HTTPS

# /etc/nginx/sites-available/roundcube
server {
    listen 80;
    server_name webmail.twojadomena.pl;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name webmail.twojadomena.pl;
    ssl_certificate /etc/letsencrypt/live/webmail.twojadomena.pl/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/webmail.twojadomena.pl/privkey.pem;
    root /var/www/html/roundcube;
    index index.php;

    # Ukryj wrazliwe katalogi
    location ~ ^/(config|temp|logs)/ { deny all; }
    location ~ /\. { deny all; }

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    # Limit uploadow (zalaczniki)
    client_max_body_size 25m;
}
sudo ln -s /etc/nginx/sites-available/roundcube /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

Konfiguracja — config.inc.php

Skopiuj przykładowy plik konfiguracyjny i dostosuj kluczowe parametry:

cd /var/www/html/roundcube/config
cp config.inc.php.sample config.inc.php
nano config.inc.php
# Kluczowe ustawienia w config.inc.php

# DSN bazy danych
$config['db_dsnw'] = 'mysql://roundcube:BezpieczneHaslo2026!@localhost/roundcube';

# Serwer IMAP — Dovecot SSL (port 993)
$config['default_host'] = 'ssl://localhost';
$config['default_port'] = 993;

# Serwer SMTP — Postfix SUBMISSION z TLS (port 587)
$config['smtp_server'] = 'tls://localhost';
$config['smtp_port'] = 587;
$config['smtp_user'] = '%u';   # uzytkownik z sesji IMAP
$config['smtp_pass'] = '%p';   # haslo z sesji IMAP

# Unikalny klucz szyfrowania sesji (wygeneruj: openssl rand -base64 18)
$config['des_key'] = 'TwojeUnikalneHaslo24znaki!';

# Bezpieczenstwo
$config['ip_check'] = true;
$config['session_lifetime'] = 10;
$config['force_https'] = true;

# Wyglad
$config['skin'] = 'elastic';
$config['language'] = 'pl_PL';
$config['product_name'] = 'Webmail';

# Maksymalny rozmiar zalacznikow
$config['max_message_size'] = '25M';

# Wlaczone pluginy
$config['plugins'] = ['archive', 'zipdownload', 'managesieve'];

Konfiguracja Postfix i Dovecot dla Roundcube

Roundcube łączy się do Dovecot przez IMAP (SSL port 993) i do Postfix przez SMTP SUBMISSION (TLS port 587). Kluczowe ustawienia po stronie serwera pocztowego:

# /etc/postfix/main.cf — upewnij sie ze submission jest wlaczony
# /etc/postfix/master.cf — port 587 z SASL auth
submission inet n - y - - smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_sasl_type=dovecot
  -o smtpd_sasl_path=private/auth
  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject

# /etc/dovecot/conf.d/10-master.conf
# Unix socket dla SASL (Postfix laczy sie tutaj)
service auth {
  unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
    group = postfix
  }
}

# Restart obu uslug po zmianach
sudo systemctl restart postfix dovecot

Pluginy — CardDAV i Calendar

# Plugin CardDAV (synchronizacja kontaktow z Nextcloud/Baikal)
# Pobierz rcmcarddav z GitHub
cd /var/www/html/roundcube/plugins
git clone https://github.com/mstilkerich/rcmcarddav.git carddav
cd carddav && composer install --no-dev

# Dodaj 'carddav' do $config['plugins'] w config.inc.php

# Po zalogowaniu uzytkownik konfiguruje CardDAV server w:
# Ustawienia > Kontakty > Dodaj ksiazke adresowa CardDAV
# URL: https://nextcloud.twojadomena.pl/remote.php/dav/addressbooks/users/LOGIN/contacts/

# Plugin Managesieve (filtry wiadomosci Sieve/Dovecot)
# Juz wbudowany — wymaga Dovecot z wtyczka sieve
sudo apt install dovecot-sieve dovecot-managesieved -y

# W /etc/dovecot/conf.d/20-managesieve.conf
# service managesieve-login { ... } — zwykle juz skonfigurowany
sudo systemctl restart dovecot

# Dodaj 'managesieve' do $config['plugins'] i ustaw port:
# $config['managesieve_port'] = 4190;

Skórki (skins) — Elastic i Classic

Skórka Wygląd Responsywna Zalecana dla
elastic Nowoczesna, Material Design Tak (mobile-first) Produkcja — domyślna od RC 1.4
classic Tradycyjna, 3-kolumnowa Częściowo Użytkownicy przyzwyczajeni do starego UI
larry Nowoczesna (starsza) Nie Znikająca — migruj do elastic

Zabezpieczenia i fail2ban

  • Usuń instalator po zakończeniu konfiguracji: rm -rf /var/www/html/roundcube/installer/ — zostawienie go to krytyczna luka.
  • fail2ban — utwórz regułę dla Roundcube loginów: filtruj /var/log/roundcube/errors.log na frazy IMAP Error: Login failed — ban po 5 próbach w 10 min.
  • CSP header w Nginx: add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'";
  • Aktualizacje — Roundcube jest aktywnie rozwijany. Sprawdzaj nowe wersje i aktualizuj przed publikacją exploitów. Obs: w 2023 odkryto CVE-2023-5631 (stored XSS).
  • Ograniczenie dostępu do IP — jeśli webmail jest tylko dla pracowników, rozważ ograniczenie dostępu do znanych sieci przez Nginx (allow IP; deny all;).

Najczęstsze pytania

Czym jest Roundcube i jakie ma wymagania systemowe? +
Roundcube to popularny webmail open-source napisany w PHP. Działa jako przeglądarkowy klient poczty łączący się przez IMAP (odczyt poczty) i SMTP (wysyłka). Wymagania: PHP 7.4+ (zalecane 8.1), rozszerzenia PHP: pdo_mysql lub pdo_pgsql, intl, json, mcrypt lub openssl, mbstring, iconv. Baza danych: MySQL/MariaDB lub PostgreSQL (przechowuje ustawienia, kontakty, sygnatury — nie samą pocztę, ta jest na serwerze IMAP). Serwer webowy: Apache lub Nginx z PHP-FPM.
Jak skonfigurować Roundcube do pracy z własnym serwerem Postfix i Dovecot? +
W config/config.inc.php ustaw: $config["default_host"] = "ssl://localhost" (lub "tls://localhost" dla STARTTLS) i $config["default_port"] = 993 dla IMAP Dovecot. Dla SMTP: $config["smtp_server"] = "tls://localhost" i $config["smtp_port"] = 587 (SUBMISSION) lub 465 (SMTPS). Jeśli chcesz żeby Roundcube uwierzytelniał się u Postfix przez SASL tak samo jak normalny klient, ustaw $config["smtp_user"] = "%u" i $config["smtp_pass"] = "%p" — przekaże dane logowania z sesji IMAP do SMTP.
Jakie pluginy warto zainstalować w Roundcube? +
Wbudowane pluginy: archive (przenoszenie do archiwum), managesieve (filtry Sieve/Dovecot), zipdownload (pobieranie załączników jako ZIP), markasjunk2 (oznaczanie spamu). Zewnętrzne: CardDAV (synchronizacja kontaktów z zewnętrznym serwerem CalDAV/CardDAV — np. Nextcloud), rcmcarddav (kontakty CardDAV), calendar (integracja kalendarza przez CalDAV). Instalacja: skopiuj plugin do plugins/, dodaj nazwę do tablicy $config["plugins"] w config.inc.php.
Jak zabezpieczyć Roundcube przed atakami? +
Kluczowe zabezpieczenia: (1) $config["des_key"] — ustaw unikalny 24-znakowy klucz szyfrowania sesji, (2) $config["ip_check"] = true — wiąże sesję do IP (blokuje session hijacking), (3) Ogranicz dostęp do /installer/ (usuń po instalacji) i /logs/. (4) fail2ban z regułą dla Roundcube (blokuje brute force na login). (5) Wymuszaj HTTPS na całym webserwerze (nginx: return 301 https). (6) Content-Security-Policy header: skrypt tylko ze swojej domeny. (7) $config["session_lifetime"] = 10 (minuty — krótka sesja).

Sprawdź oferty pasujące do tego scenariusza

Poniżej masz szybkie przejścia do ofert i stron z kodami rabatowymi tam, gdzie są dostępne.