Fly.io provider for ComputeSDK - globally distributed sandboxes using Fly Machines
npm install @computesdk/flyFly.io provider for ComputeSDK that enables creating and managing containerized sandboxes on Fly.io infrastructure.
``bash`
npm install @computesdk/fly
The Fly.io provider requires the following environment variables:
`bash`
FLY_API_TOKEN=your_fly_api_token
FLY_ORG=your_organization_slug # optional, defaults to 'personal'
FLY_REGION=your_preferred_region # optional, defaults to 'iad'
Use the gateway for zero-config auto-detection:
`typescript
import { compute } from 'computesdk';
// Auto-detects Fly.io from FLY_API_TOKEN environment variable
const sandbox = await compute.sandbox.create();
console.log(Created machine: ${sandbox.id});
// List all machines
const machines = await compute.sandbox.list();
// Destroy the machine
await sandbox.destroy();
`
For direct SDK usage without the gateway:
`typescript
import { fly } from '@computesdk/fly';
const compute = fly({
apiToken: 'your_api_token', // optional, uses FLY_API_TOKEN env var
appName: 'my-app', // optional, defaults to 'computesdk'
org: 'my-org', // optional, defaults to 'personal'
region: 'iad' // optional, defaults to 'iad'
});
// Create a machine (not an app)
const sandbox = await compute.sandbox.create({ runtime: 'node' });
console.log(Created machine: ${sandbox.id});
// List all machines in the app
const machines = await compute.sandbox.list();
// Destroy the machine (app remains)
await sandbox.destroy();
`
image with HTTP server
- python - Uses python:alpine image with HTTP server
- default - Uses docker.io/traefik/whoami image$3
- apiToken - Fly.io API authentication token
- appName - Fly.io app name (defaults to 'computesdk')
- org - Organization slug (defaults to 'personal')
- region - Deployment region (defaults to 'iad')
- apiHostname - API endpoint (defaults to 'https://api.machines.dev')Architecture
$3
- App: Persistent infrastructure created once per appName`- All operations use the Fly.io Machines REST API
- Apps are created automatically if they don't exist
- Only machines are destroyed, apps persist for reuse
- Machine names are auto-generated with timestamps for uniqueness
- Environment variables take precedence over config options