Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.env
.dexter/
node_modules/
17 changes: 17 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
FROM oven/bun:1

WORKDIR /app

# Copy package files for layer caching
COPY package.json bun.lock ./

# Install dependencies (postinstall runs: playwright install chromium)
RUN bun install

# Install Chromium system-level dependencies for Playwright
RUN ./node_modules/.bin/playwright install-deps chromium

# Copy the rest of the source
COPY . .

CMD ["bun", "run", "src/index.tsx"]
23 changes: 23 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ Dexter is an autonomous financial research agent that thinks, plans, and learns
- [βœ… Prerequisites](#-prerequisites)
- [πŸ’» How to Install](#-how-to-install)
- [πŸš€ How to Run](#-how-to-run)
- [🐳 How to Run with Docker](#-how-to-run-with-docker)
- [πŸ“Š How to Evaluate](#-how-to-evaluate)
- [πŸ› How to Debug](#-how-to-debug)
- [πŸ“± How to Use with WhatsApp](#-how-to-use-with-whatsapp)
Expand Down Expand Up @@ -107,6 +108,28 @@ Or with watch mode for development:
bun dev
```

## 🐳 How to Run with Docker

Run Dexter in a container without installing Bun or Playwright locally.

1. Copy the environment file and add your API keys:
```bash
cp env.example .env
```

2. Build and run:
```bash
docker compose run --rm dexter
```

Or build and run manually:
```bash
docker build -t dexter .
docker run -it --env-file .env -v $(pwd)/.dexter:/app/.dexter dexter
```

> **Note:** The first build downloads Chromium for Playwright web scraping and may take a few minutes.

## πŸ“Š How to Evaluate

Dexter includes an evaluation suite that tests the agent against a dataset of financial questions. Evals use LangSmith for tracking and an LLM-as-judge approach for scoring correctness.
Expand Down
9 changes: 9 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
services:
dexter:
build: .
stdin_open: true
tty: true
env_file:
- .env
volumes:
- ./.dexter:/app/.dexter
Loading