deployments

create, manage, and control container deployments

create deployment

// Create a deployment from a template
const { deployment, estimatedHourlyCost } = await client.createDeployment({
  nodeId: 'node_abc123',       // Required: target node
  name: 'my-ollama-server',    // Optional: deployment name
  templateId: 'ollama',        // Use a template
  env: {                       // Optional: environment variables
    OLLAMA_MODELS: 'llama2',
  },
});

// Or deploy a custom Docker image
const { deployment } = await client.createDeployment({
  nodeId: 'node_abc123',
  name: 'my-custom-app',
  customImage: 'myregistry/myapp:latest',
  env: {
    API_KEY: 'secret',
  },
});

list deployments

// List your deployments
const { deployments, pagination } = await client.getDeployments({
  status: 'running',  // Filter by status
  page: 1,
  limit: 10,
});

// Status options: 'pending', 'running', 'stopped', 'failed', 'terminated'

get deployment details

// Get deployment details
const deployment = await client.getDeployment('dep_xyz789');

// Access deployment endpoints
console.log(deployment.endpoints);
// [{ type: 'https', url: 'https://my-app.neuranet.network', internalPort: 8080 }]

console.log(deployment.status);      // 'running'
console.log(deployment.createdAt);   // timestamp
console.log(deployment.totalCost);   // credits used

control lifecycle

// Stop a running deployment
await client.stopDeployment('dep_xyz789');

// Start a stopped deployment
await client.startDeployment('dep_xyz789');

// Delete a deployment (stops if running)
await client.deleteDeployment('dep_xyz789');

get deployment logs

// Get deployment logs
const { logs } = await client.getDeploymentLogs('dep_xyz789', {
  tail: 100,  // Last 100 lines
});

logs.forEach(log => {
  console.log(`[${log.stream}] ${log.timestamp}: ${log.message}`);
});

// Stream options:
// - 'stdout': standard output
// - 'stderr': standard error

deployment types

interface Deployment {
  id: string;
  userId: string;
  nodeId: string;
  templateId?: string;
  name: string;
  status: DeploymentStatus;
  endpoints: DeploymentEndpoint[];
  env?: Record<string, string>;
  totalCost: number;
  createdAt: string;
  startedAt?: string;
  stoppedAt?: string;
}

type DeploymentStatus = 
  | 'pending'
  | 'pulling'
  | 'starting'
  | 'running'
  | 'stopping'
  | 'stopped'
  | 'failed'
  | 'terminated';

interface DeploymentEndpoint {
  type: 'http' | 'https' | 'tcp';
  url: string;
  internalPort: number;
}