Catalog npm
Back to packageRELEASE DETAILS

1.0.4

npm

24fire-api

Nutze die 24fire api in Nodejs, sicher und schnell

24fire24fireapiapiflostechnikwelthostingwrapperfireapikvmv2
Published6 Jan 2024
Direct dependencies1
Transitive dependenciesNot calculated

README

Current package documentation

POWERED BY 24FIRE

24fire-api

Ein einfacher Node.js-Wrapper für die 24fire REST-API v2. Verwalte deinen Account, KVM-Server, Domains und Webspaces direkt aus deinem Code.

Features

  • 🔗 Kommunikation über SSL (https://manage.24fire.de/api)
  • 📦 Keine Abhängigkeiten nutzt das eingebaute fetch von Node.js
  • 🧩 Intuitive, verschachtelte Bedienung (fire.kvm(id).backup.list())
  • 🟦 Mitgelieferte TypeScript-Typen
  • ⚡ Schnell & leichtgewichtig

Hinweis: Dies ist Version 2.0. Die API-Struktur hat sich gegenüber v1 komplett geändert (neue Base-URL, neuer Auth-Header, internal_id pro Dienst). Siehe Migration von v1.

Voraussetzungen

  • Node.js 18 oder neuer (wegen des globalen fetch)

Installation

npm install 24fire-api

API-Key erstellen

  1. Logge dich im 24fire Control Panel ein.
  2. Gehe zu Einstellungen → API-Keys und klicke auf „API-Key erstellen“.
  3. Speichere den Key sicher ab – er wird nur einmal angezeigt.

Schnellstart

const FireAPI = require('24fire-api');
// oder:  import FireAPI from '24fire-api';

const fire = new FireAPI('DEIN_API_KEY');

// Account-Infos abrufen
const account = await fire.account.info();
console.log(account.data);

// Alle Dienste anzeigen (hier findest du die internal_id jedes Dienstes)
const services = await fire.account.services();
console.log(services.data);

// Einen Server starten
await fire.kvm('INTERNAL_ID').start();

Jede Methode gibt die API-Antwort im Format { status, message, data } zurück. Bei Fehlern wird ein FireAPIError geworfen (siehe Fehlerbehandlung).


Account

await fire.account.info();        // Account-Informationen (Name, E-Mail, Guthaben …)
await fire.account.services();    // Übersicht aller aktiven Dienste (mit internal_id)
await fire.account.donations();   // Daten zur Spendenseite
await fire.account.affiliate();   // Daten zum Affiliate-System

KVM-Server

Zuerst einen Server über seine internal_id auswählen:

const vm = fire.kvm('INTERNAL_ID');

Allgemein

await vm.config();          // Konfiguration (Hardware, IPs, OS …)
await vm.status();          // Status & Auslastung (running / stopped / …)

await vm.power('start');    // Power-Aktion: 'start' | 'stop' | 'restart'
await vm.start();           // Kurzform für power('start')
await vm.stop();            // Kurzform für power('stop')
await vm.restart();         // Kurzform für power('restart')

Backups

await vm.backup.list();                       // Alle Backups auflisten
await vm.backup.create('Notiz');              // Backup erstellen (24fire+), Notiz optional, max. 24 Zeichen
await vm.backup.createStatus('BACKUP_ID');    // Status der Erstellung abfragen
await vm.backup.restore('BACKUP_ID');         // Backup wiederherstellen (24fire+)
await vm.backup.restoreStatus('BACKUP_ID');   // Status der Wiederherstellung abfragen
await vm.backup.delete('BACKUP_ID');          // Backup löschen

Traffic

await vm.traffic.current();   // Aktueller Traffic-Verbrauch des Monats
await vm.traffic.log();       // Traffic-Log (Messung alle 10 Minuten)

// Traffic-Diagramm generieren (24fire+)
await vm.traffic.chart({
    type: 'both',             // Eingehend / Ausgehend / Beides
    summary: 'DAILY',         // DAILY | HOURLY | NONE
    output: 'apexcharts',     // chartjs | apexcharts | base64
    datapoints: 30,
    size: '900x300',
});

Monitoring

await vm.monitoring.timings();      // Messungen abrufen
await vm.monitoring.incidences();   // Ausfälle abrufen

DDoS (24fire+)

await vm.ddos.get();                // Aktuelle DDoS-Einstellungen abrufen
await vm.ddos.change({
    layer4: 'permanent',
    layer7: 'on',
    ip_address: '88.151.194.253',   // optional; ohne Angabe gilt es für alle IPv4 der VM
});

Domains

const domain = fire.domain('INTERNAL_ID');

await domain.info();        // Domain-Informationen
await domain.dns.list();    // Alle DNS-Einträge

// DNS-Eintrag hinzufügen (24fire+)
await domain.dns.add({ type: 'A', name: '*', data: '1.2.3.4' });

// DNS-Eintrag bearbeiten (24fire+)
await domain.dns.edit({ record_id: 'RECORD_ID', data: '5.6.7.8' });

// DNS-Eintrag entfernen
await domain.dns.remove('RECORD_ID');

Webspace

await fire.webspace('INTERNAL_ID').info();   // Webspace-Daten abrufen

Fehlerbehandlung

Schlägt eine Anfrage fehl (HTTP-Fehler oder status: "error"), wird ein FireAPIError geworfen:

const { FireAPIError } = require('24fire-api');

try {
    await fire.kvm('INTERNAL_ID').start();
} catch (err) {
    if (err instanceof FireAPIError) {
        console.error('API-Fehler:', err.message);
        console.error('HTTP-Status:', err.status);
        console.error('Antwort:', err.response);
    }
}

Migration von v1

v1 (alt)v2 (neu)
Base-URLhttps://api.24fire.dehttps://manage.24fire.de/api
Auth-HeaderX-FIRE-APIKEYX-Fire-Apikey
Server-Auswahlglobal über den Keypro Dienst über die internal_id
Abhängigkeitenaxioskeine (eingebautes fetch)

Beispiel:

// v1
myFireApi.vm().getVMstatus();
myFireApi.vm().startVM();
myFireApi.backup().listBackups();

// v2
fire.kvm('INTERNAL_ID').status();
fire.kvm('INTERNAL_ID').start();
fire.kvm('INTERNAL_ID').backup.list();

Manche Endpunkte (z. B. DNS-Verwaltung, Backups erstellen/wiederherstellen, DDoS, Traffic-Chart) erfordern ein aktives 24fire+ Abonnement.

Author & Credits

Empfehlenswert

Feedback

Wenn du Feedback hast, wende dich an mich unter support@flostechnikwelt.de

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 1

Native requirements
1 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
axios
Environment
{
  "local_name": "axios",
  "alias": false,
  "peer_metadata": null
}
^1.6.4runtime

Distribution files

1 collected
Distribution 1

Source distribution

Source file
Checksums from source
{
  "shasum": "328ec6ecd9524d7ca75724cc7a83fa6d8fb9fa9b",
  "tarball": "https://registry.npmjs.org/24fire-api/-/24fire-api-1.0.4.tgz",
  "fileCount": 4,
  "integrity": "sha512-8UKR3dgnIW7hwAWCdMHdNqP+YTxCGemD1I+lmOAQmYWUzSy2gWeTzva6UCpqVc5Nw4sUUObKeIdGsyOyySdI/g==",
  "signatures": [
    {
      "sig": "MEUCIEXW7HLaPj0CzFYxrP5aT4wAWGQ3HCcHJdwMAT6Nhz2PAiEAqqvVOXah4ofGGyIvGfBHE2gWZRcKwVCC3DOME6lRgo8=",
      "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"
    }
  ],
  "unpackedSize": 18445
}

Repository

PENDING
flostechnikwelt/fireapi-24fire

Shared repository data · GitHub

License detected in repository
Not collected

Repository

PENDING
flostechnikwelt/24fire-api

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 19:03 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:cff23a6d9c42211710049f46d95de1f6c5a13321769beb4abd86cc73eedfb072

Other collected versions

2.0.030 Jun1.0.826 Jan1.0.76 Jan1.0.66 Jan1.0.36 Jan1.0.26 JanView all collected versions →