Version: 1.0.0
Last Updated: December 24, 2025
Repository: https://github.com/enuno/dokploy
Project Lead: Ryno Crypto Mining Services - ServerDomes Network Engineering
This repository contains production-ready Dokploy application templates with integrated Cloudflare services (Workers, Pages, D1, R2, KV, Analytics Engine). The project is managed by a unified multi-agent AI coding system that ensures consistent quality, rapid iteration, and automated validation.
- β Self-Contained Templates - Each template is a complete Docker Compose + template.toml package
- β Cloudflare Integration - Workers, Pages, D1, R2, KV support built-in
- β Production-Ready - Tested, validated, staged before PR submission
- β AI-Assisted - Claude designs, Cursor implements, Cline validates, Windsurf orchestrates
- β Automated Validation - >80% test coverage, staging deployment, health checks
- β Zero-Trust Standards - AGENTS.md as centralized source of truth for all agents
-
Clone the repository
git clone https://github.com/enuno/dokploy.git cd dokploy -
Set up environment
cp .env.example .env.local # Edit .env.local with your Cloudflare credentials -
Install dependencies (if using validation scripts)
pnpm install
-
View available templates
cat meta.json npm run validate:all
Claude Code uses a skills-first approach - instead of specialized agents, you use generic agents that load skills progressively:
-
Create Dokploy Template (Skills-First Command)
/dokploy-create [application-name]How it works:
- Generic Builder agent executes the command
- Skills loaded progressively (dokploy-compose-structure, dokploy-template-toml, etc.)
- 35% fewer tokens than traditional multi-agent approach
- Maintained context throughout the workflow
-
Required Skills (Project-Managed)
.claude/skills/ βββ dokploy-compose-structure/ βββ dokploy-template-toml/ βββ dokploy-traefik-routing/ βββ dokploy-health-patterns/ βββ dokploy-cloudflare-integration/ βββ dokploy-environment-config/ βββ dokploy-security-hardening/ βββ dokploy-template-validation/ βββ dokploy-multi-service/Skills are:
- Portable (work across projects)
- Versioned independently
- Loaded only when needed
- Maintained separately
See: AGENTS.md for skills documentation
-
Legacy Multi-Agent Documentation (Reference Only)
The following files document the previous multi-agent approach and are kept for reference:
- CURSOR.md - Cursor IDE multi-agent configuration
- CLINE.md - Cline/Claude Dev MCP execution
- WINDSURF.md - Windsurf async orchestration
- COPILOT.md - GitHub Copilot inline suggestions
Current Recommendation: Use Claude Code with skills-first approach for 35% token efficiency vs multi-agent patterns
This repository supports building custom Docker images for your local registry that can be seamlessly integrated into Dokploy templates.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 1. Build Custom Container (/create-container) β
β β’ Build from Dockerfiles/ directory β
β β’ Push to registry.hashgrid.net β
β β’ Update Dockerfiles/README.md index β
βββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 2. Create Dokploy Template (/dokploy-create) β
β β’ Reference custom image from registry β
β β’ Use registry.hashgrid.net/app:tag in compose β
β β’ Complete template with custom image β
βββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 3. Deploy to Dokploy β
β β’ Template uses your custom image β
β β’ Image pulled from local registry β
β β’ No external dependencies β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Create custom Dockerfiles in Dockerfiles/ directory:
Dockerfiles/
βββ README.md # Auto-generated index of all images
βββ bitcoind/
β βββ Dockerfile # Bitcoin Core v30.0
βββ custom-nginx/
β βββ Dockerfile # Nginx with custom modules
βββ my-app/
βββ Dockerfile # Your custom application
Build and push to registry:
# Build Bitcoin Core image
/create-container Dockerfiles/bitcoind/Dockerfile bitcoind:30.0
# Build with auto-generated tag
/create-container Dockerfiles/my-app/Dockerfile
# Result:
# β
Image pushed to registry.hashgrid.net/bitcoind:30.0
# β
Dockerfiles/README.md updated with index entryView available images:
cat Dockerfiles/README.mdOption 1: Reference during template creation
/dokploy-create my-bitcoin-stackClaude Code will detect custom images in your registry and offer them during template generation.
Option 2: Manual reference in docker-compose.yml
services:
bitcoind:
image: registry.hashgrid.net/bitcoind:30.0 # Your custom image
restart: always
volumes:
- bitcoin-data:/data
networks:
- app-net- β Version Control - Track all custom image versions
- β No External Dependencies - Images stored locally
- β Faster Deployments - No pulling from external registries
- β Security Auditing - Build images from verified Dockerfiles
- β Consistency - Same images across all deployments
- β Custom Patches - Apply security patches immediately
The Dockerfiles/README.md maintains a complete index:
| Application | Dockerfile Path | Latest Tag | Registry URL | Last Built |
|---|---|---|---|---|
| bitcoind | bitcoind/Dockerfile | 30.0 | registry.hashgrid.net/bitcoind:30.0 | 2025-12-29 08:46 UTC |
Auto-updated by /create-container command
- README.md β You are here (project overview)
- AGENTS.md β START HERE (Universal standards & source of truth)
- SKILLS.md π Skills Ecosystem (v2.0+ skills-first architecture)
- CLAUDE.md - Claude Code skills-first configuration
- SKILLS.md - Complete skills ecosystem documentation
- .claude/commands/dokploy-create.md - Primary command
- .claude/skills/ - Individual skill definitions
- CURSOR.md - Cursor IDE configuration (v1.x multi-agent)
- COPILOT.md - GitHub Copilot inline suggestions
- CLINE.md - Cline/Claude Dev MCP execution
- WINDSURF.md - Windsurf async orchestration
- docs/MULTIAGENTPLAN.md - Multi-agent workflows & handoffs
- docs/STAGING.md - Staging environment setup
- docs/API.md - Cloudflare API integration guide
- docs/SECURITY.md - Security policies & audit logging
- docs/DESIGNSYSTEM.md - Dokploy template design patterns
- .aiignore - Files excluded from AI context
- .env.example - Environment variable template
- ai-agent.config.json - Agent service configuration
- .cursor/settings.json - Cursor IDE workspace config
- .windsurfrules - Windsurf async workflow definition
- .clinerules - Cline MCP server configuration
Role: Strategic planning, architecture design, complex problem-solving
When to Use: "Design a template for..."
Output: Architecture documents, design specifications, guidance
File: CLAUDE.md
# Example session start
"Hello! I'm working on Dokploy templates.
Reference: AGENTS.md is my source of truth for all standards.
Design a Grafana + Prometheus monitoring stack template."Role: Hands-on code generation, local editing, fast iteration
When to Use: "@builder Implement..."
Output: Template files (docker-compose.yml, template.toml, etc.)
File: CURSOR.md
# In Cursor IDE
@builder Implement docker-compose.yml and template.toml based on architecture
@architect Review the template and suggest improvements
@cloudflare Add Cloudflare Workers integrationRole: Command execution, testing, validation, real-time feedback
When to Use: "Cline, validate templates and run tests"
Output: Test reports, validation results, staging URLs
File: CLINE.md
# From Claude/Cursor/Terminal
npm run validate:all # Validate all templates
npm run test:coverage # Full test suite with coverage
npm run deploy:staging # Deploy to staging
npm run test:cloudflare # Test CF API integrationRole: Background workflows, continuous monitoring, multi-agent coordination
When to Use: "@windsurf-build Create template" (with async validation)
Output: Async notifications, task queue status, continuous monitoring
File: WINDSURF.md
# In Windsurf IDE
@windsurf-build Create complete Grafana template
# Windsurf runs validation in background
# Editor remains responsive
# Notified when readyRole: Quick code completions, inline suggestions, pattern helpers
When to Use: Automatic (as you type in Cursor)
Output: Code completions, suggestions, quick fixes
File: COPILOT.md
# In Cursor editor
# Type: [variables]
# Copilot suggests: main_domain = "${domain}"
# Press Tab to acceptT+0: USER REQUESTS
"Create a Redis caching layer template with Cloudflare integration"
β
T+5: CLAUDE (Design Phase)
Designs architecture
Output: Architecture doc with variables, services, CF integration
β
T+10: CURSOR (Implementation Phase)
Opens editor
@builder Implement template from architecture
Copilot suggests patterns as needed
Output: docker-compose.yml, template.toml, meta.json
β
T+15: WINDSURF (Async Monitoring)
Detects new files
Automatically triggers validation pipeline
(Non-blocking - editor continues responsive)
β
T+20: CLINE (Validation - Background)
npm run validate β checks syntax
npm run test:coverage β runs tests
npm run test:cloudflare β tests CF APIs
β
T+25: WINDSURF (Notification)
"Validation complete β
"
Staging URL provided
β
T+30: DEPLOYMENT READY
"Template ready for PR"
Staging: https://dokploy-staging.../redis-xyz
Coverage: 82%
All checks: β
PASS
Total Time: 30 minutes with minimal manual intervention
| Need | File |
|---|---|
| Universal standards (start here!) | AGENTS.md |
| Design a new template | Use Claude + CLAUDE.md |
| Implement template | Use Cursor + CURSOR.md |
| Validate & test locally | Use Cline + CLINE.md |
| Async monitoring while working | Use Windsurf + WINDSURF.md |
| Inline code suggestions | Copilot auto-triggers + COPILOT.md |
| Multi-agent coordination | docs/MULTIAGENTPLAN.md |
| Security policies | docs/SECURITY.md |
| Staging environment | docs/STAGING.md |
| Cloudflare APIs | docs/API.md |
| Design patterns | docs/DESIGNSYSTEM.md |
| Environment setup | .env.example |
| Files to exclude from AI | .aiignore |
/create-container <dockerfile-path> [image-tag]
# Build and push custom image to registry
# Updates Dockerfiles/README.md index
# See: .claude/commands/create-container.md
# Examples:
/create-container Dockerfiles/bitcoind/Dockerfile bitcoind:30.0
/create-container Dockerfiles/myapp/Dockerfile/dokploy-create <app-name> # Create production-ready Dokploy template
# Skills-first progressive loading
# Cloudflare-first integration
# See: .claude/commands/dokploy-create.md
# Examples:
/dokploy-create nextcloud
/dokploy-create https://github.com/paperless-ngx/paperless-ngxnpm run validate:all # Validate all templates
npm run validate -- blueprints/[name] # Validate single template
npm run test:coverage # Full test suite (>80% required)
npm run test -- tests/file.test.ts # Single test filenpm run lint:ts # TypeScript linting
npm run lint:toml # TOML syntax check
npm run lint:docker # Docker Compose syntax
npm run format # Format all files (Prettier)
npm run type-check # TypeScript type checkingnpm run generate:meta # Update meta.json
npm run build:template blueprints/[name] # Build template base64
npm run deploy:staging --template=[name] # Deploy to stagingnpm run test:cloudflare # Test CF API integration
CF_API_TOKEN=xxx npm run test:cloudflare # With tokennpm run docs:generate blueprints/[name] # Generate template docs
npm run docs:all # Generate all docs.env.local(local secrets, gitignored)*.pem,*.key(SSH keys)- Database passwords in code
- Cloudflare API tokens hardcoded
- Any PII or sensitive data
# In template.toml
[variables]
cf_api_token = "${CF_API_TOKEN}" # User provides via .env.local
postgres_password = "${password:32}" # Auto-generated by Dokploycp .env.example .env.local
# Edit with real credentials
# NEVER commit .env.localAll templates must meet:
- β
Validation: 100% pass rate (
npm run validate:all) - β
Test Coverage: >80% (
npm run test:coverage) - β
Staging Deployment: Must succeed (
npm run deploy:staging) - β Cloudflare Integration: API tests pass (if applicable)
- β Documentation: Complete and clear
- β No Secrets: Hardcoded credentials forbidden
-
Design Phase (Claude)
"Design a template for [service] with [features]" Output: Architecture document -
Implementation Phase (Cursor)
"@builder Implement the template" Output: docker-compose.yml, template.toml -
Validation Phase (Cline)
"Validate and test the template" Output: Test results + staging URL -
Submit PR
git checkout -b template/[service-name] git add blueprints/[service-name] git commit -m "template: feat [service-name]: description" git push origin template/[service-name]
Include staging link in PR description!
dokploy-templates-cloudflare/
βββ AGENTS.md # β Universal standards (read first!)
βββ README.md # This file
βββ CLAUDE.md, CURSOR.md, etc. # Agent-specific configs
βββ .aiignore # Files excluded from AI
βββ .env.example # Environment template
βββ ai-agent.config.json # Agent service config
β
βββ Dockerfiles/ # Custom container images
β βββ README.md # Auto-generated registry index
β βββ bitcoind/
β β βββ Dockerfile
β βββ [custom-app]/
β βββ Dockerfile
β
βββ blueprints/ # Template definitions
β βββ grafana/
β βββ pocketbase/
β βββ [new-template]/
β
βββ .claude/ # Claude Code configuration
β βββ commands/
β β βββ create-container.md # Container build workflow
β β βββ dokploy-create.md # Template creation workflow
β βββ skills/ # Skills-first architecture
β βββ dokploy-compose-structure/
β βββ dokploy-cloudflare-integration/
β βββ [other-skills]/
β
βββ tests/ # Test suite
β βββ template-validation.test.ts
β βββ env-variables.test.ts
β βββ cloudflare-api.test.ts
β
βββ docs/ # Extended documentation
β βββ MULTIAGENTPLAN.md
β βββ STAGING.md
β βββ API.md
β βββ SECURITY.md
β βββ DESIGNSYSTEM.md
β
βββ .cursor/ # Cursor IDE config
β βββ settings.json
β βββ rules/
β
βββ .windsurf/ # Windsurf config
β βββ rules/
β
βββ .github/
β βββ copilot-instructions.md
β
βββ meta.json # Template registry
SCENARIO: Add Cloudflare D1 to Pocketbase template
Step 1 - CLAUDE:
User: "How should we integrate Cloudflare D1 with Pocketbase?"
Claude: "Here's the architecture..."
Step 2 - CURSOR:
User: "@cloudflare Add D1 integration"
Cursor: Updates template.toml, creates cloudflare-d1-migration.js
Step 3 - WINDSURF (Async):
Windsurf: Detects file changes, triggers validation
Step 4 - CLINE (Background):
Cline: Runs npm run validate, npm run test:cloudflare
Step 5 - WINDSURF (Notification):
Windsurf: "Validation complete β
"
Result: Complete integration in <10 minutes!
- Dokploy Docs: https://docs.dokploy.com
- Cloudflare API: https://developers.cloudflare.com/api
- GitHub Issues: https://github.com/enuno/dokploy/issues
- Discord: https://discord.gg/dokploy
| Version | Date | Changes |
|---|---|---|
| 1.0.0 | Dec 24, 2025 | Initial release with multi-agent system |
- Read AGENTS.md (source of truth)
- Set up
.env.localfrom.env.example - Run
pnpm install - Run
npm run validate:all(verify setup) - Choose an AI agent for your task:
- Design? β Use Claude
- Implement? β Use Cursor
- Test? β Use Cline
- Monitor? β Use Windsurf
- Quick fix? β Use Copilot
π Ready to create production-ready Dokploy templates with AI assistance?
Start with: AGENTS.md
Maintained By: Ryno Crypto Mining Services - ServerDomes Network Engineering
Last Updated: December 24, 2025
License: MIT (per original Dokploy)