|
| 1 | +# Deploy Hypeman |
| 2 | + |
| 3 | +This directory contains supported deployment assets for running Hypeman outside local development. |
| 4 | + |
| 5 | +## Quickstart: AWS CloudFormation |
| 6 | + |
| 7 | +The first-class AWS quickstart is the single-node CloudFormation deployment. It launches one EC2 host with nested virtualization enabled, exposes the Hypeman API only to the CIDR you choose, and prints the commands needed to connect and create a JWT. |
| 8 | + |
| 9 | +Open AWS CloudShell in `us-east-1`, then run: |
| 10 | + |
| 11 | +```sh |
| 12 | +export HYPEMAN_ALLOWED_API_CIDR="$(curl -fsSL https://checkip.amazonaws.com)/32" |
| 13 | + |
| 14 | +curl -fsSL https://raw.githubusercontent.com/kernel/hypeman/main/deploy/aws/single-node/scripts/launch-cloudshell.sh | bash |
| 15 | +``` |
| 16 | + |
| 17 | +After the stack reaches `CREATE_COMPLETE`, use the `SsmSessionCommand` output to open a Session Manager shell and generate a remote API token: |
| 18 | + |
| 19 | +```sh |
| 20 | +sudo hypeman-create-token remote-user 8760h |
| 21 | +``` |
| 22 | + |
| 23 | +On your local machine, install the Hypeman CLI and point it at the stack's `HypemanEndpoint` output: |
| 24 | + |
| 25 | +```sh |
| 26 | +curl -fsSL https://get.hypeman.sh/cli | bash |
| 27 | + |
| 28 | +mkdir -p ~/.config/hypeman |
| 29 | +cat > ~/.config/hypeman/cli.yaml <<EOF |
| 30 | +base_url: http://<public-ip>:8080 |
| 31 | +api_key: "<jwt-from-hypeman-create-token>" |
| 32 | +EOF |
| 33 | + |
| 34 | +hypeman ps |
| 35 | +``` |
| 36 | + |
| 37 | +Then push and run a real sandbox image through the remote API: |
| 38 | + |
| 39 | +```sh |
| 40 | +mkdir -p /tmp/hypeman-claude-code |
| 41 | +cat > /tmp/hypeman-claude-code/Dockerfile <<'EOF' |
| 42 | +FROM node:22-bookworm-slim |
| 43 | +RUN npm install -g @anthropic-ai/claude-code |
| 44 | +WORKDIR /workspace |
| 45 | +CMD ["sleep", "infinity"] |
| 46 | +EOF |
| 47 | + |
| 48 | +docker build -t local/claude-code-sandbox:latest /tmp/hypeman-claude-code |
| 49 | +hypeman push local/claude-code-sandbox:latest sandbox/claude-code:latest |
| 50 | + |
| 51 | +until hypeman image get sandbox/claude-code:latest | grep -qi ready; do |
| 52 | + sleep 2 |
| 53 | +done |
| 54 | + |
| 55 | +hypeman run --name claude-code-sandbox sandbox/claude-code:latest |
| 56 | +hypeman exec claude-code-sandbox -- claude --version |
| 57 | +``` |
| 58 | + |
| 59 | +Clean up the sandbox when you are done: |
| 60 | + |
| 61 | +```sh |
| 62 | +hypeman stop claude-code-sandbox |
| 63 | +hypeman rm claude-code-sandbox |
| 64 | +``` |
| 65 | + |
| 66 | +See the [AWS single-node guide](aws/single-node) for CloudFormation parameters, Terraform usage, troubleshooting, and teardown. |
| 67 | + |
| 68 | +## Supported deployments |
| 69 | + |
| 70 | +| Platform | Deployment | Best for | Path | |
| 71 | +| --- | --- | --- | --- | |
| 72 | +| AWS | Single node | Trying Hypeman quickly, small internal deployments, development hosts | [aws/single-node](aws/single-node) | |
| 73 | + |
| 74 | +## Choosing a deployment path |
| 75 | + |
| 76 | +Use the AWS single-node deployment if you want the fastest path to a working Hypeman host in your own AWS account. |
| 77 | + |
| 78 | +The single-node deployment provides three launch surfaces: |
| 79 | + |
| 80 | +| Method | Best for | |
| 81 | +| --- | --- | |
| 82 | +| CloudFormation | Click-through setup in the AWS console | |
| 83 | +| CloudShell script | Scripted setup without installing local tools | |
| 84 | +| Terraform | Teams that manage AWS infrastructure with Terraform | |
| 85 | + |
| 86 | +All methods create the same basic shape: one EC2 instance with nested virtualization enabled, an instance role, security group rules, encrypted storage, logging, and startup automation for Hypeman. |
| 87 | + |
| 88 | +## Security model |
| 89 | + |
| 90 | +The deployment defaults are intentionally conservative: |
| 91 | + |
| 92 | +- Administration uses AWS Systems Manager Session Manager by default. |
| 93 | +- SSH is optional. |
| 94 | +- Inbound access is restricted by CIDR parameters. |
| 95 | +- EBS volumes are encrypted. |
| 96 | +- The Hypeman version is controlled by parameter. |
| 97 | +- Stack deletion removes created resources unless data retention is explicitly enabled. |
| 98 | + |
| 99 | +Review the cloud-specific README before launching anything in a production AWS account. |
| 100 | + |
| 101 | +## Cost |
| 102 | + |
| 103 | +Cloud resources created from these templates bill to your cloud account. The largest cost is the EC2 instance. Stop or delete the deployment when you are done testing. |
| 104 | + |
| 105 | +## Support level |
| 106 | + |
| 107 | +Files under this directory are intended to be maintained deployment paths, not throwaway examples. Changes should preserve upgrade, teardown, and security behavior unless the README explicitly calls out a breaking change. |
0 commit comments