antilla-nestjs-server
v0.2.1
Published
Scaffolding CLI for AntiCapDevs NestJS backends (create-t3-app style).
Readme
Scaffolding CLI for Antilla Capital NestJS backends. Generates a fully wired project following our conventions (base classes, logging, config, auth, migrations, seeders, Docker deploy) from an interactive, create-t3-app–style prompt flow.
npx antilla-nestjs-server my-serviceDevelopment
npm install
npm run dev # tsx watch on src/index.ts
npm run build # tsup -> dist/
npm test # vitestTrying it out in a scratch project
Build and link the CLI, then generate a project outside this repo:
npm run build
npm link
cd /tmp # or any scratch dir
antilla-nestjs-server my-serviceAnswer the prompts — pick at least database, example-module, seeders,
deploy-docker to exercise the layers that need real verification (auth-jwt,
messaging-nats, otel are also worth including for a full-stack check).
Install, build, and test the generated project:
cd my-service
pnpm install --ignore-scripts
pnpm build
pnpm testDocker deploy + logging check
cp .env.example .env # fill in DB_*, JWT_SECRET, etc.By default deploy-app.sh/update-deploy.sh attach the container to
antilla-network (the shared network antilla-mysql and the other Antilla
services already run on). Override with NETWORK_NAME=... in .env if you
need an isolated network instead.
If database was selected, create the schema and apply migrations before
deploying — neither deploy-app.sh nor update-deploy.sh does this for you,
and the app container fails to boot if the schema doesn't exist yet:
pnpm deploy:migrate # bash run-migrations.shrun-migrations.sh runs the migration in a throwaway container on the same
docker network as the deployed app (antilla-network by default), so
DB_HOST resolves exactly like it does for the real app — no host/shell DNS
workarounds needed.
pnpm deploy # bash deploy-app.sh — builds, starts, health-checks
pnpm deploy:seed # bash run-seeders.sh — only if `seeders` was selectedGET /health logs one line at every Winston level (debug → error) so you
can sanity-check LOG_LEVEL/LOG_FORMAT with a single request:
curl localhost:3000/healthLOG_LEVEL defaults to info, so debug/verbose are filtered out unless
you set LOG_LEVEL=debug in .env before deploying.
Verifying the published tarball
Simulates what npx antilla-nestjs-server will actually install — catches files
missing from package.json's files field:
npm run build
npm pack
cd /tmp
npx ./antilla-nestjs-server-<version>.tgz another-service