AkurAI Build
Menu

Public repository / 5113300d6181fcc9ebf43e1c12a8300c4873854b

AkurAI-EC2 / README.md

Latest change 5113300d6181fcc9ebf43e1c12a8300c4873854b - Add v2 manifest loader foundation by Claude Code

# akurai-ec2

Version-controlled home for the AkurAI EC2 ops CLI that is installed locally as `~/.local/bin/akurai-ec2`.

## Purpose

This repo tracks the shared Bash CLI used to operate the AkurAI AWS platform box at `mail.olibuijr.com`. It versions the script itself, plus the local installer used to place it back into `~/.local/bin/`.

## Host assumptions

- Local host has Bash, `git`, `ssh`, `scp`, and standard coreutils.
- SSH access to the target box works through the `akurai-mail` alias in `~/.ssh/config`, or via `AKURAI_EC2_SSH=<host>`.
- The remote host is an Ubuntu-style system with `systemd`, `sudo`, `nginx`, `certbot`, and the AkurAI app layout expected by the script.
- The ports registry defaults to `~/.claude/skills/_VMPORTS/ports.registry` unless `AKURAI_PORTS_REGISTRY` overrides it.

## Install

Default install uses a symlink so the tracked repo copy stays authoritative:

```bash
./install.sh
```

Optional copy install:

```bash
./install.sh --copy
```

The installer targets `~/.local/bin/akurai-ec2` by default and preserves executable mode.

## Release engine note

`akurai-ec2 release` is the shared release engine for AkurAI app repos. It reads each app repo's `akurai-deploy.toml`, handles version/changelog/tag flow, and then performs the EC2 deploy path. This repo only versions the shared CLI; per-app release manifests stay in their own repos.

The current foundation supports both the legacy flat v1 manifest shape and a v2 nested TOML shape through `libexec/akurai-ec2-manifest.py`. The release command now loads manifests behind compatibility helpers so v2 keys can be introduced without changing the existing v1 deploy flow.

## Verification

```bash
bash -n bin/akurai-ec2
bash -n install.sh
./tests/test_manifest_helper.sh
./bin/akurai-ec2 --help
./install.sh --dry-run
```