Just works. Batteries included. Zero configuration.
jspod is the easiest way to run a Solid server. It's a thin wrapper around JavaScriptSolidServer with sensible defaults and a beautiful CLI.
# Run instantly with npx (no installation required!)
npx jspod
# That's it! Your Solid server is running at http://localhost:3000- Zero configuration - Smart defaults for everything
- One command -
npx jspodand you're running - Beautiful CLI - Gorgeous terminal output that makes you smile
Built on JavaScriptSolidServer with all features enabled:
- ✅ Solid Protocol - Full Solid spec compliance
- ✅ WebID Authentication - Identity and access control
- ✅ Passkey Support - Modern passwordless authentication
- ✅ WebSocket Notifications - Real-time updates
- ✅ JSON-LD Native - First-class JSON-LD support
- ✅ Content Negotiation - Turtle, JSON-LD, and more
npx jspodnpm install -g jspod
jspodnpm install jspod
npx jspod# Start with defaults (port 3000, single-user)
jspod
# Custom port
jspod --port 8080
# Custom data directory
jspod --root /var/pods
# Multi-user mode
jspod --multiuserOptions:
-p, --port <number> Port to listen on (default: 3000)
-h, --host <address> Host to bind to (default: 0.0.0.0)
-r, --root <path> Data directory (default: ./pod-data)
--multiuser Enable multi-user mode
--no-auth Disable authentication
--help Show help message
# Set JWT secret (recommended for production)
export TOKEN_SECRET="your-secret-key-here"
# Set environment
export NODE_ENV="production"
# Run server
jspod-
Set TOKEN_SECRET
export TOKEN_SECRET="$(openssl rand -base64 32)"
-
Use a proper domain (not localhost)
- Passkeys require HTTPS in production
- Get SSL cert (Let's Encrypt recommended)
-
Run as a service
# Example systemd service sudo systemctl enable jspod sudo systemctl start jspod
-
Set up backups
- Back up
./pod-datadirectory - Contains all user data and credentials
- Back up
-
Monitor logs
jspod --verbose > jspod.log 2>&1
# Start your personal Solid pod
jspod
# Visit http://localhost:3000 in your browser
# Register with passkey, start storing data!# Run a server for multiple users
jspod --multiuser --port 443 --root /var/solid-pods
# Users can register and get their own pod space# Run on custom port for development
jspod --port 8080 --root ./dev-data| Feature | JavaScriptSolidServer | jspod |
|---|---|---|
| Installation | npm install -g javascript-solid-server |
npx jspod |
| Configuration | Config file required | Smart defaults |
| Commands | jss start [options] |
jspod |
| First run | 5+ steps | 1 command |
| Use case | Power users, customization | Quick start, demos |
When to use JavaScriptSolidServer: Production deployments, custom configuration, advanced features
When to use jspod: Quick demos, local development, "just want it to work"
jspod is a thin wrapper that:
- Provides sensible defaults
- Creates beautiful CLI output
- Manages the lifecycle of JavaScriptSolidServer
- Handles graceful shutdown
Under the hood, jspod runs JavaScriptSolidServer with these options:
| Feature | JSS Flag | Description |
|---|---|---|
| WebSocket Notifications | --notifications |
Real-time updates via WebSockets |
| Content Negotiation | --conneg |
Turtle, JSON-LD, and more |
| Single-user Mode | --no-multiuser |
One pod per server (use --multiuser flag to change) |
| Passkey Auth | (built-in) | Automatic in JSS - no flag needed |
| WebID | (built-in) | Core Solid protocol feature |
{
port: 3000, // Easy to remember
host: '0.0.0.0', // Accept connections from anywhere
root: './pod-data', // Local data directory
multiuser: false, // Single pod per server
TOKEN_SECRET: (auto) // JWT secret (auto-generated, change for production)
}Step 1: Start the server
npx jspodStep 2: Open your browser to http://localhost:3000
Step 3: Register with a passkey
- Click "Register" or "Sign Up"
- Use your device's biometric auth (fingerprint, Face ID, etc.)
- Your WebID will be created automatically
Step 4: Start using your pod!
- Upload files, create resources
- Use Solid apps to connect to your pod
- Your data stays on your server
Troubleshooting:
- Port in use? Run
jspod --port 3001 - Data location? Check
./pod-datadirectory - Can't register? Make sure your browser supports WebAuthn (Chrome, Firefox, Safari, Edge all work)
Solid is a web specification that lets people store their data securely in decentralized data stores called Pods. This gives users control over their own data.
- jspod: https://github.com/JavaScriptSolidServer/jspod
- JavaScriptSolidServer: https://github.com/JavaScriptSolidServer/JavaScriptSolidServer
- Solid Project: https://solidproject.org
- Solid Spec: https://solidproject.org/TR/protocol
- WebID: https://www.w3.org/2005/Incubator/webid/spec
Contributions welcome! jspod is intentionally simple - we want to keep it that way.
Philosophy:
- Simple over complex
- Defaults over configuration
- Works over features
See CONTRIBUTING.md for guidelines.
MIT - see LICENSE
jspod is built on top of the excellent JavaScriptSolidServer by Melvin Carvalho and contributors.
- Issues: https://github.com/JavaScriptSolidServer/jspod/issues
- Discussions: https://github.com/JavaScriptSolidServer/jspod/discussions
- Solid Forum: https://forum.solidproject.org
Made with ❤️ for the Solid community
"Solid made simple"