# Gadget Code — Installation & Setup

Gadget Code is a self-hosted **Agentic Engineering Platform (AEP)** — an IDE that drives autonomous AI agents to perform software engineering work on your behalf, running entirely in your own environment.

## Architecture

```
┌──────────────────────────────────────────────────────────────────┐
│                     Gadget Code Deployment                       │
├──────────────────────────────────────────────────────────────────┤
│                                                                  │
│  ┌──────────────┐      ┌──────────────┐      ┌──────────────┐    │
│  │  Browser IDE │─────▶│  gadget-code │─────▶│ gadget-drone │    │
│  │  (React 19)  │◀─────│ (Express 5)  │◀─────│  (Worker)    │    │
│  └──────────────┘      └──────────────┘      └──────────────┘    │
│         │                     │                     │            │
│         ├ Socket.IO           ├ MongoDB             ├ Files      │
│         └ JWT Auth            ├ Redis Sessions      └ Git        │
│                               ├ HTTPS/SSL                         │
│                               ├ Qdrant (semantic search)          │
│                               └                                   │
│  Infrastructure:                                                 │
│  - Node.js 22+                                                  │
│  - pnpm 10+                                                     │
│  - MongoDB                                                      │
│  - Redis                                                        │
│  - SSL Certificates                                             │
│  - AI Inference (Ollama / OpenAI / Gab AI / etc.)               │
└──────────────────────────────────────────────────────────────────┘
```

### Components

| Component | Role | Runs On |
|---|---|---|
| **Browser IDE** | React 19 web application — project management, chat sessions, file editing, drone monitoring | User's browser |
| **gadget-code:web** | Express 5 API server — REST API, Socket.IO hub, session management, AI provider routing | Server (or localhost) |
| **gadget-drone** | Worker process — runs the Agentic Workflow Loop (AWL), executes tool calls, manages workspaces | Developer workstation (or server) |
| **MongoDB** | Primary database — users, projects, chat sessions, AI providers, drone registrations | Server (or localhost) |
| **Redis** | Session store — Express session persistence, caching | Server (or localhost) |
| **Qdrant** | Vector database — semantic search over chat history and project knowledge (arriving soon) | Server (or localhost) |

## Which Guide Is For You?

| I am... | I need to... | Guide |
|---|---|---|
| An **IT administrator** | Deploy and manage the Gadget Code platform for my organization | [IT Admin Guide](./it-admin-guide.md) |
| A **developer / engineer / manager** | Run `gadget-drone` on my workstation to connect to an existing platform | [Drone Operator Guide](./drone-operator-guide.md) |
| A **solo developer / solopreneur** | Run everything on my own machine — platform + drone + database | [Solo Developer Guide](./solo-developer-guide.md) |

## Common Prerequisites

All guides require these tools installed on the host:

- **Node.js 22+** — [nodejs.org](https://nodejs.org/)
- **pnpm 10+** — [pnpm.io](https://pnpm.io/)

Verify your installation:

```bash
node --version   # v22.x.x or later
pnpm --version   # 10.x.x or later
```

## Configuration Reference

All guides share the same YAML configuration system. See the full reference:

- **[Configuration Guide](../configuration.md)** — complete YAML schema, environment variable substitution, file locations
- **[Example configs](./config-examples/)** — drop-in templates for `gadget-code.yaml` and `gadget-drone.yaml`

## Support

- **[Documentation](../)** — architecture, protocols, workspace management
- **[Financial Support & Hosting](../support.md)** — managed hosting, consulting, donations
