Files
computer-playbook/roles/web-app-seaweedfs/TODO.md

2.6 KiB

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.