Skip to content
Closed
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
4 changes: 3 additions & 1 deletion packages/evals/.env.development
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
DATABASE_URL=postgres://postgres:password@localhost:5432/evals_development
DATABASE_URL=postgres://postgres:password@localhost:5433/evals_development
EVALS_DB_PORT=5433
EVALS_REDIS_PORT=6380
9 changes: 9 additions & 0 deletions packages/evals/.env.local.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Copy this file to .env.local and customize as needed
# These ports are used to avoid conflicts with other services

# Database configuration
EVALS_DB_PORT=5433
EVALS_REDIS_PORT=6380

# Optional: Override database URL if needed
# DATABASE_URL=postgres://postgres:password@localhost:5433/evals_development
4 changes: 3 additions & 1 deletion packages/evals/.env.test
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
DATABASE_URL=postgres://postgres:password@localhost:5432/evals_test
DATABASE_URL=postgres://postgres:password@localhost:5433/evals_test
EVALS_DB_PORT=5433
EVALS_REDIS_PORT=6380
77 changes: 77 additions & 0 deletions packages/evals/PORT-CONFLICT-SOLUTION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# Docker Port Conflict Solution for Evals

## Problem

The `pnpm evals` command runs Docker services for postgres (port 5432) and redis (port 6379) which conflict with other services running on the same ports.

## Solution

Update the environment configuration to use non-conflicting ports:

- Postgres: 5433 (instead of 5432)
- Redis: 6380 (instead of 6379)

## Implementation Plan

### 1. Environment File Updates

Update the following files to include port configuration:

**packages/evals/.env.development**

```
DATABASE_URL=postgres://postgres:password@localhost:5433/evals_development
EVALS_DB_PORT=5433
EVALS_REDIS_PORT=6380
```

**packages/evals/.env.test**

```
DATABASE_URL=postgres://postgres:password@localhost:5433/evals_test
EVALS_DB_PORT=5433
EVALS_REDIS_PORT=6380
```

### 2. Create .env.local Template

Create `packages/evals/.env.local.example` to document the configuration:

```
# Copy this file to .env.local and customize as needed
# These ports are used to avoid conflicts with other services

# Database configuration
EVALS_DB_PORT=5433
EVALS_REDIS_PORT=6380

# Optional: Override database URL if needed
# DATABASE_URL=postgres://postgres:password@localhost:5433/evals_development
```

### 3. Docker Compose Configuration

The existing docker-compose.yml already supports these environment variables:

- `${EVALS_DB_PORT:-5432}:5432` for postgres
- `${EVALS_REDIS_PORT:-6379}:6379` for redis

### 4. Documentation Updates

Update README.md to document the port configuration and how to avoid conflicts.

## Benefits

1. **No Port Conflicts**: Evals can run alongside other postgres/redis services
2. **Backward Compatible**: Default ports remain the same if environment variables aren't set
3. **Configurable**: Users can customize ports via environment variables
4. **Clear Documentation**: Users understand how to resolve conflicts

## Testing

After implementation:

1. Start existing postgres/redis services on default ports
2. Run `pnpm evals` to verify it uses the new ports
3. Confirm both services can run simultaneously
4. Test database connectivity with the new port configuration
40 changes: 40 additions & 0 deletions packages/evals/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,46 @@ The setup script does the following:
- Prompts for an OpenRouter API key to add to `.env.local`
- Optionally builds and installs the Roo Code extension from source

## Port Configuration

By default, the evals system uses the following ports:

- **PostgreSQL**: 5433 (external) → 5432 (internal)
- **Redis**: 6380 (external) → 6379 (internal)
- **Web Service**: 3446 (external) → 3000 (internal)

These ports are configured to avoid conflicts with other services that might be running on the standard PostgreSQL (5432) and Redis (6379) ports.

### Customizing Ports

If you need to use different ports, you can customize them by creating a `.env.local` file in the `packages/evals/` directory:

```sh
# Copy the example file and customize as needed
cp packages/evals/.env.local.example packages/evals/.env.local
```

Then edit `.env.local` to set your preferred ports:

```sh
# Custom port configuration
EVALS_DB_PORT=5434
EVALS_REDIS_PORT=6381
EVALS_WEB_PORT=3447

# Optional: Override database URL if needed
DATABASE_URL=postgres://postgres:password@localhost:5434/evals_development
```

### Port Conflict Resolution

If you encounter port conflicts when running `pnpm evals`, you have several options:

1. **Use the default configuration** (recommended): The system now uses non-standard ports by default
2. **Stop conflicting services**: Temporarily stop other PostgreSQL/Redis services
3. **Customize ports**: Use the `.env.local` file to set different ports
4. **Use Docker networks**: Run services in isolated Docker networks

## Troubleshooting

Here are some errors that you might encounter along with potential fixes:
Expand Down