Frappe Suite brings seven collaboration products into one Frappe app. Keep files, documents, spreadsheets, presentations, meetings, email, and calendars in one connected workspace.
| Product | What it does |
|---|---|
| Drive | Store, organize, share, and preview files |
| Writer | Create and collaborate on documents |
| Sheets | Build collaborative spreadsheets |
| Slides | Create and present slide decks |
| Meet | Run video meetings |
| Manage email in a modern client | |
| Calendar | Plan events and manage schedules |
Suite does not run or administer a mail server itself. The servers are Stalwart clusters managed by the separate Suite Cloud app, and a Suite site is one tenant of a cluster:
- End users read and send mail straight against the cluster over JMAP, with an app password minted for each account. Suite only needs the cluster's URL for that.
- Every admin change (domains, accounts, passwords, groups, mailing lists) goes through Suite Cloud's site API. Suite Cloud checks that the site owns what it is touching and pushes the change to the cluster. The site never holds cluster admin credentials.
A site therefore carries five connection values, which Frappe Cloud writes into site_config.json
when it registers the site (the settings override them on a self-managed site):
- Mail Settings, or the
mailkey of the site config:server_url(the JMAP URL users connect to) andverify_ssl. - Suite Settings, or top-level keys of the same name in the site config:
suite_cloud_url,site_api_keyandsite_api_secret. They are read throughget_suite_cloud_configinsuite/suite_core/utils.py, and Validate Suite Cloud Credentials on Suite Settings confirms them.
The two halves stand apart. Mail and Calendar need only the JMAP server: a site with server_url
and no Suite Cloud is fully usable by anyone who has an account. The Admin Dashboard, account
creation and signup need Suite Cloud: without it the dashboard is hidden from admins, its routes
lead back to the mailbox, and every endpoint in suite/mail/api/admin.py refuses.
The client lives in suite/mail/suite_cloud/, the facade the rest of Mail uses in
suite/mail/directory.py, and the Admin Dashboard's endpoints in suite/mail/api/admin.py.
Sites that deployed servers through Suite before this split keep their data: update Suite, run
bench --site yoursite migrate, then bench --site yoursite install-app suite_cloud.
- Frappe Framework: Provides the database, authentication, permissions, realtime events, and APIs shared by Drive, Writer, Sheets, Slides, Meet, Mail, and Calendar.
- Frappe UI: Power the interface and reusable components across every Suite product.
- Yjs: Keeps documents in Writer and spreadsheets in Sheets synchronized during realtime collaboration.
- Hocuspocus: Runs the collaboration server used for realtime spreadsheet editing in Sheets.
- mediasoup: Powers Meet's WebRTC selective forwarding unit for group video calls.
Frappe Suite ships the same modules and DocTypes as the standalone apps, so it cannot be installed on a site that still has any of them — installation aborts with a message listing the conflicting apps. To move an existing site to Suite:
- Take a backup of the site, including files.
- Uninstall all the standalone apps (Drive, Writer, Sheets, Slides, Meet, Mail, Calendar). Uninstalling deletes each app's data on the site, which is why the backup comes first.
- Install Frappe Suite.
- Restore the backup. Suite uses the same tables, so the restored data is picked up as-is.
The same steps apply to sites hosted on Frappe Cloud: download a backup from the site dashboard (Backups), remove the standalone apps from the Apps tab, install Frappe Suite, and then restore the backup from Backups → Restore.
# 1. Back up the site along with its public and private files
bench --site yoursite backup --with-files
# 2. Uninstall every standalone app present on the site
# (run only the lines for the apps your site actually has)
bench --site yoursite uninstall-app drive
bench --site yoursite uninstall-app writer
bench --site yoursite uninstall-app sheets
bench --site yoursite uninstall-app slides
bench --site yoursite uninstall-app meet
bench --site yoursite uninstall-app mail
bench --site yoursite uninstall-app calendar_app
# 3. Install Frappe Suite
bench get-app https://github.com/frappe/suite
bench --site yoursite install-app suite
# 4. Restore the backup taken in step 1
bench --site yoursite restore sites/yoursite/private/backups/<timestamp>-database.sql.gz \
--with-public-files sites/yoursite/private/backups/<timestamp>-files.tar \
--with-private-files sites/yoursite/private/backups/<timestamp>-private-files.tarThe restored database still lists the standalone apps as installed, so point the site at Suite and migrate:
bench --site yoursite remove-from-installed-apps drive
bench --site yoursite remove-from-installed-apps writer
bench --site yoursite remove-from-installed-apps sheets
bench --site yoursite remove-from-installed-apps slides
bench --site yoursite remove-from-installed-apps meet
bench --site yoursite remove-from-installed-apps mail
bench --site yoursite remove-from-installed-apps calendar_app
bench --site yoursite install-app suite
bench --site yoursite migrateInstall Bench and create a Frappe site by following the Frappe Framework installation guide.
From your bench directory, get and install Suite:
bench get-app https://github.com/frappe/suite
bench new-site suite.localhost --install-app suite
bench startIn a separate terminal, install frontend dependencies and start the development server:
cd apps/suite
yarn install
yarn devTo create a production build instead:
bench build --app suiteMeet requires a separate mediasoup SFU server for video calls. Follow the Frappe Meet SFU setup guide to configure and run it.
Contributions are welcome. Please open an issue to report a bug or propose a change before submitting a pull request.
Frappe Suite is licensed under the GNU Affero General Public License v3.
