Files
gitea.efforting.tech/ci/experiments/01-rsync-publish

Experiment 01 — rsync publish

Goal

Demonstrate the basic worktree-to-deployment pipeline using a minimal container (rsync only). This is the simplest possible end-to-end path: check out a git revision, mount it into a container, rsync the output to a bind-mounted deployment target.

What this experiment covers

  • Checking out a specific git revision into a worktree layer
  • Starting a Docker container with:
    • The worktree bind-mounted read-only as the source
    • The deployment target bind-mounted writable as the destination
  • Running rsync inside the container to publish
  • Verifying the result on the host

What this experiment does NOT cover

  • Overlayfs (the worktree is a plain bind mount here — overlay comes later)
  • Caches
  • Container reuse / stop-start lifecycle
  • Network isolation

Deployment target

sites.efforting.tech — details TBD (path on host, permissions, ownership).

Open questions for this experiment

  • What user does the container run as, and how does it get write access to the deployment target?
  • Do we rsync into a staging path and then atomically swap, or write directly?
  • What is the exact rsync flags we want (delete extraneous files? preserve timestamps?)?