{"slug": "install-aegis-on-a-fresh-ubuntu-vps-and-run-your-first-approved-task", "title": "Install AEGIS on a fresh Ubuntu VPS and run your first approved task", "summary": "100monkeys.ai published a getting-started guide for AEGIS, its beta self-hosted orchestrator that runs autonomous agents in isolated, policy-enforced runtimes with durable state. The guide walks through installing the CLI on a fresh Ubuntu VPS via a curl-piped install script, running `aegis init` to bring up a Docker Compose stack, executing a hello-world agent task, and defining a workflow with a `kind: Human` approval gate that pauses an agent until a person approves. The company cautions that the quick install uses an in-memory secrets store with no Keycloak IAM or TLS and is intended for local testing only, directing production users to its aegis-deploy repository.", "body_md": "Disclosure: 100monkeys.ai builds AEGIS, so read this guide as a maker's account. It was drafted by one of our AI agents from the public AEGIS documentation at [docs.100monkeys.ai](https://docs.100monkeys.ai/docs/getting-started) and reviewed by the company. Every command below is copied from those docs or from our home page. We did not run this exact sequence on a fresh VPS for this guide, and where the docs disagree with each other we say so instead of guessing.\n\nAEGIS by 100monkeys.ai, in beta, is a self-hosted orchestrator that runs autonomous agents in isolated, policy-enforced runtimes with durable state. This guide takes a fresh Ubuntu server to a running local stack, then runs one agent behind a human approval gate, so the agent's work stops and waits until you answer yes.\n\nKnow what the quick install is for. The Getting Started page says it plainly: `aegis init` \"is designed for local testing and evaluation only. It uses an in-memory secrets store and does not deploy Keycloak (IAM) or OpenBao (secrets management).\" The Infrastructure Requirements page lists its IAM as \"None (unauthenticated)\" and its TLS as \"None\". For production the docs point to the [aegis-deploy](https://github.com/100monkeys-ai/aegis-deploy) repository instead.\n\nSo on a VPS, treat this stack as a private lab. The CLI's health checks default to host `127.0.0.1` and port `8088`. Do not open that port to the internet; reach the box over SSH.\n\nYou need:\n\n`sudo`. The installer \"runs on Ubuntu or Debian (it needs `apt-get`)\".` aegis-linux-x86_64.tar.gz`.\nCopy the line from [100monkeys.ai](https://100monkeys.ai/), where it is printed, and run it as your normal user:\n\n```\ncurl -fsSL https://get.100monkeys.ai | bash\n```\n\nRead the script first if you prefer. The docs say `https://get.100monkeys.ai` redirects to `install.sh` on the `main` branch of [aegis-orchestrator](https://github.com/100monkeys-ai/aegis-orchestrator). On Linux it installs `curl`, `ca-certificates` and `fuse3` where missing, installs `libfuse3` where the binary needs it, and installs Docker Engine (`docker-ce`) when Docker is absent. When Docker runs but your user cannot reach it, it adds you to the `docker` group. It then installs `aegis` to `/usr/local/bin/aegis` and starts the stack with `aegis up --tag <version>`.\n\nTo pin a release, set `AEGIS_VERSION` to a release tag before running it; the docs list every published package on the Releases page.\n\n```\naegis --version\naegis status\n```\n\n`aegis status` reports local stack health. If you were added to the `docker` group during the install, log out and back in so new shells carry the group.\n\n```\naegis init\n```\n\nThe wizard \"prepares stack files, configures the node, starts Docker Compose services, verifies health, and can optionally load smoke-test agents\". Accept the hello-world smoke test when it asks; the next step uses it. The configuration it writes maps the model aliases `default`, `smart`, `judge` and `tool-judge` on the provider you choose. The hello-world agent names `smart`, and an alias the node does not map fails with `Model alias '<alias>' not found`, so finish the provider prompt. Stack files go to `~/.aegis` unless you pass `--dir`.\n\nProve the loop works before you add a gate:\n\n```\naegis task execute hello-world \\\n  --input '{\"task\": \"Write a Python function that returns the Fibonacci sequence up to n.\"}' \\\n  --follow\n```\n\n`--follow` streams iteration events. The agent generates code, runs validation, and either succeeds or refines across iterations until its validators pass.\n\nAn approval in AEGIS is a workflow state of `kind: Human`. Save this as `approved-task.yaml`. It follows the shape of the example on the Building Workflows page, cut down to one agent and one gate:\n\n```\napiVersion: 100monkeys.ai/v1\nkind: Workflow\nmetadata:\n  name: approved-task\n  version: \"1.0.0\"\n  description: \"One agent drafts, a person approves, then the run completes.\"\nspec:\n  initial_state: DRAFT\n  states:\n    DRAFT:\n      kind: Agent\n      agent: hello-world\n      timeout: 600s\n      transitions:\n        - condition: on_success\n          target: APPROVE\n        - condition: on_failure\n          target: FAILED\n    APPROVE:\n      kind: Human\n      prompt: |\n        Draft:\n        {{DRAFT.output}}\n\n        Approve? (yes/no)\n      timeout: 86400s\n      transitions:\n        - condition: input_equals_yes\n          target: DONE\n        - condition: input_equals_no\n          target: FAILED\n    DONE:\n      kind: System\n      command: \"echo 'Approved'\"\n      transitions: []\n    FAILED:\n      kind: System\n      command: \"echo 'Rejected or failed'\"\n      transitions: []\naegis workflow deploy ./approved-task.yaml --force\naegis workflow run approved-task \\\n  --input '{\"task\": \"Write a Python function that returns the Fibonacci sequence up to n.\"}'\n```\n\nThe run command prints an execution id. Watch it:\n\n```\naegis workflow logs <execution-id> --follow --verbose\naegis workflow executions get <execution-id>\n```\n\nWhen the draft is done, `executions get` shows the current state as `APPROVE (WAITING FOR HUMAN SIGNAL)`. Nothing after the gate runs until someone answers.\n\n```\naegis workflow signal <execution-id> --response yes\n```\n\nAnswer `no` to send the run to `FAILED` instead. A gate that nobody answers expires after its timeout; with the default behaviour the run is marked failed with the reason `human_input_timeout`.\n\nOne thing to know: the docs do not agree on the word. The Human Approvals page says a yes-or-no gate takes the responses `[\"yes\", \"no\"]`; the Building Workflows page signals `--response approved`; the CLI page shows `--response \"approve\"`. We use `yes` because it is what the `input_equals_yes` transition is named for. If the run does not move, check `executions get` and try the other forms.\n\n`aegis init` stack, anyone who reaches port 8088 can act on it.\nFor the reasoning behind the gate, read [How to give an orchestrator an approval step](https://100monkeys.ai/blog/approval-step-for-an-agent-orchestrator). For what to record around each run, read [A traceability checklist for AI agents in production](https://100monkeys.ai/blog/ai-agent-traceability-checklist). If you want your agents' notes and code in one record they can read and write over MCP, see [Connect Claude Code to Carbon Forge over MCP](https://carbonforge.dev/guides/claude-code-mcp).\n\n[Install AEGIS from 100monkeys.ai](https://100monkeys.ai/?utm_source=devto&utm_medium=article&utm_campaign=push-2026-10-28)\n\nOriginally published at [https://100monkeys.ai/blog/install-aegis-on-ubuntu-vps](https://100monkeys.ai/blog/install-aegis-on-ubuntu-vps)", "url": "https://wpnews.pro/news/install-aegis-on-a-fresh-ubuntu-vps-and-run-your-first-approved-task", "canonical_source": "https://dev.to/jeshuabenjoseph/install-aegis-on-a-fresh-ubuntu-vps-and-run-your-first-approved-task-1iga", "published_at": "2026-10-29 01:57:42+00:00", "updated_at": "2026-10-29 02:11:24.784400+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "developer-tools", "ai-infrastructure"], "entities": ["100monkeys.ai", "AEGIS", "Ubuntu", "Docker", "Keycloak", "OpenBao", "aegis-orchestrator", "aegis-deploy"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/install-aegis-on-a-fresh-ubuntu-vps-and-run-your-first-approved-task", "markdown": "https://wpnews.pro/news/install-aegis-on-a-fresh-ubuntu-vps-and-run-your-first-approved-task.md", "text": "https://wpnews.pro/news/install-aegis-on-a-fresh-ubuntu-vps-and-run-your-first-approved-task.txt", "jsonld": "https://wpnews.pro/news/install-aegis-on-a-fresh-ubuntu-vps-and-run-your-first-approved-task.jsonld"}}