Docker
Deploy VeloxTS with Docker for consistent, portable deployments.
Dockerfile
Section titled “Dockerfile”FROM node:20-alpine AS base
# Install pnpmRUN corepack enable && corepack prepare pnpm@latest --activate
WORKDIR /app
# DependenciesFROM base AS depsCOPY package.json pnpm-lock.yaml ./COPY prisma ./prismaCOPY prisma.config.ts ./RUN pnpm install --frozen-lockfile
# BuildFROM base AS buildCOPY --from=deps /app/node_modules ./node_modulesCOPY . .RUN pnpm buildRUN pnpm prisma generate
# ProductionFROM base AS productionENV NODE_ENV=production
COPY --from=build /app/dist ./distCOPY --from=build /app/node_modules ./node_modulesCOPY --from=build /app/package.json ./COPY --from=build /app/prisma ./prismaCOPY --from=build /app/prisma.config.ts ./
EXPOSE 3030
CMD ["node", "dist/index.js"]Docker Compose
Section titled “Docker Compose”version: '3.8'
services: app: build: . ports: - "3030:3030" environment: - NODE_ENV=production - DATABASE_URL=postgresql://postgres:postgres@db:5432/app - JWT_SECRET=${JWT_SECRET} depends_on: - db
db: image: postgres:15-alpine environment: - POSTGRES_USER=postgres - POSTGRES_PASSWORD=postgres - POSTGRES_DB=app volumes: - postgres_data:/var/lib/postgresql/data
volumes: postgres_data:Build and Run
Section titled “Build and Run”docker build -t my-velox-app .docker run -p 3030:3030 --env-file .env.production my-velox-appNext Steps
Section titled “Next Steps”- Railway - PaaS deployment
- Production Checklist - Full checklist