New:Introducing Socket Scanning for VS Code Marketplace Extensions.Learn more →
Get Started

create-odoo-app

Package Overview
Dependencies
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

create-odoo-app

Production-grade full-stack application generator with Next.js, Fastify, PostgreSQL, Redis, MinIO, and Identity & IAM system

latest
Source
npmnpm
Version
1.3.0
Version published
Maintainers
1
Created
Source

create-odoo-app

CI License: MIT Node: >=22.13.0 pnpm: 11.1.0

A production-grade npm project generator that scaffolds full-stack monorepo applications built with Next.js (App Router), Fastify, PostgreSQL (Drizzle ORM), Redis, S3-compatible Object Storage (MinIO), Prometheus/Grafana Observability, and an Identity, Authentication & IAM Authorization System.

1. Quick Start

Create a new application with a single command:

npx create-odoo-app@latest my-awesome-app

Then navigate into your project and initialize your local environment:

cd my-awesome-app
pnpm setup
pnpm dev

2. CLI Usage & Options

npx create-odoo-app@latest <project-name> [options]
npx create-odoo-app@latest . [options]

Options

FlagDescription
--skip-installSkip automatic dependency installation with pnpm
--skip-gitSkip initializing a new Git repository
--with-infraOpt in to running docker compose up -d after dependencies are installed. Automatically skipped when --skip-install is passed. If Docker is missing or the daemon isn't running, scaffolding still succeeds and a warning is printed instead.
-h, --helpDisplay CLI help message
-v, --versionDisplay generator package version

The target directory must be empty (a lone .git directory is fine). Scaffolding never overwrites existing files, including when generating into ..

Generated Secrets

Each scaffolded project gets its own SESSION_SECRET and INITIAL_ROOT_PASSWORD, written to .env and printed once at the end of the run. Save the root password — it is hashed at seed time and cannot be recovered afterwards.

The infrastructure credentials in .env (DATABASE_PASSWORD, S3_ACCESS_KEY, S3_SECRET_KEY, REDIS_PASSWORD) are still local development defaults. The API refuses to start with NODE_ENV=production while any of them remain, and reports exactly which ones to change.

3. Architecture & Monorepo Structure

my-awesome-app/
├── apps/
│   ├── web/               # Next.js (App Router) + Tailwind CSS + shadcn/ui + TanStack Query + Auth/IAM UI
│   └── api/               # Fastify + Zod validation + OpenAPI / Swagger + Prometheus metrics + Auth/IAM Gateway
│
├── packages/
│   ├── auth/              # Password hashing (scrypt), session management (PostgreSQL + Redis), cookie helpers
│   ├── iam/               # Permission catalog, policy evaluation engine (Explicit Deny, :self ownership), route guards
│   ├── config/            # Developer configuration surface (app-config, auth-config, iam-config, feature-config)
│   ├── db/                # PostgreSQL client, Drizzle ORM schemas (System, Auth, IAM), migrations, seeds
│   ├── openapi/           # OpenAPI 3.0 specification metadata, tag taxonomy, and schema utilities
│   ├── shared/            # Reusable Redis (ioredis) & S3/MinIO (@aws-sdk/client-s3) clients
│   └── validation/        # Runtime validation schemas (Auth, IAM, pagination, UUID, HTTP error models)
│
├── skills/                # Agent-native reference skills (architecture, security, validation, database, etc.)
│
├── infrastructure/
│   └── docker/
│       ├── prometheus/    # Prometheus scrape configurations
│       └── grafana/       # Grafana datasource and dashboard provisioning
│
├── scripts/               # Cross-platform setup, smoke test, and health check scripts
├── docker-compose.yml     # Local infrastructure (PostgreSQL, Redis, MinIO, Prometheus, Grafana)
├── AGENTS.md              # Coding Agent & Developer Operating Manual
├── CHANGELOG.md           # Release history and Keep a Changelog documentation
├── .env.example           # Environment template with local defaults
└── package.json           # Monorepo root configuration

4. Developer Configuration Surface (packages/config)

The generated project exposes a configuration layer in packages/config/src/:

  • app-config.ts: Application constants, metadata, pagination limits.
  • auth-config.ts: Authentication behavior (registrationEnabled, sessionTtlSeconds, cookieName, minPasswordLength, maxLoginAttempts, lockoutSeconds, loginAttemptWindowSeconds). Every value here is enforced at runtime — registrationEnabled: false genuinely closes /auth/signup, and maxLoginAttempts drives a real per-email lockout.
  • iam-config.ts: Declarative domain roles, groups, default policies, and baseline role-policy assignments so developers do not need to edit raw database records or authorization engine internals.
  • feature-config.ts: Optional infrastructure feature toggles (enableSwagger, enableMetrics, enableStorage, enableRedis, enableEmail).

5. Agent Skills Architecture & Discovery (skills/*)

The project provides 14 reusable Agent Skills aligned with the Agent Skills open standard, cataloged in the machine-readable registry skills/index.yaml:

Validate, list, inspect, and package skills at any time:

pnpm skills:list      # List all 14 canonical skills with descriptions
pnpm skills:show <n>  # Display metadata and content for a skill
pnpm skills:check     # Validate Agent Skills registry, frontmatter, and links
pnpm skills:lint      # Structural markdown and frontmatter linter
pnpm skills:pack      # Package skills into deterministic ZIP archives in dist/skills/
pnpm skills:export    # Export standalone clean skill directories in dist/skills/

6. Local Service Endpoints

ServiceURLDescription
Frontend Web Apphttp://localhost:3000Next.js App Router UI
IAM Admin Consolehttp://localhost:3000/adminIAM Control Center
Backend API Gatewayhttp://localhost:3001Fastify HTTP Gateway
OpenAPI Documentationhttp://localhost:3001/api/docsInteractive Swagger UI
OpenAPI Raw Spechttp://localhost:3001/api/openapi.jsonOpenAPI 3.0 JSON Specification
Prometheus Metricshttp://localhost:3001/metricsPrometheus metrics endpoint
Grafana Dashboardshttp://localhost:3002admin / admin (or anonymous viewer)
MinIO S3 Consolehttp://localhost:9001minioadmin / minioadmin

7. Monorepo & Quality Commands

CommandDescription
pnpm devRun Next.js (apps/web) and Fastify (apps/api) concurrently
pnpm dev:apiRun Fastify API in watch mode (apps/api)
pnpm dev:webRun Next.js in development mode (apps/web)
pnpm buildCompile all workspace packages, applications, and CLI binary
pnpm testRun complete Vitest test suite across all packages
pnpm test:securityRun dedicated IAM & authentication security tests
pnpm test:coverageRun Vitest test suite with v8 code coverage analysis
pnpm test:smokeRun generator smoke test in a temporary directory
pnpm test:dogfoodExecute full unpacked generator dogfooding test
pnpm audit:securityScan workspace and git history for credentials and machine paths
pnpm audit:depsFail on any known vulnerability in production dependencies
pnpm deps:checkAudit direct external dependencies inventory
pnpm skills:checkValidate Agent Skills registry, frontmatter, and links
pnpm skills:lintRun structural linter across all skill files
pnpm skills:packPackage skills into deterministic ZIP archives
pnpm verifyRun full local quality gate (skills + lint + typecheck + test + smoke + build)
pnpm verify:releaseExecute pre-release packaging, package audit, and unpacked generator test
pnpm release:checkCanonical pre-release verification checklist command
pnpm typecheckRun strict TypeScript verification across all packages + CLI
pnpm lintRun ESLint across all packages (zero warnings tolerated)
pnpm setupCross-platform idempotent setup and database seeding
pnpm db:migrateApply pending Drizzle PostgreSQL migrations
pnpm db:seedSeed database (bootstraps ROOT admin and baseline IAM)
pnpm db:studioLaunch Drizzle Studio database GUI
pnpm infra:upStart Docker Compose infrastructure
pnpm infra:downStop Docker Compose infrastructure
pnpm infra:resetStop infrastructure and purge all Docker volume data
pnpm healthExecute end-to-end infrastructure health check script

8. Release Engineering, CI/CD & Publishing

Automated CI/CD Pipeline

  • Continuous Integration (.github/workflows/ci.yml): Runs on pull requests and pushes to main. Tests on Ubuntu and Windows across Node.js 22.x with full quality gates: dependency vulnerability audit, ESLint, strict typecheck, tests with coverage thresholds, generator smoke test, and a production build. A separate Linux job runs migrations and the seed script against real PostgreSQL and Redis service containers.
  • Release Automation (.github/workflows/release.yml): Automatically triggers on Git tags (v*.*.*) or manual trigger. Builds, audits package contents for leaks, publishes to npm with --access public --provenance, and generates a GitHub Release.

Semantic Versioning Policy

  • patch (e.g. 1.0.1): Bug fixes, security patches, documentation updates.
  • minor (e.g. 1.1.0): Backward-compatible additions to the generator, CLI options, or template packages.
  • major (e.g. 2.0.0): Breaking CLI argument changes, major architectural changes to generated templates.

Pre-Release Verification

Before publishing or tagging a release, run:

pnpm release:check

This builds all packages, packages the .tgz artifact via npm pack, scans the tarball contents to guarantee zero leaked secrets or local machine paths, unpacks into a clean temporary directory, and runs the generator from the unpacked distribution to verify the generated application.

9. Community, Security & Contributing

  • Contributing Guide: Instructions for submitting bug reports, features, and pull requests.
  • Code of Conduct: Community participation guidelines (Contributor Covenant v2.1).
  • Security Policy: Instructions for responsibly disclosing security vulnerabilities.
  • License: MIT License.

FAQs

Package last updated on 05 Sep 2026

Related posts