HOWTO – Deploy i Replit (Next.js + agent)

Trygg utrulling uten manuelle filendringer. Oppdag rammeverk, rett scripts, test lokalt, sett Deploy.

Én-prompt for trygg deploy

MÅL: Publiser denne appen live uten manuelle filendringer. Oppdag rammeverk, rett scripts, test lokalt, sett Deploy. Rapporter til slutt.

REGLER: Ikke skriv hemmeligheter til logg. Hvis automatisk endring av Deploy ikke er lov, skriv disse tre linjene:

Build command: npm run build
Run command: npm run start
Port: 3000

STEG:
1) Oppdag stack:
   - Les package.json. Hvis "next" finnes -> Next.js.
   - Finn om server/index.ts finnes (custom server).
   - Hvis ikke Next.js men Vite finnes, behold Vite (bare rapportér).
2) Rett scripts hvis Next.js:
   - Backup package.json -> package.backup.<ts>.json
   - scripts.dev   = "next dev -p 3000"
   - scripts.build = "next build"
   - scripts.start =
       * med server/index.ts: "NODE_ENV=production tsx server/index.ts"  (installer dev-dep: tsx)
       * ellers: "next start -p 3000"
   - Fjern Vite/esbuild-scripts hvis de finnes.
3) Avhengigheter:
   - npm install
   - om nødvendig: npm i -D tsx
   - verifiser at next, react, react-dom finnes
   - valgfritt: npm remove vite esbuild @vitejs/plugin-react (hvis ubrukte)
4) Lokal test:
   - npm run dev  -> / svarer 200/HTML i webview
   - npm run build -> OK
   - npm run start -> / svarer 200/HTML
   - POST /api/heartbeat (uten auth) -> 401 (forventet)
5) Deployment:
   - Sett (automatisk hvis mulig, ellers bruk tre linjer over):
     Build: npm run build
     Run:   npm run start
     Port:  3000
6) Sluttrapport (nøyaktig format):
[DEPLOY-FIX REPORT]
DetectedFramework=Next.js|Vite|Other
CustomServer=YES|NO
NodeVersion=<x.y.z or unknown>
Scripts:
  dev=<...>
  build=<...>
  start=<...>
PackagesAdjusted=YES|NO (removed: <liste> added: <liste>)
LocalBuild=OK|FAIL
LocalProdStart=OK|FAIL
Sanity:
  GET/ = 200|FAIL
  POST /api/heartbeat (no auth) = 401|other
DeploymentConfig:
  BuildCommand="npm run build"
  RunCommand="npm run start"
  Port=3000
NextSteps=If UI change needed, paste the three lines above into Replit Deploy settings and click Deploy.

Agent-sjekkliste (per app – dev/prod)

Secrets (ikke i git):
DASHBOARD_URL=<oversiktsapp-url>
DASHBOARD_SECRET=<hemmelig>
APP_ID=<ascii-slug, f.eks. forste-app-prod>
APP_OWNER=Kent|Vitali|Timothy
# valgfritt:
AGENT_KEEPALIVE_MIN=15
AGENT_WATCH_HOSTS=api.digitool.no,tripletex.no
AGENT_BLOCK_DIGITOOL=0

Importer agent (før alt annet):
// Node:
import './agent';
// Python:
import agent
agent.install()

Verifisering:
GET <DASHBOARD_URL>/api/apps
GET <DASHBOARD_URL>/api/apps/<APP_ID>
HEAD https://api.digitool.no/__telemetry-test

Vanlige feil → kjapp løsning