Back to list
digitalocean-labs

app-platform-migration

by digitalocean-labs

Claude/Agent Skills for DigitalOcean App Platform - deployment, migration, networking, database configuration, and troubleshooting

2🍴 1📅 Jan 23, 2026

SKILL.md


App Platform Migration Skill

Migrate existing applications to DigitalOcean App Platform with honest capability assessment.

Philosophy

This skill is an honest partner, not a magic wand. It:

  1. Analyzes thoroughly before proposing changes
  2. Maps what it can with confidence
  3. Acknowledges gaps clearly and specifically
  4. Asks before proceeding when uncertain
  5. Never guesses or ignores incompatibilities

Tip: For complex multi-step migrations, use the planner skill first. For all available skills, see root SKILL.md.


Quick Decision

What's your source platform?
├── Heroku (Procfile, app.json) → See Quick Start below
├── Docker Compose → See Quick Start below
├── Render/Railway/Fly.io → See Quick Start below
├── AWS ECS/App Runner → Complex migration, see reference
└── Just Dockerfile → See Quick Start below

Supported Platforms

PlatformConfig FilesSupport Level
HerokuProcfile, app.jsonFull
Docker Composedocker-compose.ymlFull
Renderrender.yamlFull
Railwayrailway.json, railway.tomlFull
Fly.iofly.tomlFull
AWS ECSTask Definition JSONPartial
AWS App Runnerapprunner.yamlPartial
Generic DockerDockerfile onlyFull

Migration Workflow

Phase 1: DISCOVERY
├── Clone/access repository
├── Detect source platform
├── Analyze architecture
└── Inventory all services

Phase 2: MAPPING
├── Map services → App Platform components
├── Map databases → Managed databases
├── Map storage → Spaces
├── Map secrets → GitHub Secrets
└── Identify unmappable items → REPORT TO USER

Phase 3: REFACTORING
├── Create target branch(es)
├── Update environment variables
├── Remove platform-specific code
├── Update Dockerfile if needed
└── Generate app spec

Phase 4: VALIDATION
├── Validate: doctl apps spec validate
├── Review changes with user
└── Generate migration checklist

Phase 5: HANDOFF
├── Push branches to repo
├── Provide manual steps checklist
└── Suggest deployment skill

Quick Start

Basic Migration

# User provides repo URL
"Migrate this app to App Platform: https://github.com/myorg/myapp"

# AI will:
# 1. Clone and analyze
# 2. Detect platform
# 3. Present mapping proposal
# 4. Ask for approval
# 5. Create branch with refactored code + app spec

With Branch Specification

"Migrate my Heroku app. Put test config in 'migrate/test', prod in 'migrate/prod'"

Full workflows: See workflow-examples.md


Quick Mapping Reference

Heroku

HerokuApp Platform
web processservices
worker processworkers
release phasejobs (PRE_DEPLOY)
heroku-postgresqlManaged Postgres
heroku-redisManaged Valkey
Config VarsGitHub Secrets

Docker Compose

Docker ComposeApp Platform
services.<name>.portsservices
services.<name> (no ports)workers
services.postgresManaged Postgres
services.redisManaged Valkey
volumesSpaces (no persistent volumes)

Full mapping tables: See platform-mappings.md


Unmappable Items (Quick Reference)

SourceIssueOptions
CloudFront CDNNo DO CDNExternal CDN (Cloudflare) or skip
AWS Secrets ManagerDifferent modelGitHub Secrets
Persistent volumesNot supportedSpaces for files, managed DB for data
ARM containersAMD64 onlyRebuild for AMD64

Full list: See platform-mappings.md


Output Artifacts

FilePurpose
.do/app.yamlApp Platform specification
.do/deploy.template.yamlDeploy to DO button
MIGRATION.mdMigration checklist and status
.env.exampleEnvironment variable template

App spec templates: See app-spec-generation.md


Scripts

ScriptPurpose
scripts/detect_platform.pyDetect source platform from files
scripts/analyze_architecture.pyAnalyze application architecture
scripts/generate_app_spec.pyGenerate .do/app.yaml
scripts/generate_checklist.pyGenerate migration checklist

Reference Files


Common Issues (Quick Fixes)

IssueCauseFix
App spec validation failsInvalid YAMLCheck indentation, doctl apps spec validate
Database connection failsWrong URL formatUse ${db.DATABASE_URL} binding
Build failsMissing dependenciesCheck Dockerfile build deps
Port binding failsWrong PORT handlingBind to $PORT or 0.0.0.0:8080
Health check failsWrong pathVerify /health endpoint exists

Full troubleshooting: See code-refactoring.md


Integration with Other Skills

  • → deployment: GitHub Actions workflow after migration
  • → postgres: Complex database setup, schema isolation
  • → devcontainers: Local dev environment post-migration
  • → troubleshooting: Debug container for migration issues

Score

Total Score

75/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

+10
人気

GitHub Stars 100以上

0/15
最近の活動

1ヶ月以内に更新

+10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

+5

Reviews

💬

Reviews coming soon