From 494636d64a3c367001fbfec402aec80b3397e1a3 Mon Sep 17 00:00:00 2001 From: matiasbenary Date: Fri, 10 Apr 2026 11:14:16 -0300 Subject: [PATCH] docs: add amazon tutorial (#2261) * feat: add amazon tutorial * chore: apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Guille * chore: apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Guille --------- Co-authored-by: Guille Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- docs/docs.json | 6 +- .../infrastructure/amazon/amazon-create.png | Bin 0 -> 259691 bytes .../infrastructure/amazon/amazon-firewall.png | Bin 0 -> 171200 bytes .../infrastructure/amazon/amazon-ip.png | Bin 0 -> 124546 bytes .../infrastructure/amazon/amazon-ssh.png | Bin 0 -> 335804 bytes docs/infrastructure/amazon.mdx | 154 ++++++++++++++++++ docs/zh/infrastructure/amazon.mdx | 90 ++++++++++ 7 files changed, 248 insertions(+), 2 deletions(-) create mode 100644 docs/images/infrastructure/amazon/amazon-create.png create mode 100644 docs/images/infrastructure/amazon/amazon-firewall.png create mode 100644 docs/images/infrastructure/amazon/amazon-ip.png create mode 100644 docs/images/infrastructure/amazon/amazon-ssh.png create mode 100644 docs/infrastructure/amazon.mdx create mode 100644 docs/zh/infrastructure/amazon.mdx diff --git a/docs/docs.json b/docs/docs.json index 7a6d14605e..ec751282ad 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -135,7 +135,8 @@ { "group": "How to host IronClaw on...", "pages": [ - "infrastructure/droplet" + "infrastructure/droplet", + "infrastructure/amazon" ] } ] @@ -262,7 +263,8 @@ { "group": "在以下平台托管 IronClaw", "pages": [ - "zh/infrastructure/droplet" + "zh/infrastructure/droplet", + "zh/infrastructure/amazon" ] } ] diff --git a/docs/images/infrastructure/amazon/amazon-create.png b/docs/images/infrastructure/amazon/amazon-create.png new file mode 100644 index 0000000000000000000000000000000000000000..24d257627e1300626e127fefc817c0c4acfb7bde GIT binary patch literal 259691 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