Skip to content

Conversation

@rahul240699
Copy link
Contributor

Added Digital ocean single and multi agent deployment

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds comprehensive DigitalOcean deployment support for NANDA agents, enabling both single and multi-agent deployments on DigitalOcean droplets. The changes introduce two new deployment scripts with similar functionality to existing AWS deployment scripts, along with detailed documentation.

Key Changes:

  • Added single-agent deployment script for DigitalOcean with configurable parameters
  • Added multi-agent deployment script supporting supervisor-based process management
  • Updated main scripts README to reference DigitalOcean as a supported cloud provider

Reviewed Changes

Copilot reviewed 5 out of 9 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
scripts/digitalocean/single-agent-deployment.sh New script for deploying a single NANDA agent on DigitalOcean droplet with full configuration options
scripts/digitalocean/multi-agent-deployment.sh New script for deploying multiple agents on one droplet using supervisor for process management
scripts/digitalocean/README.md Comprehensive documentation for DigitalOcean deployments including usage examples, troubleshooting, and best practices
scripts/aws/README.md Updated to indicate multi-cloud support and reference DigitalOcean documentation
scripts/README.md Updated to list DigitalOcean as a supported provider and reorganize documentation structure
Comments suppressed due to low confidence (1)

scripts/digitalocean/README.md:1

  • Documentation states REGISTRY_URL is 'Optional' but the actual script at line 54 of single-agent-deployment.sh shows 'None' as the default when no value is provided, not 'http://registry.chat39.com:6900'. The documentation should either show 'None' as the default or clarify this discrepancy.
# DigitalOcean Deployment Scripts for NANDA Agents

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@rahul240699 rahul240699 linked an issue Oct 29, 2025 that may be closed by this pull request
@Dislevekanku
Copy link
Collaborator

Dislevekanku commented Dec 1, 2025

Hi @rahul240699, great work on adding DigitalOcean support. I reviewed the deployment for the single agent script and overall it’s clean, well-structured, and easy to follow. A few notes:

What’s working well:

Clear positional arguments with sensible defaults

Good validation and error handling (set -e, doctl install/auth checks)

Strong logging and user guidance

Robust IP retrieval logic with retries and validation

Automatic SSH key and firewall setup is convenient

PUBLIC_URL generation is correct and reliable

Suggestions / Questions:

  1. API key handling (security)
    ANTHROPIC_API_KEY is passed as a positional argument, which exposes it in shell history and ps.
    Suggestion: support an env var first, fallback to arg:

ANTHROPIC_API_KEY="${ANTHROPIC_API_KEY:-$2}"

  1. No cleanup if deployment fails halfway
    With set -e, failures after droplet/firewall creation leave resources running.
    Suggestion: optional cleanup trap to delete partial resources.

  2. Optional enhancement
    A lightweight post-deployment health check (curl) could help users confirm the agent is running.

@Dislevekanku
Copy link
Collaborator

I reviewed the multi-agent DigitalOcean deployment script. A few notes:

What’s working well:

Clear parameter structure (API key + JSON config + optional settings)

Good validation: JSON parsing, port uniqueness checks, and resource-size warnings

Strong use of supervisor for managing multiple agents (more robust than nohup)

Firewall rules generated dynamically based on agent ports

Reliable PUBLIC_URL computation for each agent

Helpful per-agent health checks and excellent logging throughout

Clear final summary with all agent URLs, SSH instructions, and cleanup commands

Suggestions / Questions:

  1. API key handling (security)
    Same as the single-agent script: ANTHROPIC_API_KEY is passed as a positional arg and will appear in shell history / ps.
    Suggestion: support environment variables first, fallback to arg.

  2. No cleanup if deployment fails midway
    If droplet or firewall creation succeeds but a later step fails, resources remain running.
    Suggestion: consider adding an optional cleanup trap.

  3. JSON config input
    Accepting JSON strings is useful, but file-based config is safer.
    Might be worth recommending file-based usage in the README.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Adding Support For Multiple Deployment Cloud Platforms

3 participants