aboutsummaryrefslogtreecommitdiffstats
path: root/packaging
diff options
context:
space:
mode:
Diffstat (limited to 'packaging')
-rw-r--r--packaging/caddy/meshbay.org.Caddyfile8
-rw-r--r--packaging/conf/hub.toml.example4
-rw-r--r--packaging/systemd/meshbay-node-user.service4
-rw-r--r--packaging/systemd/meshbay-node.service14
-rw-r--r--packaging/win/build-win-light.ps111
-rw-r--r--packaging/win/build-win-msix.ps110
-rw-r--r--packaging/win/electron-builder.light.yml3
-rw-r--r--packaging/win/electron-builder.msix.yml20
8 files changed, 33 insertions, 41 deletions
diff --git a/packaging/caddy/meshbay.org.Caddyfile b/packaging/caddy/meshbay.org.Caddyfile
index c161202..7eaa336 100644
--- a/packaging/caddy/meshbay.org.Caddyfile
+++ b/packaging/caddy/meshbay.org.Caddyfile
@@ -11,10 +11,10 @@
# /sw.js the service worker MUST stay at the root or its scope stops
# covering the pages it intercepts downloads for. A 404 here
# silently breaks streamed downloads on Firefox and Safari.
-# /a/<hash>/* the versioned module graph. The old snippet in
-# devel-phases-next.md proxied `/style.css` and `/*.js`, which
-# matches neither this prefix nor /locales/*.js — it predates
-# asset versioning and would 404 the entire bundle.
+# /a/<hash>/* the versioned module graph. The old snippet proxied
+# `/style.css` and `/*.js`, which matches neither this prefix
+# nor /locales/*.js — it predates asset versioning and would
+# 404 the entire bundle.
# /style.css old bookmarks, still served unversioned by the hub.
#
# Deployment: the site is NOT pushed by the hub deploy procedure. Sync it
diff --git a/packaging/conf/hub.toml.example b/packaging/conf/hub.toml.example
index b5f3830..5407436 100644
--- a/packaging/conf/hub.toml.example
+++ b/packaging/conf/hub.toml.example
@@ -51,7 +51,7 @@ access_token_ttl = 14400 # 4 h
# reCAPTCHA v2 on registration and password reset, so no mail is ever sent
# before a human has been seen. Absent, or either key empty, disables it
# entirely — which is right for development and for a hub nobody can reach.
-# See docs/captcha.md.
+# See docs/MESHBAY_DESIGN.md §7.7.
site_key = ""
secret_key = ""
@@ -80,7 +80,7 @@ allowed_hosts = []
# page or somebody else's Electron application look identical from here. The
# captcha still has to be solved per token; what is given up is the origin
# restriction for those clients. Leave it off unless you ship the desktop
-# client. See docs/captcha.md §6.
+# client. See docs/MESHBAY_DESIGN.md §7.7.
allow_unattributed_host = false
diff --git a/packaging/systemd/meshbay-node-user.service b/packaging/systemd/meshbay-node-user.service
index feb415b..0c60671 100644
--- a/packaging/systemd/meshbay-node-user.service
+++ b/packaging/systemd/meshbay-node-user.service
@@ -27,11 +27,11 @@ Type=simple
# the node authenticates to the hub with an Ed25519 signature (NS7).
# MESHBAY_TMDB_DEFAULT_TOKEN (Videos app, optional) also lives here — never
# in source. Absent means TMDB lookups are inert until the operator sets one
-# here or configures a custom token in Settings (docs/mediacenter.md §5.5).
+# here or configures a custom token in Settings (docs/MESHBAY_DESIGN.md §9.7).
# MESHBAY_MUSICBRAINZ_CONTACT_DEFAULT (Music app, optional) lives here too,
# same reasoning — not a credential (MusicBrainz needs none), but still
# never a literal value in source: it's a personal contact address sent
-# as-is in every request's User-Agent (docs/musicbay.md §3.2). Absent means
+# as-is in every request's User-Agent (docs/MESHBAY_DESIGN.md §9.8). Absent means
# MusicBrainz lookups are inert until the operator sets one here or
# configures a contact in Settings.
EnvironmentFile=-%h/.config/meshbay/node.env
diff --git a/packaging/systemd/meshbay-node.service b/packaging/systemd/meshbay-node.service
index ad4dc40..aa720b5 100644
--- a/packaging/systemd/meshbay-node.service
+++ b/packaging/systemd/meshbay-node.service
@@ -15,13 +15,13 @@ WorkingDirectory=%h
# Secrets: MESHBAY_PASSWORD (hub login), MESHBAY_UNLOCK_KEY (keystore),
# MESHBAY_TMDB_DEFAULT_TOKEN (Videos app — optional, no literal default
# ships in source; absent means TMDB lookups are inert until the operator
-# sets one here or configures a custom token in Settings, docs/mediacenter.md §5.5).
-# MESHBAY_MUSICBRAINZ_CONTACT_DEFAULT (Music app — optional, no literal
-# default ships in source either; not a credential, but still never a
-# literal value in git — it's a personal contact address sent as-is in
-# every MusicBrainz request's User-Agent, docs/musicbay.md §3.2). Absent
-# means MusicBrainz lookups are inert until the operator sets one here or
-# configures a contact in Settings.
+# sets one here or configures a custom token in Settings,
+# docs/MESHBAY_DESIGN.md §9.7). MESHBAY_MUSICBRAINZ_CONTACT_DEFAULT (Music app
+# — optional, no literal default ships in source either; not a credential, but
+# still never a literal value in git — it's a personal contact address sent
+# as-is in every MusicBrainz request's User-Agent, docs/MESHBAY_DESIGN.md
+# §9.8). Absent means MusicBrainz lookups are inert until the operator sets one
+# here or configures a contact in Settings.
EnvironmentFile=-%h/.config/meshbay/node.env
ExecStart=/opt/meshbay-common/venv/bin/meshbay-node --config %h/.config/meshbay/node.toml
diff --git a/packaging/win/build-win-light.ps1 b/packaging/win/build-win-light.ps1
index 5a8a06e..8b2d807 100644
--- a/packaging/win/build-win-light.ps1
+++ b/packaging/win/build-win-light.ps1
@@ -6,12 +6,11 @@
.DESCRIPTION
The counterpart of build-win.ps1 (Full) for anyone who only wants to
*use* MeshBay -- join groups, chat, browse, download, stream, cast --
- without ever hosting content from this machine. See
- C:\Users\admin\devel\light-client.md for the evaluation this
- implements: a member never needs a local node to begin with (identity
- keys are per node -- the *host's* node, not the joiner's), so Light is
- the existing browser-only usage pattern wrapped in the Electron shell,
- minus the frozen meshbay-node.exe / ffmpeg / autostart bundle.
+ without ever hosting content from this machine. A member never needs a
+ local node to begin with (identity keys are per node -- the *host's*
+ node, not the joiner's), so Light is the existing browser-only usage
+ pattern wrapped in the Electron shell, minus the frozen
+ meshbay-node.exe / ffmpeg / autostart bundle.
Steps 1-4 are identical to build-win.ps1 (build-win-common.ps1). Step 5,
PyInstaller freezing a node runtime, does not happen at all -- that is
diff --git a/packaging/win/build-win-msix.ps1 b/packaging/win/build-win-msix.ps1
index 9f7f667..2aeb2b8 100644
--- a/packaging/win/build-win-msix.ps1
+++ b/packaging/win/build-win-msix.ps1
@@ -4,15 +4,14 @@
+ ffmpeg), packaged for Microsoft Store submission instead of NSIS.
.DESCRIPTION
- See C:\Users\admin\devel\msix-installer.md for the plan this implements.
Unlike Light, this target does NOT drop anything from Full's feature
set -- it exists because Store certification of the NSIS "MSI/EXE"
submission failed for a reason MSIX sidesteps entirely (an unsigned,
internet-downloaded installer never gets a chance to run under
- Microsoft's own unattended validation bot; see msix-installer.md §2),
- not because the bundled node/service-mode/autostart machinery needed
- removing. The one real change is *when* the two elevated operations
- (firewall rule, service-mode install) can happen: an AppX/MSIX install
+ Microsoft's own unattended validation bot), not because the bundled
+ node/service-mode/autostart machinery needed removing. The one real
+ change is *when* the two elevated operations (firewall rule,
+ service-mode install) can happen: an AppX/MSIX install
never elevates, so neither can run at install time the way
build/installer.nsh's customInstall macro does. Both already have an
elevation path that does not depend on the installer at all --
@@ -126,7 +125,6 @@ if ($pkg) {
Write-Host "OK package: $($pkg.FullName)" -ForegroundColor Green
Write-Host (" ({0:N0} MB)" -f ($pkg.Length / 1MB))
Write-Host " unsigned by design -- Microsoft signs it at publish time" -ForegroundColor DarkGray
- Write-Host " (msix-installer.md 3)." -ForegroundColor DarkGray
}
else {
Write-Host "!! no *.appx found in $Client\dist-msix" -ForegroundColor Red
diff --git a/packaging/win/electron-builder.light.yml b/packaging/win/electron-builder.light.yml
index 155ffa6..502a3c5 100644
--- a/packaging/win/electron-builder.light.yml
+++ b/packaging/win/electron-builder.light.yml
@@ -10,9 +10,6 @@
# Invoked from packages/meshbay-client (see build-win-light.ps1), so every
# relative path below resolves the same way package.json's `build` field's
# already do.
-#
-# See C:\Users\admin\devel\light-client.md for the evaluation this
-# implements.
appId: org.meshbay.client.light
productName: MeshBay Light
diff --git a/packaging/win/electron-builder.msix.yml b/packaging/win/electron-builder.msix.yml
index 5e45598..5460267 100644
--- a/packaging/win/electron-builder.msix.yml
+++ b/packaging/win/electron-builder.msix.yml
@@ -1,9 +1,8 @@
# Standalone electron-builder config for the "MSIX" Windows target: same
# feature set as Full (bundled node + ffmpeg), packaged for Microsoft Store
-# submission instead of NSIS. See C:\Users\admin\devel\msix-installer.md for
-# the plan this implements -- read that first, especially §4 (why the
-# installer can carry none of installer.nsh's elevation logic: an AppX/MSIX
-# install never elevates, by design) and §8 (what is still unverified here).
+# submission instead of NSIS. The package carries none of installer.nsh's
+# elevation logic: an AppX/MSIX install never elevates, by design. What is
+# still unverified here is called out at each declaration below.
#
# Deliberately NOT layered onto package.json's `build` field, same reasoning
# as electron-builder.light.yml: --config reads ONLY this file, so nothing
@@ -22,8 +21,8 @@
# windowsSignToolManager.js (computePublisherName), an AppX target built
# with no certificate configured is logged as "Windows Store only build" and
# left unsigned, with `publisher` written into the manifest as-is. Microsoft
-# signs the package itself at publish time (msix-installer.md §3) -- signing
-# it here first would be pointless work, not extra safety.
+# signs the package itself at publish time -- signing it here first would be
+# pointless work, not extra safety.
appId: org.meshbay.client
productName: MeshBay
@@ -102,9 +101,9 @@ appx:
# firewall.ps1's own rules, which are `-Profile Any` (private AND public
# network). Whether Windows Firewall actually auto-exempts a full-trust
# packaged app on the strength of these declarations -- eliminating the
- # elevation firewall.ps1 exists for entirely -- is msix-installer.md §8's
- # #1 open item: verify live before relying on it, the declaration alone
- # only proves the manifest is well-formed.
+ # elevation firewall.ps1 exists for entirely -- is an open item: verify
+ # live before relying on it, the declaration alone only proves the
+ # manifest is well-formed.
capabilities:
- internetClientServer
- privateNetworkClientServer
@@ -116,7 +115,6 @@ appx:
# switch to point it at a different bundled exe). build/appx-extensions.xml
# declares that extension by hand for exactly this reason. Whether
# Windows actually launches a *non-primary* bundled exe through this
- # mechanism is the other open item in msix-installer.md §8 -- untested
- # until sideloaded.
+ # mechanism is the other open item -- untested until sideloaded.
customExtensionsPath: build/appx-extensions.xml
showNameOnTiles: false