{"id":18815,"library":"spindb","title":"SpinDB","description":"SpinDB (v0.48.1) is a zero-configuration, Docker-free local database management tool that packages 21 database engines (PostgreSQL, MySQL, MariaDB, SQLite, DuckDB, MongoDB, FerretDB, Redis, Valkey, ClickHouse, Qdrant, Meilisearch, CouchDB, CockroachDB, SurrealDB, QuestDB, TypeDB, InfluxDB, Weaviate, TigerBeetle, LibSQL) into a single CLI. It runs directly on macOS, Linux, and Windows without Docker or VMs, providing commands to create, start, connect, run SQL/shell, backup, and clone databases. The tool persists data in ~/.spindb and exposes connection URLs. It is licensed under PolyForm Noncommercial and requires Node.js >=22 and pnpm >=8. Key differentiators include broad engine support, simple CLI, and no external dependencies like Docker.","status":"active","version":"0.48.1","language":"javascript","source_language":"en","source_url":"https://github.com/robertjbass/spindb","tags":["javascript","hostdb","spindb","postgres","postgresql","postgresql-documentdb","mysql","mariadb","database"],"install":[{"cmd":"npm install spindb","lang":"bash","label":"npm"},{"cmd":"yarn add spindb","lang":"bash","label":"yarn"},{"cmd":"pnpm add spindb","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Requires Node.js >=22 for runtime","package":"node","optional":false}],"imports":[{"note":"SpinDB is primarily a CLI tool; install globally or use npx.","wrong":"npm install spindb (without -g)","symbol":"spindb (CLI)","correct":"npm install -g spindb"},{"note":"Current version 0.48.1 provides only CLI; there is no npm package export for programmatic use.","symbol":"spindb (programmatic usage not supported)","correct":"N/A - no programmatic API"},{"note":"Verb must come first; flags like --engine specify the database type.","wrong":"spindb mydb create (wrong order)","symbol":"spindb create","correct":"spindb create mydb --start --connect"}],"quickstart":{"code":"npm install -g spindb\nspindb create testdb --engine postgresql --start --connect\n# Then inside psql:\nSELECT version();\n\\q\nspindb backup testdb --format sql --out backup.sql","lang":"javascript","description":"Installs SpinDB globally, creates and connects to a PostgreSQL database, runs a query, and creates a backup."},"warnings":[{"fix":"Upgrade Node.js to >=22 (LTS).","message":"Node.js 22+ is required; older versions cause cryptic errors on install.","severity":"gotcha","affected_versions":"<0.48"},{"fix":"On Windows, use FerretDB v1 explicitly with --ferretdb-version 1, or use MongoDB engine instead.","message":"FerretDB v2 requires macOS/Linux; v1 on Windows uses plain PostgreSQL backend (not a full MongoDB replacement).","severity":"deprecated","affected_versions":">=0.40"},{"fix":"Backup regularly; use spindb backup before deleting ~/.spindb.","message":"Data persists in ~/.spindb/; accidental deletion of this directory removes all databases.","severity":"gotcha","affected_versions":">=0.1"},{"fix":"Use 'spindb run mydb -c \"SQL\"' instead of 'spindb run mydb SQL'.","message":"CLI commands changed in v0.30.0: 'spindb run' now requires -c or file argument; inline scripts removed.","severity":"breaking","affected_versions":">=0.30"},{"fix":"Install WSL and run the spindb commands inside WSL, or use a different engine.","message":"ClickHouse and LibSQL on Windows require WSL; native Windows is not supported.","severity":"gotcha","affected_versions":">=0.1"},{"fix":"Contact the author for commercial licenses; do not use in paid products without permission.","message":"License is PolyForm Noncommercial; commercial use requires a separate license.","severity":"deprecated","affected_versions":">=0.1"},{"fix":"Use 'npm install -g spindb' without sudo, or configure npm prefix to user directory.","message":"Global install may require sudo on macOS/Linux; non-sudo installs may break PATH.","severity":"gotcha","affected_versions":">=0.1"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Run 'sudo npm install -g spindb' or configure npm prefix: 'npm config set prefix ~/.npm-global' then add to PATH.","cause":"Installing global npm packages without proper sudo or prefix.","error":"Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/spindb'"},{"fix":"Add npm global bin to PATH: export PATH=$(npm bin -g):$PATH (Linux/macOS) or use npx spindb.","cause":"Global npm module not added to PATH.","error":"spindb: command not found"},{"fix":"Upgrade Node.js to v22 or later; use nvm or download from nodejs.org.","cause":"Outdated Node.js version.","error":"Error: This version of spindb requires Node.js >=22"},{"fix":"Use 'spindb create mydb --port 5433' to assign a different port, or stop the existing service on 5432.","cause":"Default PostgreSQL port 5432 is already occupied.","error":"Error: listen EADDRINUSE: address already in use :::5432"},{"fix":"Check internet connection or proxy; set HTTP_PROXY if behind corporate firewall.","cause":"Network issue or GitHub blocked; SpinDB downloads database binaries from GitHub.","error":"Error: (FetchError) request to https://github.com/... failed, reason: connect ECONNREFUSED"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}