Space Data Server

raw JSON →
23.3.3-0.1.2-1.40.2 verified Sat Apr 25 auth: no javascript

An open-source waypoint for ingestion and data services based on SpaceDataStandards.org. Current stable version 23.3.3-0.1.2-1.40.2. It helps integrators include space data standards into workflows, ingest from sources like Celestrak OMM, and publish to IPFS. Under heavy development; provides local API, server key management, and data formatting options.

error Error: Cannot find module 'space-data-server'
cause Package not installed or ESM-only module imported with require()
fix
Ensure you have run 'npm install space-data-server' and use ES import syntax: import { startServer } from 'space-data-server'
error TypeError: SDS.startServer is not a function
cause Using default import incorrectly; startServer is a named export
fix
Use named import: import { startServer } from 'space-data-server'
error Error: IPFS node is not reachable
cause IPFS daemon not running or URL misconfigured
fix
Start IPFS daemon (ipfs daemon) or set IPFS_URL environment variable to the correct API address.
error Error: Invalid private key
cause Provided Ethereum private key is not a valid hex string
fix
Provide a valid 64-character hex private key (without 0x).
breaking Major version 23 changed the default export from an object to a named export pattern.
fix Use named imports: import { startServer } from 'space-data-server' instead of const SDS = require('space-data-server')
deprecated The 'localspacedata' API path is deprecated and will be removed.
fix Use the updated API path as documented in the current README.
gotcha Server key must be an Ethereum key; loading from file requires a .json keystore or private key.
fix Ensure the wallet file is in standard Ethereum keystore format or provide a private key.
gotcha IPFS node must be running locally or accessible via URL; server will fail to start otherwise.
fix Start an IPFS daemon or provide a valid IPFS HTTP API URL.
npm install space-data-server
yarn add space-data-server
pnpm add space-data-server

Initialize the server with an Ethereum wallet and IPFS client, then ingest OMM data from Celestrak.

import { startServer, IngestService } from 'space-data-server';
import { ethers } from 'ethers';
import { create } from 'ipfs-http-client';

const ipfs = create({ url: process.env.IPFS_URL ?? 'http://localhost:5001' });
const wallet = new ethers.Wallet(process.env.ETHEREUM_PRIVATE_KEY ?? '');

const server = await startServer({
  port: 3000,
  dataDir: './data',
  ipfs,
  wallet,
});

console.log('Space Data Server running on port', server.port);

const ingest = new IngestService({ server });
await ingest.ingestFromCelestrak();
console.log('Ingested OMM data from Celestrak');