Skip to main content

Deployment

Deploy your Qumra app to any platform that supports Node.js or Docker containers.

Build Commands

CommandDescription
npm run devStart the development server with automatic database migrations
npm run buildCreate a production-optimized build
npm run startStart the production server
npm run typecheckRun TypeScript type checking

Docker

Use the following multi-stage Dockerfile for optimized production builds.

Dockerfile
FROM node:20-alpine AS development-dependencies-env
COPY . /app
WORKDIR /app
RUN npm ci

FROM node:20-alpine AS production-dependencies-env
COPY ./package.json package-lock.json /app/
WORKDIR /app
RUN npm ci --omit=dev

FROM node:20-alpine AS build-env
COPY . /app/
COPY --from=development-dependencies-env /app/node_modules /app/node_modules
WORKDIR /app
RUN npm run build

FROM node:20-alpine
COPY ./package.json package-lock.json /app/
COPY --from=production-dependencies-env /app/node_modules /app/node_modules
COPY --from=build-env /app/build /app/build
WORKDIR /app
CMD ["npm", "run", "start"]

Build and Run

docker build -t my-qumra-app .
docker run -p 3000:3000 \
-e QUMRA_API_KEY=your_key \
-e QUMRA_API_SECRET=your_secret \
-e DATABASE_URL=file:./data/prod.db \
my-qumra-app

Deploy with CLI

Use the Qumra CLI to deploy your app directly. This command registers or updates your app with the Qumra platform.

qumra app deploy

For more details on the CLI deployment command, see the CLI App Commands.

Supported Platforms

Qumra apps can be deployed to any platform that supports Node.js or Docker:

  • AWS ECS -- Elastic Container Service for scalable container orchestration
  • Google Cloud Run -- Serverless container execution
  • Azure Container Apps -- Managed container hosting
  • DigitalOcean App Platform -- Simple container deployment
  • Fly.io -- Global application deployment
  • Railway -- One-click deployments from Git

Pre-deployment Checklist

Before deploying to production, verify the following:

  1. Manifest configured -- qumra.app.json has all required fields filled in
  2. Environment variables set -- QUMRA_API_KEY, QUMRA_API_SECRET, and DATABASE_URL are configured on the hosting platform
  3. Database migrations run -- All pending migrations have been applied to the production database
  4. App URL updated -- The appUrl field in qumra.app.json points to your production URL
warning

Make sure to update the appUrl in qumra.app.json to your production URL before deploying.

tip

Use DATABASE_URL with a persistent database (PostgreSQL, MySQL) in production instead of SQLite.