deploteka-app-fleet
v0.2.3
Published
Drop-in multi-tenant wrapper for @shopify/shopify-app-remix and @shopify/shopify-app-react-router — one import swap turns a single-tenant Shopify Remix/React Router app into a per-store dedicated-app fleet served by ONE deployment.
Readme
deploteka-app-fleet
Runtime authentication adapter used by applications onboarded with DeploTeka. It resolves the dedicated Shopify app credentials for each shop, delegates to the app's own Shopify framework, and keeps a local credential replica so application authentication does not depend on DeploTeka being online.
Two entry points, one package — pick the one matching your framework:
// @shopify/shopify-app-remix v4
import { shopifyAppFleet } from 'deploteka-app-fleet';
// @shopify/shopify-app-react-router v7
import { shopifyAppFleet } from 'deploteka-app-fleet/react-router';Running a legacy @shopify/shopify-app-remix v2 or v3 app (the pre-Vite
2023–24 template)? Use the sibling package instead — same contract, fitted to the
older shopifyApp() surface:
// @shopify/shopify-app-remix v2/v3
import { shopifyAppFleet } from 'deploteka-app-fleet-legacy';All three entry points share the exact same wire contract (contractVersion: 1,
secretFingerprint) and multi-tenant runtime mechanics — literally the same
modules, since deploteka-app-fleet-legacy imports them from this package rather
than forking them. Only the framework binding differs.
Install it through the official onboarding command:
npx deploteka onboard . --applyDirect installation is supported for custom integrations:
npm install deploteka-app-fleetThe package peers on @shopify/shopify-app-remix and/or
@shopify/shopify-app-react-router (>=1 <3), both optional — install whichever
one your app actually uses.
The declared Remix peer range is the family range >=2 <5, not the >=4 <5
that the . entry point itself supports. npm allows only one peer range per
package name, and deploteka-app-fleet-legacy (peer >=2 <4) depends on this
package — a narrower range here makes that install fail with ERESOLVE inside
every Remix v2/v3 app, which is exactly the audience it exists for. Per-entry-point
precision is enforced where it is actionable: deploteka-app-fleet-legacy declares
>=2 <4, and npx deploteka onboard detects the target's framework major and wires
the matching entry point before anything is installed.
Both formats are published: ESM (import) and CommonJS (require). Legacy Remix
templates build their server with serverModuleFormat: "cjs" and leave
node_modules external, so the CJS build is what makes the runtime loadable there.
Documentation: https://deploteka.com
