Polyrepo Configuration
Overdeck supports projects with multiple git repositories (like separate frontend/backend repos). Configure workspace settings directly inprojects.yaml to manage polyrepo workspaces.
Overview
Polyrepo workspaces create git worktrees in each repository, allowing agents to work across multiple codebases simultaneously while maintaining proper git isolation.Recommended: Separate Infra Repository
For polyrepo projects, we strongly recommend maintaining a dedicated infrastructure repository alongside your code repos:- Version-controlled templates - Dev script changes are tracked and shared
- Centralized configuration - DNS, ports, Traefik rules in one place
- Workspace consistency - All workspaces use the same templates
- Team collaboration - Infra changes go through normal PR review
- Easy updates - Fix a template once, regenerate affected workspaces
Configuration in projects.yaml
Template Placeholders
Service Templates
Overdeck provides built-in templates for common frameworks. Use these to avoid boilerplate:
Use a template by referencing it in your service config:
/pan-workspace-config skill for complete documentation.
What Your Project Needs to Provide
Overdeck is an orchestration layer - it manages workspaces, agents, and workflows, but your project repository provides the actual templates and configuration. Projects can be as simple as just a git repo (for worktree-only workspaces) or as complex as a full polyrepo with Docker, Traefik, and database seeding.Required: Workspace Templates
Your project needs a.devcontainer/ or template directory with:
⚠️ Important: File Permissions Always run containers as a non-root user (e.g.,user: vscode) to avoid permission issues. Files created by root-owned containers cannot be removed bypan workspace destroywithout sudo. The Microsoft devcontainers base image includes avscodeuser (UID 1000) that matches most host users.
Required for HTTPS: Traefik Configuration
If you want local HTTPS (recommended), provide a Traefik compose file:Required for Database Seeding: Seed Directory
For projects with databases:Optional: Agent Templates
For customizing how agents work in your project:Quick Checklist
Example: Minimal Setup
For a simple monorepo with no Docker:Container Configuration Tips
When setting up Docker containers for workspaces, avoid these common pitfalls: Maven projects:- DO NOT set
MAVEN_CONFIG=/some/pathas an environment variable - Maven interprets
MAVEN_CONFIGas additional CLI arguments, not a directory path - This causes “Unknown lifecycle phase” errors (e.g., “Unknown lifecycle phase /maven-cache”)
- Instead, use
-Dmaven.repo.local=/path/to/cachein the Maven command
- Set
PNPM_HOME=/pathto configure the pnpm store location - Mount a named volume for the store to share across containers
Polyrepo Merge Considerations
⚠️ Important: Polyrepo merging requires special handling. The current merge-agent is optimized for monorepos.For polyrepo projects:
Current workflow for polyrepo merges:
- Agent completes work and pushes branches to each repo
- Create merge requests for each repo manually (or via
gh pr create) - Review and merge each MR separately
- The “Approve & Merge” button is not yet polyrepo-aware
Quality Gates in Polyrepo Projects
Quality gates support polyrepo projects through path-based filtering: each gate runs only when the repo being merged matches the gate’spath field.
How it works
When a polyrepo merge runs, Overdeck computes the relative path from the project root to the sub-repo being merged (e.g.,frontend or backend). It then filters the configured quality gates
to only those whose path field matches that relative path.
Configuration example
Important: Thepathvalue in a quality gate must exactly match thepathvalue of the corresponding repo in theworkspace.reposlist (both relative to the project root).
Large-Scale Projects: Progressive Polyrepo
For projects with 10 or more repositories, consider using progressive polyrepo mode instead of the standard all-at-once approach.
Benefits of progressive mode:
- Faster workspace creation — only meta/docs repos initially
- Less disk usage — agents only check out repos they need
- Flexible scope — agents add repos as they discover what’s needed
- Cleaner meta repos — symlinked as read-only, no feature branches
Related Guides
- Project Registry - Project configuration
- Workspaces - Workspace management
- Docker & HTTPS Setup - Docker and networking