# Node modules
node_modules/
*/node_modules/
**/node_modules/

/configs/code-server/.local/*
!/configs/code-server/.local/.gitkeep

/configs/code-server/.config/*
!/configs/code-server/.config/.gitkeep

/configs/code-server/data/*
!/configs/code-server/data/.gitkeep

# Root assets (generated by containers)
/assets/

# Homepage logs (created by container)
/configs/homepage/logs/*
!/configs/homepage/logs/.gitkeep

.env
.env*
!.env.example

/configs/cloudflare/*.json
/configs/cloudflare/*.yaml
/configs/cloudflare/*.yml

.excalidraw

/.VSCodeCounter

/influence/app/public/uploadsdata/

# NAR data directory (large voter registry files)
/data/*
!/data/upgrade/
/data/upgrade/*
!/data/upgrade/.gitkeep

# Media files (managed by Docker volumes, not git)
/media/

# Nginx generated configs (built from *.template at container startup)
nginx/conf.d/*.conf

# Ansible per-instance override (generated by Bunker Ops)
docker-compose.override.yml

# Build output
/admin/dist/

# Core dumps
core.*
*/core.*

# MkDocs core binary and container-generated assets (owned by root, not stashable)
/mkdocs/core
/mkdocs/assets/

# Upgrade artifacts
/logs/
/backups/
.upgrade.lock

# Release tarballs (generated by build-release.sh)
/releases/

# API compiled output (generated by tsc, baked into Docker images)
/api/dist/

# TypeScript incremental build cache (machine-specific)
*.tsbuildinfo

# Control Panel runtime data (managed deployments + backups)
/changemaker-control-panel/instances/
/changemaker-control-panel/backups/
logs/

# Playwright MCP browser automation logs
.playwright-mcp/

/docs

# MkDocs build cache (regenerated each build)
/mkdocs/.cache/

# Claude scheduler lock file
.claude/scheduled_tasks.lock

# Old release zip archive (no longer tracked, see chore: gitignore hygiene)
/archive/