Skip to content

SendRepute Campaigns v0.1.35

Choose a tag to compare

@sendrepute sendrepute released this 01 Oct 04:38

SendRepute Campaigns v0.1.35

  • Tracking-domain verification now creates a fresh, dedicated DNS resolver for each attempt and shares it across that attempt's address and TXT lookups. It retains the Campaigns server's configured system DNS servers, bounds query timeout/retries and does not add any public DNS fallback.
  • Public address checks, private/reserved-address rejection and exact ownership TXT matching remain enforced. Resolver outages are distinguished from genuinely absent records with safe, localized diagnostics; a successful A or AAAA family can still be used when the other family is unavailable.
  • Tracking-domain setup now shows two separate records in order: an A record for the actual tracking hostname, using the public IPv4 address obtained from the server or hosting provider, then the exact ownership TXT name/value. No server IP is guessed, and a Cloudflare edge IP is not presented as the server's IP.
  • Keep both address routing and ownership TXT records, allow DNS propagation, then check public address resolution and ownership TXT. For a separate tracking subdomain, leave the base path as / unless its proxy is deliberately configured for a custom path.
  • Tracking-host routing and trusted HTTPS remain separately operator-managed, optionally using Caddy or another suitable proxy/Tunnel. Installation HTTPS settings do not provision certificates for other tracking hostnames. This release introduces no HTTPS/TLS-readiness feature and does not claim that any live customer verification has been fixed.
  • Repository downloads remain the supported publication channel, with the checker validating official releases and complete SHA-256 manifests before returning same-commit pinned archive/checksum URLs. No attachment upload, owner action or manual GitHub workflow is required; actual GitHub workflows are not changed.
  • This archive is an isolated, audited self-hosted build with a real installation wizard, not the public website demo.

Compatibility and safe upgrade

The package contains Campaigns PostgreSQL migrations through 032_first_party_unsubscribes.sql; no new migration or changes to existing migration files were introduced relative to v0.1.34. Startup applies any previously missing migrations using the existing Campaigns migration path.

Update-checker compatibility: installed v0.1.34 checkers can discover these verified repository downloads. Older attachment-only checkers need the normal one-time Git or archive upgrade to a compatible release. Nothing is downloaded or installed automatically, and installing this version does not remotely update any customer server.

Before upgrading, back up the complete PostgreSQL database, application data/encryption key and private .env. From the existing Git clone on your server, inspect local edits with git status --short, then run:

git pull --ff-only && ./setup.sh --mode resume

Resume preserves the existing access mode, including HTTPS. Preserve the Compose project, volumes and encryption key; do not clone over an installation, run two versions against one database, or use docker compose down -v. Archive installations follow the installation guide. See Docker backup instructions and isolated restore instructions. Rollback can require restoring matching database and application-data backups.

Downloads and verification

Versioned repository downloads: ZIP · tar.gz · SHA-256 checksums. Verify checksums before extraction; GitHub Code → Download ZIP is a different snapshot.

The exact v0.1.35 archives passed isolated clean-room component builds, a fresh audited self-hosted frontend build, archive/hash/portable-lockfile checks, production npm installation, real local PostgreSQL migration and restart-persistence checks, a Chromium check of the extracted blank installation wizard and branding before owner setup, activation-gated setup, root and installed-installer GET/HEAD redirect checks, public routes and offline paid-settlement upgrade/backup fixtures. The new compiled domain-dns.js helper is included and loaded by the installed exported tracking-domain verifier. A separate read-only public DNS probe exercised that installed verifier on linker.sendrepute.com without a verification POST, credentials, DNS/TLS changes or customer writes. The packaged release checker was also verified against the live previous release and its real pinned manifest, with its output accepted by the actual TypeScript frontend guard. Release boundary audits remain unchanged; no central website/API implementation, proprietary catalog, tests or source maps are included. These checks use isolated local state/mocked paid transports: no real email, paid generation or customer-host upgrade was performed.