No description https://caution.co
  • Rust 69.6%
  • Vue 13.3%
  • Shell 10.1%
  • CSS 3.1%
  • Makefile 1.4%
  • Other 2.4%
Find a file
2026-07-03 10:14:05 -04:00
.cargo use crates for locksmith 2026-04-02 13:16:40 -07:00
containerfiles dashboard: show platform commit baked in at build time via PLATFORM_GIT_SHA 2026-06-29 16:51:33 +02:00
dist/cli cli: initial release 2026-05-29 13:54:58 -07:00
frontend dashboard: show platform commit baked in at build time via PLATFORM_GIT_SHA 2026-06-29 16:51:33 +02:00
infra-bootstrap feat: add region routing and resource waitlist notification 2026-06-19 11:53:36 -07:00
LICENSES Initial commit 2025-11-29 07:42:39 -08:00
scripts billing: integrate paddle 2026-03-26 09:28:56 -07:00
src Merge remote-tracking branch 'origin/fix/cli-hangs-unsupported-ssh-url' 2026-07-03 10:14:05 -04:00
systemd frontend: compact into gateway 2026-06-19 03:05:47 -04:00
terraform/modules/aws/nitro-enclave terraform: skip host vsock proxy when egress disabled 2026-06-23 10:25:26 +02:00
tests tests/e2e/test_ssh_units: add end to end test for SSH get and destroy 2026-06-27 03:06:26 -04:00
utils polish and test emails sender 2026-05-08 14:11:38 -04:00
.dockerignore add cli builder for mac target 2026-04-23 10:33:53 -07:00
.editorconfig Initial commit 2025-11-29 07:42:39 -08:00
.gitignore gitignore: add .worktrees/ 2026-06-25 16:30:05 +02:00
Cargo.lock gateway: support destroy and get cmnds over ssh 2026-06-27 02:31:36 -04:00
Cargo.toml tests: add hcl-patcher 2026-06-24 06:53:08 -04:00
CLA.md add CLA 2025-12-08 12:49:17 -08:00
config.json add deploy billing gates, resource limits, and test mode guards 2026-03-31 11:28:13 -07:00
config.json.example add deploy billing gates, resource limits, and test mode guards 2026-03-31 11:28:13 -07:00
env.example feat: add region routing and resource waitlist notification 2026-06-19 11:53:36 -07:00
LICENSE Initial commit 2025-11-29 07:42:39 -08:00
Makefile dashboard: show platform commit baked in at build time via PLATFORM_GIT_SHA 2026-06-29 16:51:33 +02:00
prices.json.example simplify billing 2026-04-23 07:30:37 -07:00
README.md path change fixes 2026-06-15 01:27:39 -04:00

GitHub users: This repo is mirrored from Codeberg. Please open issues and PRs there.

Hosted version: A hosted deployment is available in closed alpha at dashboard.caution.co. To request a registration code, contact info@caution.co.

Caution Platform

Warning: Alpha Software

This software is in early alpha. It may introduce backwards-incompatible changes, has not undergone security audits, and is not production ready. Use at your own risk.

This software is a cloud hosting management platform that builds and deploys verifiable secure enclaves using the AWS Nitro System, based on EnclaveOS.

Verifiable Enclaves

An enclave is verifiable when you can independently confirm that the code running inside it matches the source code you expect. This is achieved through:

  1. Reproducible builds — Reproducible builds force software to be bit-for-bit identical when built from the same source code, and eliminate certain categories of supply chain attacks. It allows for integrity verification, without which software is opaque and difficult to verify.
  2. Cryptographic attestation — The enclave hardware generates a signed attestation document containing measurements (PCR hashes) of the running code.
  3. Independent verification — You can compare your locally-built measurements against the attestation from a running enclave to prove they match.

Getting Started

Prerequisites

  • Docker with containerd enabled
  • GNU Make
  • x86_64 based system (Mac support coming soon)

1. Bootstrap AWS infrastructure

Follow the bootstrapping guide to create the required AWS infrastructure (S3 buckets, IAM user, DynamoDB table).

2. Run the platform

Set up .env file using the credentials from bootstrapping:

cp env.example $HOME/.config/caution/.env
# Edit .env with your AWS credentials and bucket names from bootstrapping

Install the CLI:

make install-cli

See src/cli/README.md for additional installation options including signature verification and reproducible builds.

Start the platform services:

make up

3. Deploy an app

  1. Register using Passkey (via terminal or web browser):

    caution register
    
  2. Add an SSH key (can be done in browser as well):

    caution ssh-keys add --title <name_of_key> --key <pub_key_string>
    
  3. Initialize a project within a Dockerized repo:

    caution init
    

    You may need to adjust the Procfile. Caution remote builds run Docker from the repository root; your app should build with docker build -f <file> .. Put setup, compilation, and asset build steps in the Dockerfile or Containerfile.

    The hello-world-enclave repo is a good test app to deploy.

  4. Build and deploy:

    git push caution main
    

4. Verify a deployed app

You can verify an enclave's attestation in two ways:

Option A: Reproduce and verify (recommended)

Fetches the attestation from the endpoint, rebuilds the enclave locally, and verifies the PCR hashes match. The attestation endpoint is available at https://<app-url>/attestation.

caution verify --attestation-url <attestation-url>

Option B: Verify against known PCR hashes

PCRs (Platform Configuration Registers) are cryptographic measurements of the enclave's code and configuration. If you already have the expected PCR hashes, you can verify against a file:

# Create a file with expected PCR hashes
cat pcrs.txt
PCR0: 3c07ec536432532f86b8c735b740f0d67a8b115e4a5e20cc8ecbb4e6a8335fe016bf42693b18e8560e299636afa8dc84
PCR1: 3c07ec536432532f86b8c735b740f0d67a8b115e4a5e20cc8ecbb4e6a8335fe016bf42693b18e8560e299636afa8dc84
PCR2: 21b9efbc184807662e966d34f390821309eeac6802309798826296bf3e8bec7c10edb30948c90ba67310f7b964fc500a

caution verify --pcrs pcrs.txt

Reference

Limitations

  • AWS Nitro Enclaves only
  • Requires x86_64 architecture for enclave builds
  • Docker BuildKit required for reproducible builds
  • Attestation verification requires network access to the enclave endpoint

Coming soon

  • Other TEE platforms (TDX, SEV)
  • Other major cloud platforms and baremetal
  • Alternate OCI runtime support (Podman)

License

Dual-licensed under AGPL-3.0 and a commercial license. See LICENSE for details. Contact info@caution.co to obtain a commercial license.