Skip to main content

Database & Persistence

Station uses SQLite by default, with support for cloud databases and continuous backup for production deployments.

Storage Options

Local Development (Default)

Station uses a local SQLite file - zero configuration required:
Or specify a custom location:

Cloud Database (libsql)

For multi-instance deployments or team collaboration, use a libsql-compatible cloud database like Turso.

Setup

  1. Create a database:
  2. Configure Station:
    Or in config:

Benefits

  • Shared state across multiple Station instances
  • Team collaboration with centralized data
  • Multi-region replication
  • Automatic backups by the provider
  • Edge locations for low latency

Docker Deployment

Continuous Backup (Litestream)

For single-instance production deployments with disaster recovery, use Litestream for continuous SQLite replication.

How It Works

Docker with Litestream

Station’s production Docker image includes Litestream:

Configuration Options

AWS S3:
Google Cloud Storage:
Azure Blob Storage:

Kubernetes Deployment

Benefits

  • Continuous replication - Changes streamed in real-time
  • Automatic restore - New instances restore from backup
  • Point-in-time recovery - Restore to any point in time
  • Zero data loss - Even on server failures
  • Cost effective - Just object storage costs

Migration

Local to Cloud Database

  1. Export data:
  2. Import to Turso:
  3. Update config:

Cloud to Local

Database Schema

Station’s database stores:

Viewing Data

Backup Best Practices

Development

  • Local SQLite is sufficient
  • Git-backed workspace provides config backup

Staging

  • Use cloud database (Turso) for team access
  • Or Litestream to staging S3 bucket

Production

Option A: Cloud Database (Turso)
  • Best for: Multiple instances, team access
  • Pros: Managed, multi-region, automatic backups
  • Cons: Dependency on external service
Option B: Litestream
  • Best for: Single instance, cost-sensitive
  • Pros: Simple, cheap (just S3), fast local reads
  • Cons: Single writer only
Option C: Both
  • Primary: Turso for live operations
  • Secondary: Periodic SQLite exports to S3

Troubleshooting

Connection Failed

Check:
  1. DATABASE_URL is correctly formatted
  2. Auth token is valid and not expired
  3. Network allows outbound to database endpoint

Litestream Not Restoring

Check:
  1. S3 bucket exists and is accessible
  2. Correct region configured
  3. IAM credentials have read access

Database Locked

Solutions:
  1. Ensure only one Station instance writes
  2. Use cloud database for multi-instance
  3. Check for zombie processes: lsof station.db

Next Steps