vanman2024

doctl CLI Patterns Skill

```

vanman2024 10 3 Updated 4mo ago

Resources

3
GitHub

Install

npx skillscat add vanman2024/ai-dev-marketplace/plugins-digitalocean-skills-doctl-patterns

Install via the SkillsCat registry.

SKILL.md

doctl CLI Patterns Skill

DigitalOcean CLI (doctl) command patterns for all services.

Usage

!{skill digitalocean:doctl-patterns}

Authentication

# Authenticate with API token
doctl auth init

# Use specific context
doctl auth switch --context personal

# List contexts
doctl auth list

# Validate authentication
doctl account get

Droplets

# Create Droplet
doctl compute droplet create my-server \
  --image ubuntu-22-04-x64 \
  --size s-2vcpu-4gb \
  --region nyc1 \
  --ssh-keys <fingerprint> \
  --enable-monitoring \
  --enable-backups \
  --vpc-uuid <vpc-id> \
  --tag-names "env:production,role:web"

# List Droplets
doctl compute droplet list --format ID,Name,PublicIPv4,Memory,Region

# Get Droplet
doctl compute droplet get <droplet-id>

# Delete Droplet
doctl compute droplet delete <droplet-id>

# Droplet Actions
doctl compute droplet-action power-off <droplet-id>
doctl compute droplet-action power-on <droplet-id>
doctl compute droplet-action reboot <droplet-id>
doctl compute droplet-action snapshot <droplet-id> --snapshot-name "backup-$(date +%Y%m%d)"
doctl compute droplet-action resize <droplet-id> --size s-4vcpu-8gb

VPCs

# Create VPC
doctl vpcs create \
  --name production-vpc \
  --region nyc1 \
  --ip-range 10.10.10.0/24

# List VPCs
doctl vpcs list

# Get VPC members
doctl vpcs list-members <vpc-id>

Firewalls

# Create firewall
doctl compute firewall create \
  --name web-firewall \
  --inbound-rules "protocol:tcp,ports:22,address:10.0.0.0/8" \
  --inbound-rules "protocol:tcp,ports:80,address:0.0.0.0/0" \
  --inbound-rules "protocol:tcp,ports:443,address:0.0.0.0/0" \
  --outbound-rules "protocol:tcp,ports:all,address:0.0.0.0/0" \
  --droplet-ids <droplet-id>

Databases

# Create PostgreSQL
doctl databases create my-db \
  --engine pg \
  --version 16 \
  --region nyc1 \
  --size db-s-2vcpu-4gb \
  --num-nodes 2

# Get connection
doctl databases connection <cluster-id>

# Create database
doctl databases db create <cluster-id> myapp_production

# Create user
doctl databases user create <cluster-id> app_user

Kubernetes

# Create cluster
doctl kubernetes cluster create my-cluster \
  --region nyc1 \
  --version latest \
  --node-pool "name=default;size=s-4vcpu-8gb;count=3;auto-scale=true;min-nodes=2;max-nodes=10"

# Get kubeconfig
doctl kubernetes cluster kubeconfig save my-cluster

# List clusters
doctl kubernetes cluster list

Apps (App Platform)

# Create app
doctl apps create --spec .do/app.yaml

# Update app
doctl apps update <app-id> --spec .do/app.yaml

# List apps
doctl apps list

# Logs
doctl apps logs <app-id> --type run

# Deploy
doctl apps create-deployment <app-id>

Registry

# Create registry
doctl registry create my-registry

# Login
doctl registry login

# Kubernetes integration
doctl registry kubernetes-manifest | kubectl apply -f -

DNS

# Add A record
doctl compute domain records create example.com \
  --record-type A \
  --record-name www \
  --record-data <ip-address> \
  --record-ttl 3600