diff --git a/ui/src/components/UsageInstructions.tsx b/ui/src/components/UsageInstructions.tsx index 1791ced..f6ac0bd 100644 --- a/ui/src/components/UsageInstructions.tsx +++ b/ui/src/components/UsageInstructions.tsx @@ -176,14 +176,44 @@ helm install ${name}/`, ]; case 'alpine': - return [ - { - title: 'Add the APK repository', - language: 'bash', - code: `echo '${proxy}/' | sudo tee -a /etc/apk/repositories + return isLocal + ? [ + { + title: 'Add the apk repo (real apk repo, APKINDEX auto-generated)', + language: 'bash', + code: `echo '${url}/api/v1/local/${name}' | sudo tee -a /etc/apk/repositories +sudo apk update --allow-untrusted +sudo apk add --allow-untrusted `, + note: `Served unsigned (parity with the rpm repo's gpgcheck=0) — use --allow-untrusted, or install a signing key. apk fetches /APKINDEX.tar.gz under this base.`, + }, + { + title: 'Publish a .apk (index regenerates automatically)', + language: 'bash', + code: `curl -fsSL --upload-file ./mypkg-1.0-r0.apk \\ + ${url}/api/v2/remotes/${name}/files/x86_64/mypkg-1.0-r0.apk`, + note: 'Upload each package at /-.apk — apk reconstructs that exact path from the index (APKINDEX carries no filename), so a mismatched path will 404 on install.', + }, + ] + : [ + { + title: 'Add the APK repository', + language: 'bash', + code: `echo '${proxy}/' | sudo tee -a /etc/apk/repositories sudo apk update sudo apk add `, - note: 'If the index is unsigned over the proxy, add --allow-untrusted or install the signing key into /etc/apk/keys.', + note: 'If the index is unsigned over the proxy, add --allow-untrusted or install the signing key into /etc/apk/keys.', + }, + ]; + + case 'github_alpine': + return [ + { + title: 'Add the apk repo (metadata-only, from GitHub releases)', + language: 'bash', + code: `echo '${proxy}' | sudo tee -a /etc/apk/repositories +sudo apk update --allow-untrusted +sudo apk add --allow-untrusted `, + note: "The per-arch APKINDEX is synthesized from the configured GitHub repo's release .apk assets; package downloads are redirected to the backing releases remote. Served unsigned, so --allow-untrusted.", }, ];