diff --git a/plugins/tiddlypwa/main.js b/plugins/tiddlypwa/main.js
index 5e6ffa0..d8e93a0 100644
--- a/plugins/tiddlypwa/main.js
+++ b/plugins/tiddlypwa/main.js
@@ -532,9 +532,11 @@ Formatted with `deno fmt`.
);
const swjs = $tw.wiki.renderTiddler('text/plain', '$:/plugins/valpackett/tiddlypwa-offline/sw.js', {});
try {
- const servers = await adb(
- this.db.transaction('syncservers').objectStore('syncservers').getAll(),
- );
+ const servers = (variables.uploadUrl && variables.uploadToken)
+ ? [{ url: variables.uploadUrl, token: variables.uploadToken }]
+ : await adb(
+ this.db.transaction('syncservers').objectStore('syncservers').getAll(),
+ );
const resps = await Promise.all(servers.map(({ url, token }) =>
fetch(url, {
method: 'POST',
diff --git a/plugins/tiddlypwa/save-dialog.tid b/plugins/tiddlypwa/save-dialog.tid
index b7aae8d..2d34954 100644
--- a/plugins/tiddlypwa/save-dialog.tid
+++ b/plugins/tiddlypwa/save-dialog.tid
@@ -64,6 +64,11 @@ upload it to sync servers
$button>
$reveal>!
+
+Or even upload to a sync server you are not currently syncing with…
+{{$:/plugins/valpackett/tiddlypwa/upload-app-form}}
+
+
{{$:/status/TiddlyPWAUploadResult}}
Note that some basic configuration like the title, subtitle, favicon, theme and palette will be saved unencrypted.
diff --git a/plugins/tiddlypwa/upload-app-form.tid b/plugins/tiddlypwa/upload-app-form.tid
new file mode 100644
index 0000000..d209819
--- /dev/null
+++ b/plugins/tiddlypwa/upload-app-form.tid
@@ -0,0 +1,10 @@
+title: $:/plugins/valpackett/tiddlypwa/upload-app-form
+
+
+
+<$button>
+<$action-sendmessage $message="tiddlypwa-upload-app-wiki"
+ publishFilter={{$:/plugins/valpackett/tiddlypwa/app-filter}}
+ uploadUrl={{$:/temp/TiddlyPWAServerURL}} uploadToken={{$:/temp/TiddlyPWAServerToken}} />
+Upload
+$button>
diff --git a/tiddlers/TiddlyPWA.tid b/tiddlers/TiddlyPWA.tid
index e5eb5fb..2344994 100644
--- a/tiddlers/TiddlyPWA.tid
+++ b/tiddlers/TiddlyPWA.tid
@@ -11,6 +11,13 @@ This will reload the page, and you will be asked for a password.
If you do not yet have one, make one up!
Note that you must to use the same password on all TiddlyPWA instances you'd want to sync between.
+
+Upload this version to any sync server…
+{{$:/plugins/valpackett/tiddlypwa/upload-app-form}}
+
+
+{{$:/status/TiddlyPWAUploadResult}}
+
!! Hosting a custom instance
First, either start with this page or add the following plugins to a fresh TiddlyWiki file: