forked from efforting.tech/gitea.efforting.tech
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?)?