1.  [Strona główna](/) ›
2.  [Baza wiedzy](/baza-wiedzy/) ›
3.  Roundcube webmail - instalacja

# Roundcube webmail - instalacja i konfiguracja

Opublikowano: 10 kwietnia 2026 · Kategoria: Hosting / Poczta

⚡ W skrócie · 9 min czytania

-   Roundcube: instalacja na Ubuntu z Nginx i PHP-FPM, konfiguracja IMAP/SMTP, integracja z Postfix i Dovecot, skórki Elastic, pluginy CardDAV i Calendar, zabezpieczenia.
-   Instalacja - Ubuntu z Nginx i PHP-FPM.
-   Konfiguracja Nginx z HTTPS.
-   Konfiguracja - config.inc.php.
-   Konfiguracja Postfix i Dovecot dla Roundcube.

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.

Contabo

VPS z rootem do postawienia własnego serwera pocztowego Postfix + Dovecot + Roundcube

Własny mailserver

[Aktywuj rabat →](/out/contabo/#reklama "Contabo")

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/contabo/)

Mikr.us

Budżetowy VPS do testów konfiguracji Roundcube z własnym SMTP

Dev/Test

[Aktywuj rabat →](/out/mikrus/#reklama "Mikr.us")

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/mikrus/)

LH.pl

Hosting z webmailem w chmurze - gotowy interfejs bez konfiguracji

Managed webmail

[Aktywuj rabat →](/out/lh-pl/#reklama "LH.pl")

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/lh-pl/)

## Powiązane strony

-   [Postfix MTA - konfiguracja serwera pocztowego](/baza-wiedzy/postfix-konfiguracja-vps/)
-   [Dovecot IMAP/POP3 - konfiguracja](/baza-wiedzy/dovecot-imap-konfiguracja/)
-   [SPF, DKIM i DMARC - konfiguracja](/baza-wiedzy/spf-dkim-dmarc-konfiguracja/)
-   [Wszystkie artykuły](/baza-wiedzy/)
-   [Laravel Octane - turbo PHP z RoadRunner i Swoole
    
    Laravel Octane: RoadRunner vs Swoole, konfiguracja workers, shared state, warm-up routines, Nginx + Octane, benchmarki…
    
    ](/baza-wiedzy/laravel-octane-roadrunner/)
-   [Rspamd - zaawansowany filtr antyspamowy dla Postfix
    
    Rspamd + Postfix milter: instalacja, DKIM signing, SPF, DMARC, Bayes filter z Redis, web UI, whitelist/blacklist.…
    
    ](/baza-wiedzy/rspamd-antispam-postfix/)
-   [HTTP/3 i QUIC - konfiguracja na Nginx i Caddy
    
    Jak włączyć HTTP/3 z QUIC na Nginx (mainline 1.25+) i Caddy. Różnice HTTP/1.1 vs HTTP/2 vs HTTP/3, testowanie curl…
    
    ](/baza-wiedzy/http3-quic-konfiguracja/)
-   [Jak wybrać hosting?](/jaki-hosting-wybrac/)

Autor: [Redakcja HostGrade.pl](/autorzy/) Zespół redakcyjny · Aktualizacja: 10 kwietnia 2026

Artykuły HostGrade.pl przygotowuje i aktualizuje redakcja serwisu. Ceny startowe, ceny odnowienia i warunki planów sprawdzamy w cennikach i regulaminach dostawców, a potem liczymy całkowity koszt za 2 lata (cena startowa plus odnowienia). Zasady zbierania danych i liczenia kosztów opisujemy na stronie Metodologia. Linki partnerskie oznaczamy jako #reklama.

[O redakcji i metodologii →](/autorzy/)