Releases

How PearDock binaries are built, signed, and published for all 64-bit hosts.

Host matrix

No 32-bit (ia32 / armv7) builds.

HostServer (Bare)Client (Electron)
linux-x64
linux-arm64
darwin-x64✅ (ad-hoc from Linux CI)
darwin-arm64✅ (ad-hoc from Linux CI)
win32-x64
win32-arm64

Canonical list: scripts/hosts.cjsALL_64.

Builders

ArtifactTooling
peardock-server scripts/bare-standalone.cjs (bare-pack + bare-runtime prebuild embed)
peardock-client esbuild → electron/app.bundle.cjs, then electron-forge package

Local builds

npm ci

# All 64-bit server + client hosts (same as CI)
npm run make

# Server only / client only
npm run make:server
npm run make:client

# Single host
npm run make:server:linux-x64
npm run make:client:darwin-arm64

Outputs:

out/peardock-server-<host>/peardock-server[.exe]
out/peardock-<platform>-<arch>/   # e.g. peardock.app on macOS
PEARDOCK_SERVER_HOSTS=linux-x64,win32-x64 \
PEARDOCK_CLIENT_HOSTS=darwin-arm64,linux-x64 \
  npm run make

Asset naming

Published under tag rolling:

peardock-server-VERSION-HOST.tar.gz
peardock-server-VERSION-HOST.tar.gz.sha256
peardock-client-VERSION-HOST.tar.gz
peardock-client-VERSION-HOST.tar.gz.sha256

# HOST examples: linux-x64, darwin-arm64, win32-x64
# Example: peardock-server-2.0.1-linux-x64.tar.gz

The one-line installer resolves VERSION from the release API (or PEARDOCK_VERSION) and downloads the matching host triple.

Gitea CI rolling release

Workflow: .gitea/workflows/release-rolling.yml
Script: scripts/gitea-rolling-release.sh

SecretPurpose
RELEASE_TOKENGitea PAT with release write
GITEA_URLOptional forge base URL

On every push to main (and workflow_dispatch), Ubuntu CI:

  1. Installs deps (lifecycle scripts skipped for hang safety)
  2. Installs vendored rcodesign for macOS ad-hoc signing
  3. Cross-builds all six server hosts
  4. Cross-packages all six Electron clients (target prebuilds only)
  5. Stages tarballs + SHA-256 under dist/release/
  6. Recreates tag/release rolling and uploads assets
DRY_RUN=1 bash scripts/gitea-rolling-release.sh

Install / upgrade production hosts: curl -fsSL https://install.peardock.boats | bash -s -- --server --yes Live asset list: peardock.boats/releases (proxied from Gitea).

Notes

Checksums & SBOM

./scripts/release-checksums.sh dist/
# SBOM notes: docs/SBOM.md in the main repo
npx @cyclonedx/cyclonedx-npm --output-file peardock-sbom.json