SuperSync

SuperSync

Docker app from BigWebstas' Repository

Overview

SuperSync is the self-hostable sync backend for Super Productivity (https://super-productivity.com), letting you sync your tasks/notes across devices without relying on Dropbox/WebDAV or the hosted service. Upstream (super-productivity/super-productivity) only publishes this image to a **private** GHCR registry (see https://github.com/super-productivity/super-productivity/issues/6225), so this is an unofficial public rebuild of the same, unmodified source (packages/super-sync-server), pushed daily to Docker Hub. REQUIRES A SEPARATE POSTGRESQL 16 DATABASE — this template does not bundle one. Install a Postgres container first (e.g. from Community Applications), create a database/user for SuperSync, then point the "Database URL" variable below at it. There are no upstream release tags — this image tracks the `master` branch and has no stability guarantee. Pin to a specific `latest`-alternative sha tag (see the Docker Hub tags list) rather than `latest` for anything you care about staying stable. No Terms of Service / privacy policy is baked in; see the PRIVACY_* variables in upstream's env.example if you need one generated for your deployment.

SuperSyncDocker

Publicly-published Docker Hub image for Super Productivity's "SuperSync" server (packages/super-sync-server in the super-productivity monorepo).

Upstream only publishes a private image at ghcr.io/super-productivity/supersync (see issue #6225), so this repo rebuilds it from the official source and pushes a public image to Docker Hub at webstas/supersync.

There are no upstream release tags — master is the only source of truth. This repo rebuilds from master and tags the result with the upstream commit SHA and a build date, in addition to latest.

Building

./build.sh              # build only, tags: latest, <upstream-sha>, <YYYYMMDD>
PUSH=true ./build.sh     # build and push to Docker Hub
IMAGE=myuser/supersync ./build.sh   # override the target image name

The script does a shallow clone of upstream master into a temp dir and builds using upstream's own packages/super-sync-server/Dockerfile unmodified — nothing here forks or patches their source.

Automated builds

.github/workflows/build-and-push.yml rebuilds and pushes daily (06:00 UTC) and on manual dispatch, tracking upstream master. It needs two repo secrets:

  • DOCKERHUB_USERNAME — your Docker Hub username
  • DOCKERHUB_TOKEN — a Docker Hub access token (Account Settings → Security → New Access Token; needs Read & Write)

The image is pushed to <DOCKERHUB_USERNAME>/supersync.

Running

cp .env.example .env   # fill in JWT_SECRET, POSTGRES_PASSWORD, PUBLIC_URL, SMTP_*
docker compose up -d

docker-compose.yml is a trimmed copy of upstream's compose file (no Caddy/TLS — front it with your own reverse proxy) pointed at webstas/supersync:latest by default. See upstream's env.example for the full list of supported environment variables.

Unraid

This repo ships a Community Applications template at templates/supersync.xml, plus a ca_profile.xml describing the repo, as required by ca.unraid.net/submit.

To use it before/without an official CA listing, add this repo as a template repository in the Community Applications plugin (Apps → Settings → Template Repositories): https://github.com/BigWebstas/SuperSync.

SuperSync needs its own PostgreSQL 16 database — the template does not bundle one. Install a Postgres container first (e.g. the official postgres:16-alpine image via a separate CA template), create a database/user for SuperSync, then fill in the Database URL field with the resulting connection string.

Notes

  • No Terms of Service / privacy policy is baked in. Upstream deliberately ships none — see the comments in .env.example and upstream's own env.example for the PRIVACY_* variables that generate one for your deployment.
  • This image tracks upstream master, which has no stability guarantee. Pin to a specific <sha> tag rather than latest for anything you care about staying stable.

Install SuperSync on Unraid in a few clicks.

Find SuperSync in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for SuperSync Review the template variables and paths Click Install

Requirements

A separate PostgreSQL 16 (or compatible) database, reachable from this container, is required before starting.

Categories

Download Statistics

173
Total Downloads

Related apps

Explore more like this

Explore all

Details

Repository
webstas/supersync:latest
Last Updated2026-08-25
First Seen2026-08-25

Runtime arguments

Web UI
http://[IP]:[PORT:1900]/
Network
bridge
Shell
sh
Privileged
false

Template configuration

WebUIPorttcp

Port the server listens on.

Target
1900
Default
1900
Value
1900
DataPathrw

Persistent app data directory.

Target
/app/data
Default
/mnt/user/appdata/supersync
Value
/mnt/user/appdata/supersync
Database URLVariable

Postgres 16 connection string for a database you create/manage separately, e.g. postgresql://supersync:PASSWORD@POSTGRES_IP:5432/supersync?connection_limit=60&amp;pool_timeout=10 (the connection_limit param is important, see Overview).

Target
DATABASE_URL
JWT SecretVariable

Secret used to sign auth tokens, minimum 32 characters. Generate with: openssl rand -base64 32

Target
JWT_SECRET
Public URLVariable

URL your users/devices use to reach this server, with protocol. Used in verification/magic-link emails. MUST start with https:// unless you also set Node Env below to something other than production.

Target
PUBLIC_URL
Default
http://[IP]:[PORT:1900]
Value
http://[IP]:[PORT:1900]
CORS OriginsVariable

Comma-separated list of origins allowed to call this server (add your self-hosted frontend URL if applicable).

Target
CORS_ORIGINS
Default
https://app.super-productivity.com
Value
https://app.super-productivity.com
WebAuthn RP IDVariable

Relying-party ID for passkey login: your domain, without protocol or port. Changing later invalidates existing passkeys.

Target
WEBAUTHN_RP_ID
Default
localhost
Value
localhost
WebAuthn OriginVariable

Where users reach the auth UI, with protocol. Normally the same as Public URL.

Target
WEBAUTHN_ORIGIN
Default
http://[IP]:[PORT:1900]
Value
http://[IP]:[PORT:1900]
Node EnvVariable

Set to something other than 'production' to allow http:// Public URLs (e.g. for LAN-only/testing use).

Target
NODE_ENV
Default
production
Value
production
Run Migrations On StartupVariable

Run Prisma database migrations automatically each time the container starts. Disable once your schema is stable if you'd rather run migrations manually.

Target
RUN_MIGRATIONS_ON_STARTUP
Default
true
Value
true
Allowed EmailsVariable

Optional comma-separated allowlist of exact addresses and/or *@domain rules restricting who may register. Leave blank to allow anyone who can reach the server.

Target
ALLOWED_EMAILS
SMTP HostVariable

SMTP server hostname, required for email verification.

Target
SMTP_HOST
SMTP PortVariable

SMTP port (587 for TLS/STARTTLS, 465 for SSL).

Target
SMTP_PORT
Default
587
Value
587
SMTP SecureVariable

true for SSL on port 465, false for STARTTLS on 587.

Target
SMTP_SECURE
Default
false
Value
false
SMTP UserVariable

SMTP authentication username.

Target
SMTP_USER
SMTP PasswordVariable

SMTP authentication password.

Target
SMTP_PASS
SMTP FromVariable

From address for outgoing emails, e.g. "Super Productivity Sync" noreply@your-domain.com

Target
SMTP_FROM