{"id":18813,"library":"space-data-server","title":"Space Data Server","description":"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.","status":"active","version":"23.3.3-0.1.2-1.40.2","language":"javascript","source_language":"en","source_url":null,"tags":["javascript"],"install":[{"cmd":"npm install space-data-server","lang":"bash","label":"npm"},{"cmd":"yarn add space-data-server","lang":"bash","label":"yarn"},{"cmd":"pnpm add space-data-server","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Used for Ethereum key management and server key updates","package":"ethers","optional":false},{"reason":"Required for IPFS folder publishing and file pinning/unpinning","package":"ipfs-http-client","optional":false},{"reason":"HTTP server framework for the local API","package":"express","optional":false}],"imports":[{"note":"ESM-only; CommonJS require not supported.","wrong":"const SpaceDataServer = require('space-data-server')","symbol":"default","correct":"import SpaceDataServer from 'space-data-server'"},{"note":"Named export for initializing the server.","wrong":"","symbol":"startServer","correct":"import { startServer } from 'space-data-server'"},{"note":"Named export, not default.","wrong":"import IngestService from 'space-data-server'","symbol":"IngestService","correct":"import { IngestService } from 'space-data-server'"},{"note":"TypeScript type import; not a runtime value.","wrong":"import { ServerConfig } from 'space-data-server'","symbol":"ServerConfig","correct":"import type { ServerConfig } from 'space-data-server'"}],"quickstart":{"code":"import { startServer, IngestService } from 'space-data-server';\nimport { ethers } from 'ethers';\nimport { create } from 'ipfs-http-client';\n\nconst ipfs = create({ url: process.env.IPFS_URL ?? 'http://localhost:5001' });\nconst wallet = new ethers.Wallet(process.env.ETHEREUM_PRIVATE_KEY ?? '');\n\nconst server = await startServer({\n  port: 3000,\n  dataDir: './data',\n  ipfs,\n  wallet,\n});\n\nconsole.log('Space Data Server running on port', server.port);\n\nconst ingest = new IngestService({ server });\nawait ingest.ingestFromCelestrak();\nconsole.log('Ingested OMM data from Celestrak');","lang":"typescript","description":"Initialize the server with an Ethereum wallet and IPFS client, then ingest OMM data from Celestrak."},"warnings":[{"fix":"Use named imports: import { startServer } from 'space-data-server' instead of const SDS = require('space-data-server')","message":"Major version 23 changed the default export from an object to a named export pattern.","severity":"breaking","affected_versions":">=23.0.0"},{"fix":"Use the updated API path as documented in the current README.","message":"The 'localspacedata' API path is deprecated and will be removed.","severity":"deprecated","affected_versions":">=22.0.0"},{"fix":"Ensure the wallet file is in standard Ethereum keystore format or provide a private key.","message":"Server key must be an Ethereum key; loading from file requires a .json keystore or private key.","severity":"gotcha","affected_versions":">=20.0.0"},{"fix":"Start an IPFS daemon or provide a valid IPFS HTTP API URL.","message":"IPFS node must be running locally or accessible via URL; server will fail to start otherwise.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Ensure you have run 'npm install space-data-server' and use ES import syntax: import { startServer } from 'space-data-server'","cause":"Package not installed or ESM-only module imported with require()","error":"Error: Cannot find module 'space-data-server'"},{"fix":"Use named import: import { startServer } from 'space-data-server'","cause":"Using default import incorrectly; startServer is a named export","error":"TypeError: SDS.startServer is not a function"},{"fix":"Start IPFS daemon (ipfs daemon) or set IPFS_URL environment variable to the correct API address.","cause":"IPFS daemon not running or URL misconfigured","error":"Error: IPFS node is not reachable"},{"fix":"Provide a valid 64-character hex private key (without 0x).","cause":"Provided Ethereum private key is not a valid hex string","error":"Error: Invalid private key"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}