diff --git a/Procfile b/Procfile new file mode 100644 index 000000000..3da3bfc67 --- /dev/null +++ b/Procfile @@ -0,0 +1,2 @@ +web: bun --filter=${SERVICE_NAME:-@comp/app} run start +release: bun run db:deploy diff --git a/app.json b/app.json new file mode 100644 index 000000000..a9022bf2d --- /dev/null +++ b/app.json @@ -0,0 +1,60 @@ +{ + "name": "Comp AI", + "description": "The open-source compliance platform", + "repository": "https://github.com/trycompai/comp", + "logo": "https://assets.trycomp.ai/logo.png", + "keywords": [ + "compliance", + "soc2", + "iso27001", + "hipaa", + "gdpr" + ], + "buildpacks": [ + { + "url": "https://github.com/jakeonrails/bun-buildpack.git" + } + ], + "addons": [ + "heroku-postgresql:essential-0", + "heroku-redis:mini" + ], + "env": { + "AUTH_SECRET": { + "description": "Secret key for authentication (use openssl rand -base64 32)", + "generator": "secret" + }, + "REVALIDATION_SECRET": { + "description": "Secret for nextjs revalidation (use openssl rand -base64 32)", + "generator": "secret" + }, + "SKIP_ENV_VALIDATION": { + "description": "Skip environment validation during build time", + "value": "true" + }, + "NEXT_PUBLIC_PORTAL_URL": { + "description": "URL for the portal app (e.g. https://your-app-portal.herokuapp.com)", + "required": false + }, + "NEXT_PUBLIC_BETTER_AUTH_URL": { + "description": "Must point to the domain hosting the app (e.g. https://your-app.herokuapp.com)", + "required": false + }, + "NEXT_PUBLIC_API_URL": { + "description": "Must point to the domain hosting the api (e.g. https://your-app-api.herokuapp.com)", + "required": false + }, + "RESEND_API_KEY": { + "description": "Resend API Key for emails", + "required": false + }, + "TRIGGER_SECRET_KEY": { + "description": "Trigger.dev secret key", + "required": false + }, + "OPENAI_API_KEY": { + "description": "OpenAI API Key", + "required": false + } + } +} diff --git a/apps/api/package.json b/apps/api/package.json index 574405653..f9f7e9e51 100644 --- a/apps/api/package.json +++ b/apps/api/package.json @@ -122,7 +122,7 @@ "scripts": { "build": "nest build", "build:docker": "bunx prisma generate && nest build", - "db:generate": "bun run db:getschema && bunx prisma generate", + "db:generate": "bun run db:getschema && prisma generate", "db:getschema": "node ../../packages/db/scripts/combine-schemas.js && cp ../../packages/db/dist/schema.prisma prisma/schema.prisma", "db:migrate": "cd ../../packages/db && bunx prisma migrate dev && cd ../../apps/api", "deploy:trigger-prod": "npx trigger.dev@4.0.6 deploy", diff --git a/bun.lock b/bun.lock index b439cd2dd..3c106dc69 100644 --- a/bun.lock +++ b/bun.lock @@ -1,6 +1,5 @@ { "lockfileVersion": 1, - "configVersion": 1, "workspaces": { "": { "name": "comp", diff --git a/package.json b/package.json index 0d372f011..91dc4b893 100644 --- a/package.json +++ b/package.json @@ -71,6 +71,7 @@ "deps:update": "syncpack update", "deps:upgrade": "syncpack update && bun install", "dev": "turbo dev --parallel", + "db:deploy": "bun --filter=@comp/db run db:deploy", "db:generate": "turbo run db:generate --filter=@comp/app --filter=@comp/portal --filter=@comp/api", "docker:clean": "bun run -F @comp/db docker:clean", "docker:down": "bun run -F @comp/db docker:down", diff --git a/packages/db/package.json b/packages/db/package.json index 4f2ef971a..64b9076fd 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -45,6 +45,7 @@ "build": "rm -rf dist && rm -rf ./prisma/generated && node scripts/combine-schemas.js && prisma generate --schema=dist/schema.prisma && tsc", "check-types": "tsc --noEmit", "db:generate": "node scripts/combine-schemas.js && prisma generate --schema=dist/schema.prisma", + "db:deploy": "prisma migrate deploy", "db:migrate": "prisma migrate dev", "db:migrate:reset": "prisma migrate reset", "db:push": "prisma db push",