A plain Node API with persistent memory, cron and WebSockets — no per-invocation billing. Built for Ampere A1 (arm64), listens on port 3000, and starts with node src/index.js.
FROM node:22-alpine
WORKDIR /app
ENV NODE_ENV=production
COPY package*.json ./
RUN npm ci --omit=dev
COPY . .
EXPOSE 3000
CMD ["node", "src/index.js"]Node ships official ARM64 images. Native modules (bcrypt, sharp, better-sqlite3) compile fine on Ampere but add build time — prefer prebuilt or pure-JS alternatives where you can.
Cheaploy builds this image on your own Oracle Always Free VM, opens the ports, issues HTTPS and rolls back if health checks fail.