Files
computer-playbook/roles/web-app-nextcloud/templates/config/objectstore.config.php.j2
kevinveenbirkenbachandClaude Opus 4.8 c86ab1e37b feat(web-app-nextcloud): provision on SeaweedFS S3 object store + consumer e2e test
Render the S3 objectstore config (templates/config/objectstore.config.php.j2) into NC's config dir before install, gated on objstore.enabled — NC cannot switch an already-installed instance to objectstore primary storage, so it must be present at install time.

Add the SeaweedFS consumer storage Playwright test (files/playwright/test-seaweedfs.js, playwright.env.j2 SEAWEEDFS_* vars, spec wiring; drop the playwright-service-flag nocheck for the seaweedfs service) plus the shared runSeaweedfsStorageCheck helper (admin logs into the Filer once, counts bucket objects via the Filer JSON listing, asserts growth) and the seaweedfs-consumer integration lint.

web-app-seaweedfs: bind weed to 0.0.0.0 (-ip.bind) so the multi-homed gateway is reachable by consumers that resolve the service name to its IP on the shared network.

nextcloud_install: classify 'was not found on the appstore' as unavailable (skippable, non-fatal) so a plugin without a release for the pinned NC version does not abort the whole deploy.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-12 20:17:34 +02:00

22 lines
841 B
Django/Jinja

<?php
{% if lookup('objstore', application_id, 'enabled') | bool %}
return [
'objectstore' => [
'class' => '\\OC\\Files\\ObjectStore\\S3',
'arguments' => [
'bucket' => '{{ lookup('objstore', application_id, 'bucket') }}',
'autocreate' => false,
'key' => '{{ lookup('objstore', application_id, 'access_key') }}',
'secret' => '{{ lookup('objstore', application_id, 'secret_key') | replace("\\", "\\\\") | replace("'", "\\'") }}',
'hostname' => '{{ lookup('objstore', application_id, 'host') }}',
'port' => {{ lookup('objstore', application_id, 'port') }},
'use_ssl' => false,
'use_path_style' => true,
'region' => '{{ lookup('objstore', application_id, 'region') }}',
],
],
];
{% else %}
return [];
{% endif %}