soumen8890 / Koyeb.js

An unofficial wrapper for interacting with the Koyeb API

Home Page:https://npmjs.com/package/koyeb.js

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

.js

Commit Activity Github Repo Size

Package Quality

An unofficial wrapper for the Koyeb REST API, enabling you to interact with apps, services and more.
Designed to have a simple, intuitive syntax using asynchronous functions.

This package depends on Undici, a modern HTTP client with a very fast request implementation.

Features

🟩 Completed
  • Service control (resume, pause, re-deploy)
  • Get a list of services and apps
  • Support for multiple apps using classes
  • Get a specific instance, or the latest
  • Execute commands on an instance
🟨 In Progress
  • Deployment & related methods
  • Finish instance & service
  • Metrics
🟥 Not Implemented / Future Ideas
  • Logs
  • Secrets

Install & Import

npm i koyeb.js
// ESM (Supports top-level await)
import * as Koyeb from 'koyeb.js'

// or
const Koyeb = require('koyeb.js')

Secure your Auth Token

  1. Head to Account ➟ API
  2. Create a new access token and copy the generated string.
  3. Head to your app settings ➟ Environment Variables ➟ Add Variable
  4. Name the variable AUTH_TOKEN and paste your copied token in the 'value' field.
  5. Hit 'Apply'. You can now access your token without exposing it to others!
const token = process.env.AUTH_TOKEN

Initialize an App

const myApp = await new Koyeb.App(token).fromName('appName')

// Alternatively, you can replace fromName with 2 other methods.
.fromID('13j25-4323b2-671f') // The ID of the application.
.fromIndex(0) // The index of the app in your app list.

Service creation and control

// Here we create a service from the first in the app list.
const services = await myApp.listServices(),
      service = new Koyeb.Service(services[0].id, token)

console.log(service.paused()) // Calls status() internally and returns a true if we received 'PAUSED'.
console.log(service.status()) // Calls info() internally and returns a string.
console.log(service.info()) // Returns a JSON object.

// Each will return true/false if the request succeeded/failed.
// Calling resume/pause when already running/paused will return false.
await service.redeploy()
await service.resume()
await service.pause()

Get an Instance

// Returns the application's current instance.
const myInstance = await new Koyeb.Instance(appID, token).latest()

// Or get a specific instance by its ID.
const myInstance = await new Koyeb.Instance.get(instanceID, token)

Execute commands

// Returns a promise containing the command result.
// This example outputs a list of files & directories on the instance.
const ls = await instance.executeCommand({ command: ['ls'] })
console.log(ls)

// You can also pass 3 optional keys (ttyWidth, ttyHeight, data).
// More info -> https://www.koyeb.com/docs/api#operation/ExecCommand

About

An unofficial wrapper for interacting with the Koyeb API

https://npmjs.com/package/koyeb.js


Languages

Language:JavaScript 100.0%