Skip to content

Spike: Investigate Nextcloud API to Retrieve Images #665

@AJaccP

Description

@AJaccP

As a maintainer, I want to confirm that a GitHub-hosted Actions runner can pull from our Nextcloud gallery folder over WebDAV before committing to the full CI pipeline design.


🧠 Context

The gallery build pipeline depends on rclone pulling from Nextcloud during CI. This needs to be proven from a GitHub-hosted runner specifically — datacenter IPs may be blocked or rate-limited where personal devices aren't. This spike uses a throwaway repo and workflow; nothing produced here lands in the main site repo.

Two credential paths to try, in order:

  1. Public share link (preferred) — rclone pulls via the Nextcloud public share URL, no credential required
  2. App password (fallback) — Nextcloud app password → rclone obscure → stored as GitHub secret → passed via RCLONE_CONFIG_* env vars

If neither works from a runner, note the errors and why this isn't a feasible approach.

🛠️ Implementation Plan

  1. Create a throwaway GitHub repo with a minimal Actions workflow that runs rclone ls against the Nextcloud gallery folder. Also check if it is able to rclone copy a file to the repo.
  2. Try the public share link path first - configure rclone to use the share URL with no credential. Ask Jacc for the link.
  3. If that fails (blocked IPs, auth required), try the app password path — generate a Nextcloud app password, obscure it with rclone obscure, store as a repo secret, pass via env vars. Ask Jacc to make the app password
  4. Document which path succeeded and provide the working rclone remote config snippet for use in the CI pipeline ticket

✅ Acceptance Criteria

  • A GitHub Actions workflow on a hosted runner successfully runs rclone ls against the Nextcloud gallery folder. Also check if it is able to rclone copy a file to the repo.
  • Documents which credential path worked (public share or app password)
  • Produces a working rclone remote config snippet ready to drop into the main CI workflow
  • If neither path works, documents what was tried and what the errors were

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

Status
In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions