diff --git a/blueprints/powersync/docker-compose.yml b/blueprints/powersync/docker-compose.yml new file mode 100644 index 00000000..02fa6a02 --- /dev/null +++ b/blueprints/powersync/docker-compose.yml @@ -0,0 +1,15 @@ +services: + powersync: + image: journeyapps/powersync-service:1.21.0 + restart: unless-stopped + environment: + POWERSYNC_CONFIG_B64: ${POWERSYNC_CONFIG_B64} + POWERSYNC_SYNC_CONFIG_B64: ${POWERSYNC_SYNC_CONFIG_B64} + PS_DATA_SOURCE_URI: ${PS_DATA_SOURCE_URI} + PS_PORT: ${PS_PORT:-8080} + PS_JWKS_URL: ${PS_JWKS_URL:-} + PS_ADMIN_TOKEN: ${PS_ADMIN_TOKEN} + NODE_OPTIONS: ${NODE_OPTIONS} + ports: + - "${PS_PORT:-8080}:${PS_PORT:-8080}" + command: ["start", "-r", "unified"] diff --git a/blueprints/powersync/powersync.png b/blueprints/powersync/powersync.png new file mode 100644 index 00000000..779f02c4 Binary files /dev/null and b/blueprints/powersync/powersync.png differ diff --git a/blueprints/powersync/template.toml b/blueprints/powersync/template.toml new file mode 100755 index 00000000..da6b9686 --- /dev/null +++ b/blueprints/powersync/template.toml @@ -0,0 +1,20 @@ +[variables] +main_domain = "${domain}" +data_source_uri = "postgresql://user:password@host:5432/db?sslmode=require" +admin_token = "${password:32}" +jwks_url = "" + +[config] +[[config.domains]] +serviceName = "powersync" +port = 8080 +host = "${main_domain}" + +[config.env] +PS_PORT = "8080" +PS_DATA_SOURCE_URI = "${data_source_uri}" +PS_ADMIN_TOKEN = "${admin_token}" +PS_JWKS_URL = "${jwks_url}" +NODE_OPTIONS = "--max-old-space-size=1000" +POWERSYNC_CONFIG_B64 = "dGVsZW1ldHJ5OgogIGRpc2FibGVfdGVsZW1ldHJ5X3NoYXJpbmc6IHRydWUKcmVwbGljYXRpb246CiAgY29ubmVjdGlvbnM6CiAgICAtIHR5cGU6IHBvc3RncmVzcWwKICAgICAgdXJpOiAhZW52IFBTX0RBVEFfU09VUkNFX1VSSQogICAgICBzc2xtb2RlOiByZXF1aXJlCnN0b3JhZ2U6CiAgdHlwZTogcG9zdGdyZXNxbAogIHVyaTogIWVudiBQU19EQVRBX1NPVVJDRV9VUkkKcG9ydDogIWVudiBQU19QT1JUCnN5bmNfY29uZmlnOgogIHBhdGg6IHN5bmMtY29uZmlnLnlhbWwKY2xpZW50X2F1dGg6CiAgandrc191cmk6ICFlbnYgUFNfSldLU19VUkwKICBhdWRpZW5jZTogWyJwb3dlcnN5bmMiXQphcGk6CiAgdG9rZW5zOgogICAgLSAhZW52IFBTX0FETUlOX1RPS0VOCnN5c3RlbToKICBsb2dnaW5nOgogICAgbGV2ZWw6IGluZm8KICAgIGZvcm1hdDogdGV4dAo=" +POWERSYNC_SYNC_CONFIG_B64 = "Y29uZmlnOgogIGVkaXRpb246IDMKc3RyZWFtczoKICBnbG9iYWw6CiAgICBhdXRvX3N1YnNjcmliZTogdHJ1ZQogICAgcXVlcmllczoKICAgICAgLSBTRUxFQ1QgKiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS50YWJsZXMgV0hFUkUgdGFibGVfc2NoZW1hID0gJ3B1YmxpYycK" diff --git a/meta.json b/meta.json index 8be7825d..a6e2c381 100644 --- a/meta.json +++ b/meta.json @@ -5161,6 +5161,25 @@ "api" ] }, + { + "id": "powersync", + "name": "PowerSync", + "version": "1.21.0", + "description": "PowerSync is a sync engine for local-first apps. Syncs PostgreSQL data to mobile devices and browsers with real-time replication.", + "logo": "powersync.png", + "links": { + "github": "https://github.com/powersync-ja/powersync-service", + "website": "https://www.powersync.com/", + "docs": "https://docs.powersync.com/" + }, + "tags": [ + "sync", + "database", + "local-first", + "postgresql", + "realtime" + ] + }, { "id": "poke", "name": "Poke",