Roundcube
The Roundcube Webmail suite
Alternative to: gmail, outlook, yahoo mail
Roundcube Webmail is a browser-based, multilingual IMAP client with an application-like user interface, providing full email client functionality including MIME support, address book, folder management, message searching and spell checking. It connects to your existing IMAP and SMTP mail server rather than hosting mail itself, so a working mailbox elsewhere is required. Written in PHP with a plugin API and skinnable UI, it is easily extended and customized for self-hosted deployments.
Roundcube Docker Compose example
Self-host Roundcube on your own server, homelab, or VPS starting from this Docker Compose example.
It runs Roundcube in Docker containers using the official mysql:latest, roundcube/roundcubemail:latest images, with persistent volumes and automatic restarts preconfigured.
Review the environment variables and adjust them to your setup, save the file as compose.yml (or docker-compose.yml), and start the stack with docker compose up -d.
services:
roundcubedb:
image: mysql:latest
volumes:
- db_data:/var/lib/mysql
environment:
# Root password for the MySQL server; Roundcube uses it to connect to the database.
MYSQL_ROOT_PASSWORD: "roundcube-mysql-pw"
# Database created on first start and used by Roundcube.
MYSQL_DATABASE: "roundcubemail"
restart: unless-stopped
roundcubemail:
image: roundcube/roundcubemail:latest
depends_on:
- roundcubedb
environment:
# Database backend: mysql, pgsql or sqlite.
ROUNDCUBEMAIL_DB_TYPE: "mysql"
# Hostname of the database service (the roundcubedb container above).
ROUNDCUBEMAIL_DB_HOST: "roundcubedb"
# Database name Roundcube uses (must match MYSQL_DATABASE above).
ROUNDCUBEMAIL_DB_NAME: "roundcubemail"
# Database user; root works out of the box with the MySQL image.
ROUNDCUBEMAIL_DB_USER: "root"
# Password for the database connection (must match MYSQL_ROOT_PASSWORD above).
ROUNDCUBEMAIL_DB_PASSWORD: "roundcube-mysql-pw"
# Hostname of your existing IMAP server. Prefix with ssl:// (SSL/TLS) or tls:// (STARTTLS) for encrypted connections.
ROUNDCUBEMAIL_DEFAULT_HOST: "changeme"
# Hostname of your existing SMTP server for sending mail. Prefix with ssl:// or tls:// for encryption.
ROUNDCUBEMAIL_SMTP_SERVER: "changeme"
# Default UI theme; "elastic" is the modern responsive skin.
ROUNDCUBEMAIL_SKIN: "elastic"
restart: unless-stopped
volumes:
db_data:
Values set to changeme are required — replace them with your own
values before starting Roundcube.
Prefer a managed setup? WinterFlow installs, configures, and updates Roundcube for you using this same Docker Compose configuration.