K05: apcmd instance export|import; 0.9.0-rc.1 #21

Merged
oliver.maklott merged 1 commit from k05-instance into main 2026-10-05 08:09:05 +00:00

aivopod-app Plan 10, K05: moving an instance with apcmd (D014). Needs platform 0.9.0-rc.4 (ops instance-export|import, aivopod-app #139/#140).

  • apcmd instance export: ops instance-export piped straight into age --encrypt in the backup container → backups/aivopod-instance-<stamp>.zip.age for BACKUP_AGE_RECIPIENT; the instance keeps running; a failed export leaves no file
  • apcmd instance import <file> --identity <key> [--dry-run] [--map-issuer <old>=<new> …] [--yes]: stop caddy/api/worker, age --decrypt piped into ops instance-import, JOIN_CODE_PEPPER/COOKIE_SECRET into .env, start, health; on refusal the services run again and .env stays; a wrong key is named; secrets never in the output
  • Runner.pipe(): Deno connects stdout to stdin, nothing in the clear on disk (tested with real processes and binary bytes)
  • help texts, catalog, D014; deno task check: 92 passed
  • 0.9.0-rc.1 (prerelease; latest stays 0.7.0)

🤖 Generated with Claude Code

aivopod-app Plan 10, **K05**: moving an instance with apcmd (D014). Needs platform 0.9.0-rc.4 (`ops instance-export|import`, aivopod-app #139/#140). - [x] `apcmd instance export`: `ops instance-export` piped straight into `age --encrypt` in the backup container → `backups/aivopod-instance-<stamp>.zip.age` for `BACKUP_AGE_RECIPIENT`; the instance keeps running; a failed export leaves no file - [x] `apcmd instance import <file> --identity <key> [--dry-run] [--map-issuer <old>=<new> …] [--yes]`: stop caddy/api/worker, `age --decrypt` piped into `ops instance-import`, `JOIN_CODE_PEPPER`/`COOKIE_SECRET` into `.env`, start, health; on refusal the services run again and `.env` stays; a wrong key is named; secrets never in the output - [x] `Runner.pipe()`: Deno connects stdout to stdin, nothing in the clear on disk (tested with real processes and binary bytes) - [x] help texts, catalog, D014; `deno task check`: 92 passed - [x] 0.9.0-rc.1 (prerelease; `latest` stays 0.7.0) 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Instance export and import: apcmd instance export|import pipe ops into age and back, keep services still during an import, write the archive's secrets into .env (aivopod-app Plan 10, K05; D014); 0.9.0-rc.1
All checks were successful
check / check (pull_request) Successful in 7s
check / check (push) Successful in 7s
release / release (push) Successful in 12s
ce31b22bd4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
aivopod/apcmd!21
No description provided.