Syncthing: close the evidence gaps of decision 0050 #59

Open
opened 2026-10-03 22:28:22 -03:00 by marcos-mendez · 1 comment
marcos-mendez commented 2026-10-03 22:28:22 -03:00 (Migrated from github.com)

Decision 0050 (2026-10-04) chose Syncthing for application files. The evidence has gaps, all listed in the note's open points. Close them with a second bench under the same netem profiles (5/100/250 ms, 250 ms + 2% loss, partition and heal):

  • run Syncthing v2, the version Keel will ship, not Debian's 1.29.5;
  • turn versioning on at the replicas and prove an overwritten edit is kept;
  • partition the primary, promote a replica, flip the folder directions, heal, and check what happens to edits made on the cut-off old primary (0049's rejoin check: receive-only folders report new files, not edits);
  • measure bulk copies of large files (Garage moved 50 MB faster at 250 ms);
  • fix the WordPress manifest so only wp-content/uploads, not code, is replicated.
    Correct 0032, 0036, 0038 and 0049 where the note says they overstate (receive-only local-change reporting; Garage RFP vs ITP).
Decision 0050 (2026-10-04) chose Syncthing for application files. The evidence has gaps, all listed in the note's open points. Close them with a second bench under the same netem profiles (5/100/250 ms, 250 ms + 2% loss, partition and heal): - run Syncthing **v2**, the version Keel will ship, not Debian's 1.29.5; - turn **versioning on** at the replicas and prove an overwritten edit is kept; - **partition the primary**, promote a replica, flip the folder directions, heal, and check what happens to edits made on the cut-off old primary (0049's rejoin check: receive-only folders report new files, not edits); - measure bulk copies of large files (Garage moved 50 MB faster at 250 ms); - fix the WordPress manifest so only `wp-content/uploads`, not code, is replicated. Correct 0032, 0036, 0038 and 0049 where the note says they overstate (receive-only local-change reporting; Garage RFP vs ITP).
marcos-mendez commented 2026-10-03 23:27:31 -03:00 (Migrated from github.com)

Maintainer decision 2026-10-04 on WordPress files (supersedes the 'uploads only' item above):

  1. WordPress core (wp-admin, wp-includes) comes from the package, identical on every node.
  2. The whole wp-content (themes, plugins, uploads, languages) is replicated by Syncthing from the primary, excluding cache directories. Each node keeps a local copy, so PHP reads stay local.
  3. wp-config.php is not replicated: keel renders it on each node from the spec (DB host = the appliance VIP; keys and salts = mesh-wide shared secrets, 0041). Operator additions go in a spec field or in an extra include file that is replicated.
  4. Installing and updating plugins and themes from the WordPress admin stays allowed, as on TurnKey; no DISALLOW_FILE_MODS.
    A replica may briefly hold a half-updated plugin during a sync; acceptable because a replica serves nothing until promoted (0031).
    To record: an amendment to 0050 and the WordPress manifest.
Maintainer decision 2026-10-04 on WordPress files (supersedes the 'uploads only' item above): 1. WordPress core (wp-admin, wp-includes) comes from the package, identical on every node. 2. The whole `wp-content` (themes, plugins, uploads, languages) is replicated by Syncthing from the primary, excluding cache directories. Each node keeps a local copy, so PHP reads stay local. 3. `wp-config.php` is not replicated: keel renders it on each node from the spec (DB host = the appliance VIP; keys and salts = mesh-wide shared secrets, 0041). Operator additions go in a spec field or in an extra include file that *is* replicated. 4. Installing and updating plugins and themes from the WordPress admin stays allowed, as on TurnKey; no DISALLOW_FILE_MODS. A replica may briefly hold a half-updated plugin during a sync; acceptable because a replica serves nothing until promoted (0031). To record: an amendment to 0050 and the WordPress manifest.
Sign in to join this conversation.
No description provided.