# Configuration Files in the Open-SEO Root Directory: A Complete Guide

> Explore configuration files in the Open-SEO root directory. Discover Cloudflare Worker manifests, Vite builds, pnpm workspaces, Drizzle ORM settings, and Docker files in this comprehensive guide.

- Repository: [Every App/open-seo](https://github.com/every-app/open-seo)
- Tags: how-to-guide
- Published: 2026-09-11

---

**Yes, the Open-SEO repository contains numerous configuration files in its root directory**, including Cloudflare Worker deployment manifests, Vite build configurations, pnpm workspace definitions, Drizzle ORM settings, and Docker containerization files.

The **every-app/open-seo** repository organizes its core tooling configurations at the project root to centralize control over the development and deployment pipeline. These **configuration files in the open-seo root directory** define how the monorepo builds, packages, and deploys across multiple environments, from local development to production Cloudflare Workers.

## Cloudflare Workers Configuration

The repository uses three primary files to manage Cloudflare Workers deployment and type safety.

**`wrangler.jsonc`** defines the main deployment configuration for Cloudflare Workers, specifying routes, KV namespace bindings, environment variables, and compatibility settings. This JSONC file allows comments for documenting infrastructure decisions.

**`wrangler.audit.jsonc`** contains auditing-specific Wrangler settings used during CI/CD pipelines to validate configurations before production deployment.

**[`worker-configuration.d.ts`](https://github.com/every-app/open-seo/blob/main/worker-configuration.d.ts)** provides TypeScript type declarations that describe the shape of the global configuration object, enabling type-safe access to environment variables and bindings within Worker code.

- [wrangler.jsonc](https://github.com/every-app/open-seo/blob/main/wrangler.jsonc) – Main deployment configuration
- [wrangler.audit.jsonc](https://github.com/every-app/open-seo/blob/main/wrangler.audit.jsonc) – CI/CD audit settings  
- [worker-configuration.d.ts](https://github.com/every-app/open-seo/blob/main/worker-configuration.d.ts) – TypeScript interface definitions

## Build System and Package Management

The root directory contains configuration files for TypeScript compilation, frontend bundling, and package management across the monorepo workspace.

**[`vite.config.ts`](https://github.com/every-app/open-seo/blob/main/vite.config.ts)** configures the Vite build tool, defining plugins, path aliasing, development server settings, and production optimization strategies for the frontend application.

**[`tsconfig.json`](https://github.com/every-app/open-seo/blob/main/tsconfig.json)** establishes global TypeScript compiler options, including strict type checking settings and path mappings that apply across the entire repository.

**[`pnpm-workspace.yaml`](https://github.com/every-app/open-seo/blob/main/pnpm-workspace.yaml)** declares the workspace layout for pnpm, organizing packages under the `web/` and `src/` directories to enable efficient dependency sharing.

**[`pnpm-lock.yaml`](https://github.com/every-app/open-seo/blob/main/pnpm-lock.yaml)** serves as the deterministic dependency lockfile, ensuring reproducible installations across development and production environments.

- [vite.config.ts](https://github.com/every-app/open-seo/blob/main/vite.config.ts) – Vite build configuration
- [tsconfig.json](https://github.com/every-app/open-seo/blob/main/tsconfig.json) – TypeScript compiler options
- [pnpm-workspace.yaml](https://github.com/every-app/open-seo/blob/main/pnpm-workspace.yaml) – Workspace definition
- [pnpm-lock.yaml](https://github.com/every-app/open-seo/blob/main/pnpm-lock.yaml) – Dependency lockfile

## Database ORM Configuration

Open-SEO supports multiple database backends through separate Drizzle ORM configuration files in the root directory.

**[`drizzle.config.ts`](https://github.com/every-app/open-seo/blob/main/drizzle.config.ts)** configures the SQLite database connection and schema generation for development environments, specifying migration folders and dialect settings.

**[`drizzle-prod.config.ts`](https://github.com/every-app/open-seo/blob/main/drizzle-prod.config.ts)** contains production-optimized Drizzle settings, including connection pooling configurations and optimized migration strategies for high-traffic deployments.

**[`drizzle-pg.config.ts`](https://github.com/every-app/open-seo/blob/main/drizzle-pg.config.ts)** defines PostgreSQL-specific ORM configuration, allowing the application to connect to Postgres databases with appropriate driver settings.

- [drizzle.config.ts](https://github.com/every-app/open-seo/blob/main/drizzle.config.ts) – SQLite ORM configuration
- [drizzle-prod.config.ts](https://github.com/every-app/open-seo/blob/main/drizzle-prod.config.ts) – Production database settings
- [drizzle-pg.config.ts](https://github.com/every-app/open-seo/blob/main/drizzle-pg.config.ts) – PostgreSQL configuration

## Containerization and Self-Hosting

For teams deploying Open-SEO on private infrastructure, the root directory includes Docker and Compose configurations.

**[`compose.yaml`](https://github.com/every-app/open-seo/blob/main/compose.yaml)** defines the Docker Compose orchestration for self-hosted deployments, specifying service dependencies, volume mappings, and network configurations required to run the full application stack.

**`Dockerfile.selfhost`** provides the container build instructions specifically optimized for self-hosted environments, including multi-stage builds for minimizing image size and security hardening steps.

- [compose.yaml](https://github.com/every-app/open-seo/blob/main/compose.yaml) – Docker Compose orchestration
- [Dockerfile.selfhost](https://github.com/every-app/open-seo/blob/main/Dockerfile.selfhost) – Self-hosted container build

## AI Assistant Configuration

**[`opencode.json`](https://github.com/every-app/open-seo/blob/main/opencode.json)** stores metadata for the Opencode AI assistant, including project descriptions, entry point definitions, and context settings that help AI tools understand the codebase structure.

- [opencode.json](https://github.com/every-app/open-seo/blob/main/opencode.json) – Opencode assistant metadata

## Accessing Root Configuration Files in Code

You can import and inspect these configuration files programmatically to build tooling or validate settings.

### Loading Vite Configuration

```typescript
// scripts/analyze-build.ts
import viteConfig from '../vite.config.ts';

console.log('Configured plugins:', viteConfig.plugins?.map(p => p.name));
console.log('Build target:', viteConfig.build?.target);

```

### Reading Wrangler Configuration

```typescript
// scripts/validate-deployment.ts
import wranglerConfig from '../wrangler.jsonc' assert { type: 'json' };

console.log(`Deploying to account: ${wranglerConfig.account_id}`);
console.log(`Compatibility date: ${wranglerConfig.compatibility_date}`);

```

### Initializing Drizzle with Root Config

```typescript
// scripts/db-setup.ts
import { drizzle } from 'drizzle-orm/better-sqlite3';
import Database from 'better-sqlite3';
import config from '../drizzle.config.ts';

const sqlite = new Database(config.dbCredentials.url);
const db = drizzle(sqlite);

```

## Summary

- The **open-seo root directory** contains **13+ configuration files** managing the entire development lifecycle.
- **Wrangler files** (`wrangler.jsonc`, `wrangler.audit.jsonc`) control Cloudflare Workers deployment and auditing.
- **Vite and TypeScript configs** ([`vite.config.ts`](https://github.com/every-app/open-seo/blob/main/vite.config.ts), [`tsconfig.json`](https://github.com/every-app/open-seo/blob/main/tsconfig.json)) manage frontend builds and type checking.
- **Drizzle configurations** support multiple database backends including SQLite and PostgreSQL.
- **Docker files** enable self-hosted deployments via containerization.
- All configuration files follow standard naming conventions and are linked directly to the GitHub source for reference.

## Frequently Asked Questions

### What is the purpose of wrangler.jsonc in Open-SEO?

The `wrangler.jsonc` file serves as the primary configuration manifest for Cloudflare Workers deployment. It defines the worker name, entry point, routes, KV namespace bindings, and environment variables required for the application to run on Cloudflare's edge network. The `.jsonc` extension allows JavaScript-style comments for documenting infrastructure decisions directly in the configuration file.

### How do the Drizzle configuration files differ in Open-SEO?

Open-SEO maintains three separate Drizzle configuration files to support different database environments. [`drizzle.config.ts`](https://github.com/every-app/open-seo/blob/main/drizzle.config.ts) targets SQLite for local development, [`drizzle-prod.config.ts`](https://github.com/every-app/open-seo/blob/main/drizzle-prod.config.ts) contains optimized settings for production SQLite deployments including connection pooling, and [`drizzle-pg.config.ts`](https://github.com/every-app/open-seo/blob/main/drizzle-pg.config.ts) configures PostgreSQL connections for teams requiring a full-featured database backend. Each file specifies a different dialect and driver credentials appropriate for its target environment.

### Can I use Docker to self-host Open-SEO using the root configuration files?

Yes, the repository provides [`compose.yaml`](https://github.com/every-app/open-seo/blob/main/compose.yaml) and `Dockerfile.selfhost` specifically for self-hosted deployments. The [`compose.yaml`](https://github.com/every-app/open-seo/blob/main/compose.yaml) orchestrates the multi-service architecture including the web application and any required backing services, while `Dockerfile.selfhost` contains the optimized build instructions for creating a production-ready container image. These files can be used with standard Docker Compose commands to deploy Open-SEO on private infrastructure without relying on Cloudflare Workers.

### How does the pnpm-workspace.yaml organize the monorepo?

The [`pnpm-workspace.yaml`](https://github.com/every-app/open-seo/blob/main/pnpm-workspace.yaml) file defines the package layout for the pnpm monorepo workspace, typically specifying directories like `web/` and `src/` as package locations. This configuration enables pnpm to hoist shared dependencies efficiently, manage cross-package scripts, and maintain a single lockfile ([`pnpm-lock.yaml`](https://github.com/every-app/open-seo/blob/main/pnpm-lock.yaml)) across the entire repository while keeping node_modules deduplicated.