mschneider82 / roundcube-opencloud
Roundcube plugin to connect each user's personal OpenCloud Space — save attachments to the cloud or attach files from it
Package info
github.com/mschneider82/roundcube_opencloud_plugin
Language:JavaScript
Type:roundcube-plugin
pkg:composer/mschneider82/roundcube-opencloud
Requires
- php: >=8.1
- league/flysystem: ^3.0
- league/flysystem-webdav: ^3.29
- roundcube/plugin-installer: >=0.3.0
- sabre/dav: ^4.6
README
A Roundcube plugin that lets each user connect their personal OpenCloud Space to Roundcube — save email attachments directly to the cloud or attach files from it.
This is a fork of nicofrand/Roundav, which itself is a fork of Roundcube-Plugin-roundav.
Packagist: https://packagist.org/packages/mschneider82/roundcube-opencloud Repository: https://github.com/mschneider82/roundcube_opencloud_plugin
Related: opencloud-webmail — OpenCloud web extension that embeds Roundcube directly inside the OpenCloud UI via iframe with HMAC autologin.
Article: From Seafile to OpenCloud: Building a Self-Hosted Webmail & Cloud Integration on Kubernetes — background, motivation, and full setup walkthrough.
Features
- Save email attachments to your personal OpenCloud Space
- Attach files from your OpenCloud Space when composing emails
- Each user configures their own Space — no shared credentials needed
- Supports OpenCloud Spaces WebDAV URLs (including Space IDs with
$)
Requirements
- Roundcube 1.6+
- PHP 8.1+
- An OpenCloud instance
Installation
Docker (roundcube/roundcubemail image)
Set these environment variables:
ROUNDCUBEMAIL_PLUGINS=archive,zipdownload,roundcube_opencloud ROUNDCUBEMAIL_COMPOSER_PLUGINS=mschneider82/roundcube-opencloud ROUNDCUBEMAIL_INSTALL_PLUGINS=1
Composer
composer require mschneider82/roundcube-opencloud
Then add roundcube_opencloud to $config['plugins'] in your Roundcube config.
Manual
- Place this plugin folder into the
plugins/directory of Roundcube and rename it toroundcube_opencloud. - Run
composer install --no-devinside the plugin folder. - Add
roundcube_opencloudto$config['plugins']in your Roundcube config.
Configuration
The plugin works out of the box — all settings are optional. To override global defaults, edit config.inc.php:
// Show the "Files" tab in the taskbar (default: true) $rcmail_config['show_drive_task'] = true; // Optional: set a global fallback Spaces URL (users can override this in their settings) $rcmail_config['driver_webdav_spaces_url'] = null; // Optional: set global WebDAV credentials (not recommended — use per-user settings instead) $rcmail_config['driver_webdav_username'] = null; $rcmail_config['driver_webdav_password'] = null;
User Setup
Each user configures their own OpenCloud Space in Roundcube under Settings → Cloud Storage:
1. Create an App Password in OpenCloud
Regular OpenCloud passwords do not work for WebDAV. You need to create an app password:
- Log in to OpenCloud
- Go to Settings → Security
- Under App Passwords, create a new password and copy it
2. Find your Spaces WebDAV URL
- In OpenCloud, go to Settings and enable "Show WebDAV information in the detail view"
- Open the Space you want to use and click on its properties/details
- Copy the WebDAV URL — it looks like:
https://opencloud.example.com/remote.php/dav/spaces/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx$xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
3. Configure in Roundcube
- In Roundcube, go to Settings → Cloud Storage
- Enter your OpenCloud username
- Enter the app password you created (not your regular password)
- Paste the Spaces WebDAV URL
- Save
You can now attach files from your Space or save attachments to it directly from the mail view.
License
Released under the GNU Affero General Public License Version 3.