TODO
Object-store (S3) consumer integration — roles not yet wired
SeaweedFS is the shared S3 object store. A role becomes a consumer by declaring a
seaweedfs service in meta/services.yml, wiring its app config from
lookup('objstore', application_id, ...) (bucket / access_key / secret_key / url /
region), and shipping a gated files/playwright/test-seaweedfs.js. See
web-app-mastodon, web-app-pixelfed, and web-app-nextcloud for the reference
pattern. SeaweedFS S3 requires path-style addressing and the internal http://
endpoint.
The roles below are database-backed and their upstream app can store objects in S3,
so the integration is fundamentally possible but not yet implemented. Roles whose
upstream has no S3 backend, or whose S3 client is incompatible with SeaweedFS
path-style, are listed at the end.
Possible via an upstream plugin/extension
| Role |
Mechanism (verify exact upstream keys before wiring) |
web-app-moodle |
tool_objectfs object-file-storage plugin |
web-app-wordpress |
media-offload plugin (e.g. WP Offload Media) |
web-app-mediawiki |
Extension:AWS (S3 file backend) |
web-app-odoo |
S3 ir_attachment / attachment-storage module |
web-app-erpnext |
frappe S3 backups + file storage |
web-app-joomla |
S3 storage plugin |
Possible — upstream S3 support still to confirm
| Role |
Note |
web-app-jira |
Atlassian DC attachment store on S3 (edition/version dependent) |
web-app-confluence |
Atlassian DC attachment store on S3 (edition/version dependent) |
web-app-suitecrm |
confirm upstream S3 file-storage support |
web-app-espocrm |
confirm upstream S3 attachment support |
web-app-zammad |
confirm upstream storage-provider S3 support |
web-app-xwiki |
confirm S3 attachment store support |
Blocked — possible only with a provider-side change
| Role |
Blocker |
web-app-discourse |
Discourse's aws-sdk-s3 defaults a custom endpoint to virtual-host addressing and exposes no force_path_style; it needs SeaweedFS to serve virtual-host/wildcard-DNS addressing (a global provider change affecting all path-style consumers) before it can use S3. |
Not currently possible
| Role |
Reason |
web-app-pretix |
Open-source pretix has no S3/object-store backend (local MEDIA_ROOT only; no django-storages/boto3, no config hook). |
Roles with no object-store surface at all (e.g. web-app-keycloak, web-app-matomo,
web-app-pgadmin, web-app-phpmyadmin, web-app-yourls, web-app-stalwart) keep their
# nocheck: seaweedfs-required exemption and are intentionally excluded.