selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

PowerSync Service logo

Self-host PowerSync Service

v1.27.2

Server-side sync engine for real-time SQLite replication

ReleaseSource AvailableOther
Updated4 days ago
LanguageTypescript
Setup difficultyAdvanced
Stars
397
Port
8080 (PowerSync API server)
Docker
journeyapps/powersync-service
Install with Docker Compose

What is PowerSync Service?

This server component of the PowerSync engine replicates data from your backend database and pushes it to SQLite databases running on client devices in real time. You define what each user receives through Sync Streams written in YAML. The bucket system deduplicates shared data so the service scales without linear resource growth. You can run it yourself via Docker (journeyapps/powersync-service), Docker Compose, or an npm package. The code is licensed under FSL-1.1-ALv2, which converts to Apache-2.0 after two years.

Should you self-host PowerSync Service?

PowerSync Service scores 49/100 on selfhost.directory (how scoring works) and ranks #35 of 40 in Database Management. It has 397 GitHub stars.

It shipped 10 stable releases in the past year. The latest, v1.27.2, came out on 24 October 2026. New versions land roughly every 9 days.

Setup is advanced: plan for several services and some ongoing maintenance. An official Docker image is available. It is Other-licensed and written mostly in Typescript.

Its closest alternative on selfhost.directory is supabase (92/100, 114 248 stars). It scores higher overall, so compare the two before you pick. See PowerSync Service vs supabase side by side.

Features

  • Automatic storage migrationsCan be disabled for external migration control.
  • Bucket-based deduplication
  • Health Checks
  • Multiple source database support
  • Offline-first support
  • Prometheus Metrics
  • Real-time data sync
  • S3 object storage for bucketsRequires Service version 1.26.0+.
  • Supabase Auth integration
  • Sync Streams
  • Telemetry and usage reportingCan be disabled via config.

PowerSync Service README

How to install PowerSync Service

Install PowerSync Service with Docker Compose

Docker, Docker Compose, Node.js/npm for CLI

powersync init self-hosted powersync docker configure --database postgres --storage postgres powersync docker start

Via PowerSync CLI which scaffolds Docker Compose stack

PowerSync Service releases & version history

FAQ

My backend uses GraphQL. Can I use PowerSync?

PowerSync reads from Postgres directly; GraphQL/REST can be used for the write path.

Can attachments (files) be synced?

An attachment sync system can be built on top of PowerSync.

Can auto-incrementing IDs be used?

Generally not recommended but possible with caveats.

Are transactions supported?

Client-side transactions are supported using SQLite locking. Client-server transactions are not supported due to offline requirements.

Are live queries supported?

Yes, client SDKs support real-time streaming and can automatically rerun queries when underlying data changes.

I don't have direct database access, only an API. Can I use PowerSync?

Not directly; a workaround is replicating API data to Postgres first, then syncing with PowerSync.

Can a client track whether changes have been processed?

Not built-in, but can be implemented by storing a status column that the server updates when processing changes.

What happens when a user is offline for a long time?

If no Sync Stream/Rule changes were deployed, the user only downloads incremental changes since last connection.

How is a client-side sync triggered? Does the SDK use polling or real-time sync?

PowerSync uses near real-time streaming (<1s delay) via persistent HTTP/2 or WebSocket connections. A polling API will also be available for periodic updates.

Why does PowerSync use SQLite as the client-side database?

PowerSync uses SQLite because it provides a real SQL database on the client with familiar syntax, rich ecosystem (ORMs, extensions), high performance, maturity, and low lock-in.

More in Real-time

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…