# Litestream — Streaming Replication for SQLite > A standalone streaming replication tool for SQLite that continuously backs up your database to S3-compatible storage, enabling disaster recovery without complex infrastructure. ## Install Save as a script file and run: # Litestream — Streaming Replication for SQLite ## Quick Use ```bash # Install on Debian/Ubuntu sudo apt install -y litestream # Or via Homebrew brew install benbjohnson/litestream/litestream # Start replicating a SQLite database to S3 litestream replicate /path/to/db s3://my-bucket/db # Restore from replica litestream restore -o /path/to/db s3://my-bucket/db ``` ## Introduction Litestream is a standalone disaster-recovery tool for SQLite databases. It runs as a background process that continuously streams WAL changes to S3-compatible storage, giving SQLite the durability guarantees typically reserved for client-server databases. By pairing SQLite's simplicity with cloud-based replication, Litestream lets small teams ship production apps on a single server without sacrificing data safety. ## What Litestream Does - Continuously replicates SQLite WAL changes to S3, GCS, Azure Blob, SFTP, or local paths - Provides point-in-time restore from any snapshot or WAL segment - Runs as a sidecar process or systemd service alongside your application - Supports multiple replica destinations simultaneously for redundancy - Operates with near-zero impact on application read/write performance ## Architecture Overview Litestream monitors the SQLite WAL (Write-Ahead Log) file and streams new pages to one or more configured replica destinations. It takes periodic snapshots of the full database and retains WAL segments between snapshots, enabling point-in-time recovery. Because it works at the WAL level rather than through SQL queries, it adds negligible overhead to database operations and requires no changes to application code. ## Self-Hosting & Configuration - Install a single binary with no runtime dependencies - Configure replicas in a YAML file specifying destination URLs and retention policies - Run as a systemd service for automatic startup and restart - Set `LITESTREAM_ACCESS_KEY_ID` and `LITESTREAM_SECRET_ACCESS_KEY` for S3 auth - Use the Docker image for containerized deployments with sidecar pattern ## Key Features - Sub-second replication lag for continuous data protection - Works with any S3-compatible backend including MinIO and Backblaze B2 - No application code changes required; operates purely on the WAL - Built-in validation command to verify replica integrity - Supports age-based retention policies for snapshot and WAL cleanup ## Comparison with Similar Tools - **SQLite backup API** — creates point-in-time copies but lacks continuous streaming - **rqlite** — distributed SQLite with Raft consensus; Litestream is simpler, single-node replication - **LiteFS** — FUSE-based distributed SQLite by the same author; Litestream focuses on backup, LiteFS on multi-node reads - **pg_basebackup** — PostgreSQL-specific; Litestream brings similar streaming concepts to SQLite - **Turso/libSQL** — managed distributed SQLite; Litestream is self-hosted and storage-agnostic ## FAQ **Q: Does Litestream lock the database during replication?** A: No. It reads WAL pages without acquiring locks, so your application continues to read and write normally. **Q: Can I replicate to multiple destinations?** A: Yes. You can configure multiple replica targets in the YAML config, and Litestream streams to all of them simultaneously. **Q: How do I restore a database?** A: Run `litestream restore -o /path/to/restored.db s3://bucket/db` to pull the latest snapshot and replay WAL segments. **Q: Does it work with WAL mode disabled?** A: No. Litestream requires SQLite to operate in WAL mode, which is the recommended journal mode for most applications. ## Sources - https://github.com/benbjohnson/litestream - https://litestream.io/getting-started/ --- Source: https://tokrepo.com/en/workflows/53a0876a-3d5a-11f1-9bc6-00163e2b0d79 Author: Script Depot