mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-11 13:17:07 +00:00
The shared pacman cache was the first writable CacheDir on every arch runner and lab node. Our arch image sets DisableSandbox, so libalpm downloads straight into that directory (util.c _alpm_download_dir_setup only makes a per-process temp dir with the sandbox on), and the XferCommand writes <pkg>.part there with curl -C -o %o; two nodes fetching the same package appended to the same .part file, and the second rename failed or left a corrupt package in the shared cache. pacman.sh now gives each node its own download directory <shared>/pacman/node-XXXXXX/ (created once with mktemp, reused from pacman.conf on later runs) as the CacheDir between the read-only host layer and <shared>/pacman/, and writes a PostTransaction hook to pacman.d/hooks/infinito-shared-cache.hook that renames every finished package and signature into <shared>/pacman/; .part files stay for the next resume. Both directories sit in one bind mount, so each publish is an atomic rename(2). pacman.sh fails when pacman.conf sets HookDir, since pacman would then skip the hook silently. Requirement 065 and cache.md describe the three layers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Requirements 📋
This directory contains project requirements documents. Its scope is user stories and acceptance criteria that define what the project must do and that guide agent-assisted implementation.
Archive
- 001 - Nextcloud Talk TURN relay
- 001 - Service Registry Refactoring
- 003 - Reduce
applicationsandusersto lookup-only access - 004 - Generic RBAC role auto-provisioning via OpenLDAP
- 005 - WordPress Multisite support for OIDC-driven RBAC
- 006 - Service-gated Playwright tests
- 007 - WordPress to Discourse post round-trip
- 015 - KIX Service Management integration
- 016 - web-app-hugo (Static Site Generator)
- 012 - Package Cache (Nexus 3 OSS)
- 013 - Sub-Beta-to-Beta Lifecycle Promotion for
web-*Roles - 015: Self-built Moodle image (replaces
bitnamilegacy/moodle) - 015 - OpenCloud and OpenTalk IAM integration
- 021 - SSO Flavor Migration (oauth2 + oidc → unified
ssoservice) - 008 - Role Meta Layout Refactoring
- 009 - Per-Role Networks and Ports Migration
- 010 - Role Meta
run_after/lifecycleMigration - 011 - Role
meta/info.ymlMigration - 016 - Fediwall multi-wall via OIDC-protected runtime upload
- 019 - Playwright meta/services.yml parity coverage
- 020 - CI Run 25705903504 Deploy-Failure Remediation Loop
- 022 - Zammad Helpdesk Role with OIDC SSO
- 023 - Setup Penpot
- 025 - Matrix Role Ansible Flavor (matrix-docker-ansible-deploy)
- 028 - atmo.rsvp (AT Protocol Events) Role + Mobilizon/ActivityPub Bridge
- 031 - svc-net-tor: Tor Onion-Service Provider (injected alongside the clearnet domain)
- 037 - svc-net-wireguard: WireGuard Transport for Swarm Deployments
- 038 - svc-net-wireguard: Full-Mesh WireGuard for Compose Deployments
- 038 - web-svc-api