Skip to content

DecOperations/depot

Repository files navigation

xops

Wallet-native deployment platform: GitHub OAuth, prepaid credits, IPFS publishing, and s3worm (S3 Wrapped ORM) for typed JSON and artifacts on S3-compatible storage.

Prerequisites

  • Node.js 20+
  • pnpm 9+
  • Docker (for local Postgres, Redis, MinIO)

Some installs use GitHub Package Registry for @decoperations/s3worm. Set GITHUB_TOKEN (see .env.example) before pnpm install if you pull that package from GPR instead of the workspace copy.

Quick start

cp .env.example .env
# Edit .env — at minimum DATABASE_URL, REDIS_URL, S3_*, BUILDER_*, BUILDER_SECRET

make bootstrap   # install, db migrate, worm codegen stub, infra optional per Makefile
pnpm typecheck
pnpm dev         # or: make dev
  • Web: http://localhost:3000
  • Builder API: http://localhost:3001 (expects x-builder-secret header matching BUILDER_SECRET)

Monorepo note — drizzle-orm in package manifests

Under pnpm + tsc --noEmit, any package whose source imports drizzle-orm (for example eq, and, sql) must declare drizzle-orm in that package’s package.json, even if it already depends on @xops/db. Otherwise TypeScript may report “Cannot find module drizzle-orm”. Typical direct dependents: @xops/auth, @xops/web, @xops/builder, @xops/build-runner.

Storage terminology

s3worm means S3 Wrapped ORM (structured JSON + paths on S3). Deployment manifest keys use a first-write policy (IfNoneMatch: '*') so records are not overwritten after create.

Docker (web)

The apps/web/Dockerfile expects a monorepo root build with output: 'standalone' (see apps/web/next.config.ts). Build from the repository root per your CI pattern.

Scripts

Command Description
pnpm typecheck Typecheck all workspaces
pnpm build Production builds
pnpm test Vitest (unit smoke tests)
make bootstrap First-run setup

License

Private / DecOps — see repository settings.

Releases

No releases published

Packages

 
 
 

Contributors