@@ -23,11 +23,13 @@ taproot/│ └── webdev/│ ├── Dockerfile the vessel — Ubuntu 24.04 dev image│ ├── bootstrap.ps1 one-shot host setup (Windows)│ ├── restic-backup.sh manual restic snapshot to B2│ ├── restic-restore.sh pull latest snapshot from B2│ ├── restic-status.sh last snapshot per host across repos│ ├── code-sync.sh pull existing repos + clone new ones from GitHub│ └── server-health-check.sh ssh into alpine and run its health check│ ├── entrypoint.sh starts sshd, then exec's CMD│ └── scripts/ copied to ~/scripts/ in the container│ ├── restic-backup.sh manual restic snapshot to B2│ ├── restic-restore.sh pull latest snapshot from B2│ ├── restic-status.sh last snapshot per host across repos│ ├── code-sync.sh pull existing repos + clone new ones from GitHub│ └── server-health-check.sh ssh into alpine and run its health check└── hosts/ └── alpine/ ├── quickstart.sh provision a fresh server
modified
containers/webdev/Dockerfile
@@ -119,12 +119,9 @@ RUN mkdir -p /home/dev/code /home/dev/.claude /home/dev/.ssh /home/dev/.restic & chmod 600 /home/dev/.ssh/config && \ chown -R dev:dev /home/dev/code /home/dev/.claude /home/dev/.ssh /home/dev/.resticCOPY containers/webdev/restic-backup.sh /home/dev/scripts/restic-backupCOPY containers/webdev/restic-restore.sh /home/dev/scripts/restic-restoreCOPY containers/webdev/restic-status.sh /home/dev/scripts/restic-statusCOPY containers/webdev/code-sync.sh /home/dev/scripts/code-syncCOPY containers/webdev/server-health-check.sh /home/dev/scripts/server-health-checkRUN chmod +x /home/dev/scripts/* && \COPY containers/webdev/scripts/ /home/dev/scripts/RUN for f in /home/dev/scripts/*.sh; do mv "$f" "${f%.sh}"; done && \ chmod +x /home/dev/scripts/* && \ chown -R dev:dev /home/dev/scripts# sshd setup. Host keys are NOT generated here — the entrypoint creates them