deploy-bbc 1.2.1 → 1.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +142 -281
- package/dist/index.js +16870 -0
- package/dist/templates/base/.env.example +3 -0
- package/dist/templates/base/package.json +20 -0
- package/dist/templates/base/src/config/index.ts +8 -0
- package/dist/templates/base/src/routes/index.ts +12 -0
- package/dist/templates/base/src/types/index.ts +2 -0
- package/dist/templates/base-bun-native/.env.example +3 -0
- package/dist/templates/base-bun-native/package.json +19 -0
- package/dist/templates/base-bun-native/src/config/index.ts +8 -0
- package/dist/templates/base-bun-native/src/index.ts +50 -0
- package/dist/templates/base-bun-native/src/routes/index.ts +21 -0
- package/dist/templates/base-bun-native/src/types/index.ts +2 -0
- package/dist/templates/base-express/.env.example +3 -0
- package/dist/templates/base-express/package.json +21 -0
- package/dist/templates/base-express/src/config/index.ts +8 -0
- package/dist/templates/base-express/src/routes/index.ts +12 -0
- package/dist/templates/base-express/src/types/index.ts +2 -0
- package/dist/templates/templates/base/README.md +31 -0
- package/dist/templates/templates/base/src/index.ts +26 -0
- package/dist/templates/templates/base/src/middleware/error.ts +13 -0
- package/dist/templates/templates/base/src/middleware/logger.ts +8 -0
- package/dist/templates/templates/base/src/utils/env.ts +5 -0
- package/dist/templates/templates/base/tsconfig.json +20 -0
- package/dist/templates/templates/base-bun-native/README.md +31 -0
- package/dist/templates/templates/base-bun-native/src/middleware/error.ts +20 -0
- package/dist/templates/templates/base-bun-native/src/middleware/logger.ts +6 -0
- package/dist/templates/templates/base-bun-native/src/utils/env.ts +5 -0
- package/dist/templates/templates/base-bun-native/tsconfig.json +20 -0
- package/dist/templates/templates/base-express/README.md +31 -0
- package/dist/templates/templates/base-express/src/index.ts +27 -0
- package/dist/templates/templates/base-express/src/middleware/error.ts +15 -0
- package/dist/templates/templates/base-express/src/middleware/logger.ts +12 -0
- package/dist/templates/templates/base-express/src/utils/env.ts +5 -0
- package/dist/templates/templates/base-express/tsconfig.json +20 -0
- package/dist/templates/templates/extras/ai/anthropic/src/services/ai/anthropic.ts +0 -0
- package/dist/templates/templates/extras/ai/gemini/src/services/ai/gemini.ts +0 -0
- package/dist/templates/templates/extras/ai/openai/src/routes/ai/chat.ts +0 -0
- package/dist/templates/templates/extras/ai/openai/src/services/ai/openai.ts +0 -0
- package/dist/templates/templates/extras/ai/vercel-ai/src/routes/ai/generate.ts +0 -0
- package/dist/templates/templates/extras/ai/vercel-ai/src/routes/ai/stream.ts +0 -0
- package/dist/templates/templates/extras/ai/vercel-ai/src/services/ai/index.ts +0 -0
- package/dist/templates/templates/extras/auth/jwt/src/middleware/auth.ts +0 -0
- package/dist/templates/templates/extras/auth/jwt/src/routes/auth.ts +0 -0
- package/dist/templates/templates/extras/auth/jwt/src/utils/jwt.ts +0 -0
- package/dist/templates/templates/extras/auth/oauth/src/config/oauth.ts +0 -0
- package/dist/templates/templates/extras/auth/oauth/src/routes/auth.ts +0 -0
- package/dist/templates/templates/extras/auth/session/src/config/session.ts +0 -0
- package/dist/templates/templates/extras/auth/session/src/middleware/session.ts +0 -0
- package/dist/templates/templates/extras/cloud/aws/src/services/aws/s3.ts +0 -0
- package/dist/templates/templates/extras/cloud/aws/src/services/aws/ses.ts +0 -0
- package/dist/templates/templates/extras/cloud/azure/src/services/azure/blob.ts +0 -0
- package/dist/templates/templates/extras/cloud/cloudflare-r2/src/services/cloudflare/r2.ts +0 -0
- package/dist/templates/templates/extras/cloud/gcp/src/services/gcp/storage.ts +0 -0
- package/dist/templates/templates/extras/database/mongodb/src/db/index.ts +0 -0
- package/dist/templates/templates/extras/database/mongodb/src/db/models/user.model.ts +0 -0
- package/dist/templates/templates/extras/database/mysql/drizzle.config.ts +0 -0
- package/dist/templates/templates/extras/database/postgres/src/db/index.ts +0 -0
- package/dist/templates/templates/extras/database/redis/src/db/redis.ts +0 -0
- package/dist/templates/templates/extras/docs/scalar/src/openapi/index.ts +0 -0
- package/dist/templates/templates/extras/docs/scalar/src/routes/docs.ts +0 -0
- package/dist/templates/templates/extras/docs/swagger/src/openapi/index.ts +0 -0
- package/dist/templates/templates/extras/docs/swagger/src/routes/docs.ts +0 -0
- package/dist/templates/templates/extras/email/nodemailer/src/services/email/nodemailer.ts +0 -0
- package/dist/templates/templates/extras/email/resend/src/services/email/resend.ts +0 -0
- package/dist/templates/templates/extras/email/resend/src/templates/email/welcome.ts +0 -0
- package/dist/templates/templates/extras/email/sendgrid/src/services/email/sendgrid.ts +0 -0
- package/dist/templates/templates/extras/observability/logtail/src/config/logger.ts +0 -0
- package/dist/templates/templates/extras/observability/sentry/src/config/sentry.ts +0 -0
- package/dist/templates/templates/extras/observability/sentry/src/middleware/sentry.ts +0 -0
- package/dist/templates/templates/extras/queue/bullmq/src/queue/index.ts +0 -0
- package/dist/templates/templates/extras/queue/bullmq/src/queue/jobs/email.job.ts +0 -0
- package/dist/templates/templates/extras/queue/bullmq/src/queue/processors/email.processor.ts +0 -0
- package/dist/templates/templates/extras/queue/bullmq/src/routes/queue.ts +0 -0
- package/dist/templates/templates/extras/queue/inngest/src/inngest/client.ts +0 -0
- package/dist/templates/templates/extras/queue/inngest/src/inngest/functions/email.ts +0 -0
- package/dist/templates/templates/extras/queue/inngest/src/routes/inngest.ts +0 -0
- package/dist/templates/templates/extras/realtime/socketio/src/socket/handlers.ts +0 -0
- package/dist/templates/templates/extras/realtime/socketio/src/socket/index.ts +0 -0
- package/dist/templates/templates/extras/realtime/sse/src/routes/sse.ts +0 -0
- package/dist/templates/templates/extras/testing/vitest/src/__tests__/example.test.ts +0 -0
- package/dist/templates/templates/extras/testing/vitest/src/__tests__/setup.ts +0 -0
- package/dist/templates/templates/extras/testing/vitest/vitest.config.ts +0 -0
- package/dist/templates/templates/extras/validation/yup/src/middleware/index.ts +1 -0
- package/dist/templates/templates/extras/validation/yup/src/middleware/validate.ts +83 -0
- package/dist/templates/templates/extras/validation/yup/src/routes/users.ts +132 -0
- package/dist/templates/templates/extras/validation/zod/src/middleware/index.ts +1 -0
- package/dist/templates/templates/extras/validation/zod/src/middleware/validate.ts +80 -0
- package/dist/templates/templates/extras/validation/zod/src/routes/users.ts +128 -0
- package/package.json +43 -9
- package/.cspell.json +0 -38
- package/CLAUDE.md +0 -403
- package/cli/README.md +0 -345
- package/cli/package.json +0 -54
- package/cli/src/cli/index.ts +0 -454
- package/cli/src/helpers/create-project.ts +0 -66
- package/cli/src/helpers/generate-docker-compose.ts +0 -133
- package/cli/src/helpers/generate-dockerfile.ts +0 -45
- package/cli/src/helpers/init-git.ts +0 -33
- package/cli/src/helpers/install-dependencies.ts +0 -28
- package/cli/src/helpers/log-next-steps.ts +0 -87
- package/cli/src/helpers/scaffold-project.ts +0 -88
- package/cli/src/index.ts +0 -18
- package/cli/src/installers/ai.ts +0 -123
- package/cli/src/installers/auth.ts +0 -132
- package/cli/src/installers/base.ts +0 -16
- package/cli/src/installers/cloud.ts +0 -127
- package/cli/src/installers/database.ts +0 -212
- package/cli/src/installers/docs.ts +0 -93
- package/cli/src/installers/email.ts +0 -119
- package/cli/src/installers/env-variables.ts +0 -27
- package/cli/src/installers/index.ts +0 -145
- package/cli/src/installers/observability.ts +0 -103
- package/cli/src/installers/queue.ts +0 -103
- package/cli/src/installers/ratelimit.ts +0 -98
- package/cli/src/installers/realtime.ts +0 -79
- package/cli/src/installers/testing.ts +0 -88
- package/cli/src/installers/validation.ts +0 -85
- package/cli/src/types/index.ts +0 -126
- package/cli/src/utils/add-package-dependency.ts +0 -56
- package/cli/src/utils/dependency-version-map.ts +0 -85
- package/cli/src/utils/logger.ts +0 -19
- package/cli/src/utils/parse-name-and-path.ts +0 -71
- package/cli/src/utils/render-title.ts +0 -11
- package/cli/tsconfig.json +0 -35
- package/test-cli.sh +0 -56
- package/tsconfig.json +0 -15
- /package/{cli/src → dist}/templates/base/README.md +0 -0
- /package/{cli/src → dist}/templates/base/src/index.ts +0 -0
- /package/{cli/src → dist}/templates/base/src/middleware/error.ts +0 -0
- /package/{cli/src → dist}/templates/base/src/middleware/logger.ts +0 -0
- /package/{cli/src → dist}/templates/base/src/utils/env.ts +0 -0
- /package/{cli/src → dist}/templates/base/tsconfig.json +0 -0
- /package/{cli/src → dist}/templates/base-bun-native/README.md +0 -0
- /package/{cli/src → dist}/templates/base-bun-native/src/middleware/error.ts +0 -0
- /package/{cli/src → dist}/templates/base-bun-native/src/middleware/logger.ts +0 -0
- /package/{cli/src → dist}/templates/base-bun-native/src/utils/env.ts +0 -0
- /package/{cli/src → dist}/templates/base-bun-native/tsconfig.json +0 -0
- /package/{cli/src → dist}/templates/base-express/README.md +0 -0
- /package/{cli/src → dist}/templates/base-express/src/index.ts +0 -0
- /package/{cli/src → dist}/templates/base-express/src/middleware/error.ts +0 -0
- /package/{cli/src → dist}/templates/base-express/src/middleware/logger.ts +0 -0
- /package/{cli/src → dist}/templates/base-express/src/utils/env.ts +0 -0
- /package/{cli/src → dist}/templates/base-express/tsconfig.json +0 -0
- /package/{cli/src → dist}/templates/extras/ai/anthropic/src/routes/ai/claude.ts +0 -0
- /package/{cli/src → dist}/templates/extras/ai/anthropic/src/services/ai/anthropic.ts +0 -0
- /package/{cli/src → dist}/templates/extras/ai/gemini/src/services/ai/gemini.ts +0 -0
- /package/{cli/src → dist}/templates/extras/ai/openai/src/routes/ai/chat.ts +0 -0
- /package/{cli/src → dist}/templates/extras/ai/openai/src/services/ai/openai.ts +0 -0
- /package/{cli/src → dist}/templates/extras/ai/vercel-ai/src/routes/ai/generate.ts +0 -0
- /package/{cli/src → dist}/templates/extras/ai/vercel-ai/src/routes/ai/stream.ts +0 -0
- /package/{cli/src → dist}/templates/extras/ai/vercel-ai/src/services/ai/index.ts +0 -0
- /package/{cli/src → dist}/templates/extras/auth/jwt/src/middleware/auth.ts +0 -0
- /package/{cli/src → dist}/templates/extras/auth/jwt/src/routes/auth.ts +0 -0
- /package/{cli/src → dist}/templates/extras/auth/jwt/src/utils/jwt.ts +0 -0
- /package/{cli/src → dist}/templates/extras/auth/oauth/src/config/oauth.ts +0 -0
- /package/{cli/src → dist}/templates/extras/auth/oauth/src/routes/auth.ts +0 -0
- /package/{cli/src → dist}/templates/extras/auth/session/src/config/session.ts +0 -0
- /package/{cli/src → dist}/templates/extras/auth/session/src/middleware/session.ts +0 -0
- /package/{cli/src → dist}/templates/extras/cloud/aws/src/services/aws/s3.ts +0 -0
- /package/{cli/src → dist}/templates/extras/cloud/aws/src/services/aws/ses.ts +0 -0
- /package/{cli/src → dist}/templates/extras/cloud/azure/src/services/azure/blob.ts +0 -0
- /package/{cli/src → dist}/templates/extras/cloud/cloudflare-r2/src/services/cloudflare/r2.ts +0 -0
- /package/{cli/src → dist}/templates/extras/cloud/gcp/src/services/gcp/storage.ts +0 -0
- /package/{cli/src → dist}/templates/extras/database/mongodb/src/db/index.ts +0 -0
- /package/{cli/src → dist}/templates/extras/database/mongodb/src/db/models/user.model.ts +0 -0
- /package/{cli/src → dist}/templates/extras/database/mysql/drizzle.config.ts +0 -0
- /package/{cli/src → dist}/templates/extras/database/postgres/src/db/index.ts +0 -0
- /package/{cli/src → dist}/templates/extras/database/redis/src/db/redis.ts +0 -0
- /package/{cli/src → dist}/templates/extras/docs/scalar/src/openapi/index.ts +0 -0
- /package/{cli/src → dist}/templates/extras/docs/scalar/src/routes/docs.ts +0 -0
- /package/{cli/src → dist}/templates/extras/docs/swagger/src/openapi/index.ts +0 -0
- /package/{cli/src → dist}/templates/extras/docs/swagger/src/routes/docs.ts +0 -0
- /package/{cli/src → dist}/templates/extras/email/nodemailer/src/services/email/nodemailer.ts +0 -0
- /package/{cli/src → dist}/templates/extras/email/resend/src/services/email/resend.ts +0 -0
- /package/{cli/src → dist}/templates/extras/email/resend/src/templates/email/welcome.ts +0 -0
- /package/{cli/src → dist}/templates/extras/email/sendgrid/src/services/email/sendgrid.ts +0 -0
- /package/{cli/src → dist}/templates/extras/observability/logtail/src/config/logger.ts +0 -0
- /package/{cli/src → dist}/templates/extras/observability/sentry/src/config/sentry.ts +0 -0
- /package/{cli/src → dist}/templates/extras/observability/sentry/src/middleware/sentry.ts +0 -0
- /package/{cli/src → dist}/templates/extras/queue/bullmq/src/queue/index.ts +0 -0
- /package/{cli/src → dist}/templates/extras/queue/bullmq/src/queue/jobs/email.job.ts +0 -0
- /package/{cli/src → dist}/templates/extras/queue/bullmq/src/queue/processors/email.processor.ts +0 -0
- /package/{cli/src → dist}/templates/extras/queue/bullmq/src/routes/queue.ts +0 -0
- /package/{cli/src → dist}/templates/extras/queue/inngest/src/inngest/client.ts +0 -0
- /package/{cli/src → dist}/templates/extras/queue/inngest/src/inngest/functions/email.ts +0 -0
- /package/{cli/src → dist}/templates/extras/queue/inngest/src/routes/inngest.ts +0 -0
- /package/{cli/src → dist}/templates/extras/realtime/socketio/src/socket/handlers.ts +0 -0
- /package/{cli/src → dist}/templates/extras/realtime/socketio/src/socket/index.ts +0 -0
- /package/{cli/src → dist}/templates/extras/realtime/sse/src/routes/sse.ts +0 -0
- /package/{cli/src → dist}/templates/extras/testing/vitest/src/__tests__/example.test.ts +0 -0
- /package/{cli/src → dist}/templates/extras/testing/vitest/src/__tests__/setup.ts +0 -0
- /package/{cli/src → dist}/templates/extras/testing/vitest/vitest.config.ts +0 -0
- /package/{cli/src → dist}/templates/extras/validation/yup/src/middleware/index.ts +0 -0
- /package/{cli/src → dist}/templates/extras/validation/yup/src/middleware/validate.ts +0 -0
- /package/{cli/src → dist}/templates/extras/validation/yup/src/routes/users.ts +0 -0
- /package/{cli/src → dist}/templates/extras/validation/zod/src/middleware/index.ts +0 -0
- /package/{cli/src → dist}/templates/extras/validation/zod/src/middleware/validate.ts +0 -0
- /package/{cli/src → dist}/templates/extras/validation/zod/src/routes/users.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base/.env.example +0 -0
- /package/{cli/src → dist/templates}/templates/base/package.json +0 -0
- /package/{cli/src → dist/templates}/templates/base/src/config/index.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base/src/controllers/user/create-user.controller.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base/src/controllers/user/delete-user.controller.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base/src/controllers/user/get-user.controller.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base/src/controllers/user/get-users.controller.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base/src/controllers/user/update-user.controller.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base/src/models/user.model.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base/src/routes/index.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base/src/routes/user.route.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base/src/types/common/api-response.types.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base/src/types/index.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base/src/types/models/user.types.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base-bun-native/.env.example +0 -0
- /package/{cli/src → dist/templates}/templates/base-bun-native/package.json +0 -0
- /package/{cli/src → dist/templates}/templates/base-bun-native/src/config/index.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base-bun-native/src/controllers/user/create-user.controller.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base-bun-native/src/controllers/user/delete-user.controller.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base-bun-native/src/controllers/user/get-user.controller.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base-bun-native/src/controllers/user/get-users.controller.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base-bun-native/src/controllers/user/update-user.controller.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base-bun-native/src/index.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base-bun-native/src/models/user.model.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base-bun-native/src/routes/index.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base-bun-native/src/routes/user.route.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base-bun-native/src/types/common/api-response.types.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base-bun-native/src/types/index.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base-bun-native/src/types/models/user.types.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base-express/.env.example +0 -0
- /package/{cli/src → dist/templates}/templates/base-express/package.json +0 -0
- /package/{cli/src → dist/templates}/templates/base-express/src/config/index.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base-express/src/controllers/user/create-user.controller.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base-express/src/controllers/user/delete-user.controller.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base-express/src/controllers/user/get-user.controller.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base-express/src/controllers/user/get-users.controller.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base-express/src/controllers/user/update-user.controller.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base-express/src/models/user.model.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base-express/src/routes/index.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base-express/src/routes/user.route.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base-express/src/types/common/api-response.types.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base-express/src/types/index.ts +0 -0
- /package/{cli/src → dist/templates}/templates/base-express/src/types/models/user.types.ts +0 -0
- /package/{prettier.config.mjs → dist/templates/templates/extras/ai/anthropic/src/routes/ai/claude.ts} +0 -0
package/README.md
CHANGED
|
@@ -1,358 +1,219 @@
|
|
|
1
1
|
# deploy-bbc
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
<p align="center">
|
|
4
|
+
<b>Best Backend Code</b> — A powerful CLI to bootstrap production-ready backend applications with Bun
|
|
5
|
+
</p>
|
|
4
6
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
- **Three Framework Options**: Choose between Hono, Express, or Bun Native HTTP
|
|
12
|
-
- **Production-Ready Templates**: Pre-configured with best practices and error handling
|
|
13
|
-
- **30+ Integrations**: Databases, auth, AI, cloud storage, queues, and more
|
|
14
|
-
- **Type-Safe**: Full TypeScript support with strict typing
|
|
15
|
-
- **Docker Ready**: Automatic Dockerfile and docker-compose generation
|
|
16
|
-
- **Developer Experience**: Built-in validation, testing, and API documentation options
|
|
17
|
-
- **Zero Config**: Works out of the box with sensible defaults
|
|
18
|
-
|
|
19
|
-
## Quick Start
|
|
7
|
+
<p align="center">
|
|
8
|
+
<img src="https://img.shields.io/npm/v/deploy-bbc" alt="npm version" />
|
|
9
|
+
<img src="https://img.shields.io/npm/dt/deploy-bbc" alt="npm downloads" />
|
|
10
|
+
<img src="https://img.shields.io/github/stars/aritra69/deploy-bbc" alt="github stars" />
|
|
11
|
+
<img src="https://img.shields.io/github/license/aritra69/deploy-bbc" alt="license" />
|
|
12
|
+
</p>
|
|
20
13
|
|
|
21
|
-
|
|
22
|
-
# Using npx (recommended)
|
|
23
|
-
npx deploy-bbc my-backend
|
|
24
|
-
|
|
25
|
-
# Using bun
|
|
26
|
-
bunx deploy-bbc my-backend
|
|
27
|
-
|
|
28
|
-
# Using npm
|
|
29
|
-
npm create backend-app my-backend
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
Follow the interactive prompts to select your framework and integrations.
|
|
33
|
-
|
|
34
|
-
## Installation
|
|
35
|
-
|
|
36
|
-
### As a CLI Tool
|
|
37
|
-
|
|
38
|
-
```bash
|
|
39
|
-
# Install globally
|
|
40
|
-
npm install -g deploy-bbc
|
|
41
|
-
|
|
42
|
-
# Run
|
|
43
|
-
deploy-bbc my-app-name
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
### From Source
|
|
14
|
+
---
|
|
47
15
|
|
|
48
|
-
|
|
49
|
-
# Clone the repository
|
|
50
|
-
git clone https://github.com/aritra69/deploy-bbc.git
|
|
51
|
-
cd deploy-bbc
|
|
16
|
+
## Overview
|
|
52
17
|
|
|
53
|
-
|
|
54
|
-
bun install
|
|
18
|
+
`deploy-bbc` is an interactive command-line tool that scaffolds modern, type-safe backend applications using Bun.
|
|
55
19
|
|
|
56
|
-
|
|
57
|
-
bun run build
|
|
20
|
+
It ships with production-ready defaults, optional integrations, Docker support, and a clean architecture so you can focus on building features instead of wiring infrastructure.
|
|
58
21
|
|
|
59
|
-
|
|
60
|
-
npm link
|
|
61
|
-
```
|
|
22
|
+
---
|
|
62
23
|
|
|
63
|
-
##
|
|
24
|
+
## Tech Stack
|
|
64
25
|
|
|
65
|
-
|
|
26
|
+
<p align="center">
|
|
27
|
+
<img height="40" src="https://bun.sh/logo.svg" alt="Bun" />
|
|
28
|
+
<img height="40" src="https://hono.dev/images/logo.svg" alt="Hono" />
|
|
29
|
+
<img height="40" src="https://raw.githubusercontent.com/expressjs/expressjs.com/gh-pages/images/favicon.png" alt="Express" />
|
|
30
|
+
<img height="40" src="https://www.typescriptlang.org/icons/icon-48x48.png" alt="TypeScript" />
|
|
31
|
+
<img height="40" src="https://www.docker.com/wp-content/uploads/2022/03/Moby-logo.png" alt="Docker" />
|
|
32
|
+
</p>
|
|
66
33
|
|
|
67
|
-
|
|
34
|
+
---
|
|
68
35
|
|
|
69
|
-
|
|
70
|
-
deploy-bbc my-backend
|
|
71
|
-
```
|
|
36
|
+
## Features
|
|
72
37
|
|
|
73
|
-
|
|
38
|
+
- ⚡ **Three framework options**: Hono, Express, or Bun Native HTTP
|
|
39
|
+
- 🚀 **Production-ready templates** with best practices
|
|
40
|
+
- 🔌 **30+ integrations** (databases, auth, AI, cloud, infra)
|
|
41
|
+
- 🛡️ **Fully type-safe** with strict TypeScript
|
|
42
|
+
- 🐳 **Dockerfile and docker-compose** included
|
|
43
|
+
- 💎 **Strong developer experience** with testing and docs
|
|
44
|
+
- ⚙️ **Zero-config defaults** that work out of the box
|
|
74
45
|
|
|
75
|
-
|
|
76
|
-
2. Select integrations (databases, auth, AI services, etc.)
|
|
77
|
-
3. Configure additional options
|
|
46
|
+
---
|
|
78
47
|
|
|
79
|
-
|
|
48
|
+
## Quick Start
|
|
80
49
|
|
|
81
50
|
```bash
|
|
82
|
-
deploy-bbc my-backend
|
|
51
|
+
npx deploy-bbc my-backend
|
|
52
|
+
# or
|
|
53
|
+
bunx deploy-bbc my-backend
|
|
83
54
|
```
|
|
84
55
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
- `--no-git` - Skip Git initialization
|
|
88
|
-
- `--no-install` - Skip dependency installation
|
|
89
|
-
- `--default` - Use default configuration (Hono with no extras)
|
|
90
|
-
- `--CI` - Run in CI mode (non-interactive)
|
|
91
|
-
|
|
92
|
-
#### Database Options
|
|
93
|
-
|
|
94
|
-
- `--postgres` - Add PostgreSQL with Drizzle ORM
|
|
95
|
-
- `--mysql` - Add MySQL with Drizzle ORM
|
|
96
|
-
- `--mongodb` - Add MongoDB with Mongoose
|
|
97
|
-
- `--redis` - Add Redis support
|
|
98
|
-
|
|
99
|
-
#### Authentication Options
|
|
100
|
-
|
|
101
|
-
- `--jwt` - Add JWT authentication
|
|
102
|
-
- `--oauth` - Add OAuth 2.0 support
|
|
103
|
-
- `--session` - Add session-based authentication
|
|
104
|
-
|
|
105
|
-
#### AI Integration Options
|
|
106
|
-
|
|
107
|
-
- `--openai` - Add OpenAI integration
|
|
108
|
-
- `--anthropic` - Add Anthropic Claude integration
|
|
109
|
-
- `--gemini` - Add Google Gemini integration
|
|
110
|
-
- `--vercel-ai` - Add Vercel AI SDK
|
|
111
|
-
|
|
112
|
-
#### Cloud Provider Options
|
|
113
|
-
|
|
114
|
-
- `--aws` - Add AWS SDK (S3, SES)
|
|
115
|
-
- `--gcp` - Add Google Cloud Platform SDK
|
|
116
|
-
- `--azure` - Add Azure SDK
|
|
117
|
-
- `--cloudflare-r2` - Add Cloudflare R2 storage
|
|
118
|
-
|
|
119
|
-
#### Communication Options
|
|
120
|
-
|
|
121
|
-
- `--resend` - Add Resend email service
|
|
122
|
-
- `--sendgrid` - Add SendGrid email service
|
|
123
|
-
- `--nodemailer` - Add Nodemailer
|
|
124
|
-
- `--socketio` - Add Socket.IO for WebSockets
|
|
125
|
-
- `--sse` - Add Server-Sent Events
|
|
126
|
-
|
|
127
|
-
#### Infrastructure Options
|
|
128
|
-
|
|
129
|
-
- `--bullmq` - Add BullMQ job queue
|
|
130
|
-
- `--inngest` - Add Inngest workflow engine
|
|
131
|
-
- `--upstash-ratelimit` - Add Upstash rate limiting
|
|
132
|
-
- `--custom-ratelimit` - Add custom rate limiting
|
|
133
|
-
- `--sentry` - Add Sentry error tracking
|
|
134
|
-
- `--logtail` - Add Logtail logging
|
|
135
|
-
|
|
136
|
-
#### Developer Experience Options
|
|
56
|
+
---
|
|
137
57
|
|
|
138
|
-
|
|
139
|
-
- `--scalar` - Add Scalar API documentation
|
|
140
|
-
- `--vitest` - Add Vitest testing framework
|
|
141
|
-
- `--zod` - Add Zod validation
|
|
142
|
-
- `--yup` - Add Yup validation
|
|
58
|
+
## Framework Options
|
|
143
59
|
|
|
144
|
-
|
|
60
|
+
<p align="center">
|
|
61
|
+
<img height="36" src="https://hono.dev/images/logo.svg" alt="Hono" />
|
|
62
|
+
<img height="36" src="https://raw.githubusercontent.com/expressjs/expressjs.com/gh-pages/images/favicon.png" alt="Express" />
|
|
63
|
+
<img height="36" src="https://bun.sh/logo.svg" alt="Bun" />
|
|
64
|
+
</p>
|
|
145
65
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
66
|
+
- **Hono** (default) – lightweight and edge-ready
|
|
67
|
+
- **Express** – battle-tested Node.js framework
|
|
68
|
+
- **Bun Native HTTP** – minimal overhead, maximum performance
|
|
149
69
|
|
|
150
|
-
|
|
151
|
-
deploy-bbc my-app --postgres --redis --jwt --openai --aws --swagger
|
|
70
|
+
---
|
|
152
71
|
|
|
153
|
-
|
|
154
|
-
deploy-bbc my-api --default
|
|
72
|
+
## Databases and Caching
|
|
155
73
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
74
|
+
<p align="center">
|
|
75
|
+
<img height="40" src="https://www.postgresql.org/media/img/about/press/elephant.png" alt="PostgreSQL" />
|
|
76
|
+
<img height="40" src="https://www.mysql.com/common/logos/logo-mysql-170x115.png" alt="MySQL" />
|
|
77
|
+
<img height="40" src="https://www.mongodb.com/assets/images/global/favicon.ico" alt="MongoDB" />
|
|
78
|
+
<img height="40" src="https://cdn.brandfetch.io/idwlYcQpHB/theme/dark/symbol.svg?c=1bxid64Mup7aczewSAYMX&t=1668515608635" alt="Redis" />
|
|
79
|
+
</p>
|
|
159
80
|
|
|
160
|
-
|
|
81
|
+
- **PostgreSQL** with Drizzle ORM
|
|
82
|
+
- **MySQL** with Drizzle ORM
|
|
83
|
+
- **MongoDB** with Mongoose
|
|
84
|
+
- **Redis** for caching and queues
|
|
161
85
|
|
|
162
|
-
|
|
86
|
+
---
|
|
163
87
|
|
|
164
|
-
|
|
88
|
+
## Authentication
|
|
165
89
|
|
|
166
|
-
|
|
90
|
+
<p align="center">
|
|
91
|
+
<img height="36" src="https://jwt.io/img/pic_logo.svg" alt="JWT" />
|
|
92
|
+
<img height="36" src="https://oauth.net/images/oauth-logo-square.png" alt="OAuth" />
|
|
93
|
+
</p>
|
|
167
94
|
|
|
168
|
-
|
|
95
|
+
- JWT authentication
|
|
96
|
+
- OAuth 2.0 providers
|
|
97
|
+
- Session-based authentication
|
|
169
98
|
|
|
170
|
-
|
|
99
|
+
---
|
|
171
100
|
|
|
172
|
-
|
|
101
|
+
## AI Integrations
|
|
173
102
|
|
|
174
|
-
|
|
103
|
+
<p align="center">
|
|
104
|
+
<img height="40" src="https://openai.com/favicon.ico" alt="OpenAI" />
|
|
105
|
+
<img height="40" src="https://www.anthropic.com/favicon.ico" alt="Anthropic" />
|
|
106
|
+
<img height="40" src="https://upload.wikimedia.org/wikipedia/commons/8/8a/Google_Gemini_logo.svg" alt="Gemini" />
|
|
107
|
+
<img height="40" src="https://vercel.com/favicon.ico" alt="Vercel" />
|
|
108
|
+
</p>
|
|
175
109
|
|
|
176
|
-
|
|
110
|
+
- OpenAI
|
|
111
|
+
- Anthropic Claude
|
|
112
|
+
- Google Gemini
|
|
113
|
+
- Vercel AI SDK
|
|
177
114
|
|
|
178
|
-
|
|
179
|
-
- **MySQL** - Relational database with Drizzle ORM
|
|
180
|
-
- **MongoDB** - Document database with Mongoose ODM
|
|
181
|
-
- **Redis** - In-memory data store for caching and sessions
|
|
115
|
+
---
|
|
182
116
|
|
|
183
|
-
|
|
117
|
+
## Cloud and Storage
|
|
184
118
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
119
|
+
<p align="center">
|
|
120
|
+
<img height="36" src="https://a0.awsstatic.com/libra-css/images/logos/aws_logo_smile_1200x630.png" alt="AWS" />
|
|
121
|
+
<img height="36" src="https://cloud.google.com/_static/cloud/images/social-icon-google-cloud-1200-630.png" alt="GCP" />
|
|
122
|
+
<img height="36" src="https://azure.microsoft.com/svghandler/azure-logo.svg" alt="Azure" />
|
|
123
|
+
<img height="36" src="https://cdn.brandfetch.io/idJ3Cg8ymG/w/400/h/400/theme/dark/icon.jpeg?c=1bxid64Mup7aczewSAYMX&t=1668515610854" alt="Cloudflare" />
|
|
124
|
+
</p>
|
|
188
125
|
|
|
189
|
-
|
|
126
|
+
- **AWS** (S3, SES)
|
|
127
|
+
- **Google Cloud Platform**
|
|
128
|
+
- **Azure**
|
|
129
|
+
- **Cloudflare R2**
|
|
190
130
|
|
|
191
|
-
|
|
192
|
-
- **Anthropic** - Claude AI integration
|
|
193
|
-
- **Google Gemini** - Gemini AI models
|
|
194
|
-
- **Vercel AI SDK** - Multi-provider AI SDK with streaming support
|
|
131
|
+
---
|
|
195
132
|
|
|
196
|
-
|
|
133
|
+
## Communication and Realtime
|
|
197
134
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
135
|
+
<p align="center">
|
|
136
|
+
<img height="36" src="https://cdn.brandfetch.io/id0BqaqET6/w/400/h/400/theme/dark/icon.jpeg?c=1bxid64Mup7aczewSAYMX&t=1748366671512" alt="Resend" />
|
|
137
|
+
<img height="36" src="https://sendgrid.com/favicon.ico" alt="SendGrid" />
|
|
138
|
+
<img height="36" src="https://socket.io/images/logo.svg" alt="Socket.IO" />
|
|
139
|
+
</p>
|
|
202
140
|
|
|
203
|
-
|
|
141
|
+
- Resend
|
|
142
|
+
- SendGrid
|
|
143
|
+
- Nodemailer
|
|
144
|
+
- Socket.IO
|
|
145
|
+
- Server-Sent Events (SSE)
|
|
204
146
|
|
|
205
|
-
|
|
206
|
-
- **SendGrid** - Email delivery service
|
|
207
|
-
- **Nodemailer** - Flexible email sending
|
|
208
|
-
- **Socket.IO** - Real-time bidirectional communication
|
|
209
|
-
- **Server-Sent Events** - Server-to-client streaming
|
|
147
|
+
---
|
|
210
148
|
|
|
211
|
-
|
|
149
|
+
## Developer Experience
|
|
212
150
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
151
|
+
<p align="center">
|
|
152
|
+
<img height="36" src="https://vitest.dev/logo.svg" alt="Vitest" />
|
|
153
|
+
<img height="36" src="https://zod.dev/_next/image?url=%2Flogo%2Flogo-glow.png&w=640&q=100" alt="Zod" />
|
|
154
|
+
<img height="36" src="https://static1.smartbear.co/swagger/media/assets/images/swagger_logo.svg" alt="Swagger" />
|
|
155
|
+
</p>
|
|
218
156
|
|
|
219
|
-
|
|
157
|
+
- Vitest
|
|
158
|
+
- Zod and Yup
|
|
159
|
+
- Swagger / OpenAPI
|
|
160
|
+
- Scalar documentation
|
|
220
161
|
|
|
221
|
-
|
|
222
|
-
- **Scalar** - Beautiful API documentation
|
|
223
|
-
- **Vitest** - Fast unit testing framework
|
|
224
|
-
- **Zod** - TypeScript-first schema validation
|
|
225
|
-
- **Yup** - Object schema validation
|
|
162
|
+
---
|
|
226
163
|
|
|
227
164
|
## Project Structure
|
|
228
165
|
|
|
229
|
-
```plaintext
|
|
230
|
-
my-backend/
|
|
231
|
-
├── src/
|
|
232
|
-
│ ├── config/ # Configuration files
|
|
233
|
-
│ ├── middleware/ # Express/Hono middleware
|
|
234
|
-
│ ├── routes/ # API routes
|
|
235
|
-
│ ├── services/ # Business logic
|
|
236
|
-
│ ├── db/ # Database configuration
|
|
237
|
-
│ ├── utils/ # Utility functions
|
|
238
|
-
│ ├── types/ # TypeScript types
|
|
239
|
-
│ └── index.ts # Application entry point
|
|
240
|
-
├── .env.example # Environment variables template
|
|
241
|
-
├── .gitignore
|
|
242
|
-
├── package.json
|
|
243
|
-
├── tsconfig.json
|
|
244
|
-
├── Dockerfile # Docker configuration
|
|
245
|
-
├── docker-compose.yml # Docker Compose setup
|
|
246
|
-
└── README.md
|
|
247
166
|
```
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
```bash
|
|
259
|
-
# Development mode with hot reload
|
|
260
|
-
bun run dev
|
|
261
|
-
|
|
262
|
-
# Build the project
|
|
263
|
-
bun run build
|
|
264
|
-
|
|
265
|
-
# Type checking
|
|
266
|
-
bun run type-check
|
|
267
|
-
|
|
268
|
-
# Lint code
|
|
269
|
-
bun run lint
|
|
270
|
-
|
|
271
|
-
# Format code
|
|
272
|
-
bun run format
|
|
167
|
+
src/
|
|
168
|
+
├── config/
|
|
169
|
+
├── middleware/
|
|
170
|
+
├── routes/
|
|
171
|
+
├── services/
|
|
172
|
+
├── db/
|
|
173
|
+
├── utils/
|
|
174
|
+
├── types/
|
|
175
|
+
└── index.ts
|
|
273
176
|
```
|
|
274
177
|
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
We welcome contributions! Please follow these steps:
|
|
278
|
-
|
|
279
|
-
1. Fork the repository
|
|
280
|
-
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
|
|
281
|
-
3. Follow the coding conventions in `CLAUDE.md`
|
|
282
|
-
4. Commit your changes (`git commit -m 'Add amazing feature'`)
|
|
283
|
-
5. Push to the branch (`git push origin feature/amazing-feature`)
|
|
284
|
-
6. Open a Pull Request
|
|
285
|
-
|
|
286
|
-
#### Coding Conventions
|
|
287
|
-
|
|
288
|
-
This project follows specific naming conventions:
|
|
289
|
-
|
|
290
|
-
- **Files/Folders**: `kebab-case`
|
|
291
|
-
- **Functions**: `snake_case`
|
|
292
|
-
- **Variables**: `snake_case`
|
|
293
|
-
- **Types**: `PascalCase` (use `type`, not `interface`)
|
|
294
|
-
- **Constants**: `SCREAMING_SNAKE_CASE`
|
|
295
|
-
|
|
296
|
-
See `CLAUDE.md` for complete guidelines.
|
|
178
|
+
---
|
|
297
179
|
|
|
298
180
|
## Docker Support
|
|
299
181
|
|
|
300
|
-
Every generated project includes Docker configuration:
|
|
301
|
-
|
|
302
182
|
```bash
|
|
303
|
-
# Build and run with Docker Compose
|
|
304
183
|
docker-compose up
|
|
305
|
-
|
|
306
|
-
# Build Docker image
|
|
307
|
-
docker build -t my-backend .
|
|
308
|
-
|
|
309
|
-
# Run container
|
|
310
|
-
docker run -p 8000:8000 my-backend
|
|
311
184
|
```
|
|
312
185
|
|
|
313
|
-
|
|
186
|
+
Dockerfile and docker-compose are included by default.
|
|
314
187
|
|
|
315
|
-
|
|
188
|
+
---
|
|
316
189
|
|
|
317
|
-
|
|
318
|
-
cp .env.example .env
|
|
319
|
-
```
|
|
190
|
+
## Contributors
|
|
320
191
|
|
|
321
|
-
|
|
192
|
+
<a href="https://github.com/aritra69/deploy-bbc/graphs/contributors">
|
|
193
|
+
<img src="https://contrib.rocks/image?repo=aritra69/deploy-bbc" alt="Contributors" />
|
|
194
|
+
</a>
|
|
322
195
|
|
|
323
|
-
|
|
196
|
+
A big thank you to all the contributors who have helped make this project better! 🙏
|
|
197
|
+
|
|
198
|
+
---
|
|
324
199
|
|
|
325
200
|
## Author
|
|
326
201
|
|
|
327
|
-
|
|
202
|
+
**Aritra Sarkar**
|
|
328
203
|
|
|
329
|
-
- GitHub: [
|
|
204
|
+
- GitHub: [https://github.com/aritra69](https://github.com/aritra69)
|
|
330
205
|
- Email: <aritrasarkar2002@gmail.com>
|
|
331
206
|
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
This project exists thanks to all the people who contribute.
|
|
207
|
+
---
|
|
335
208
|
|
|
336
|
-
|
|
209
|
+
## License
|
|
337
210
|
|
|
338
|
-
|
|
211
|
+
MIT License
|
|
339
212
|
|
|
340
|
-
|
|
213
|
+
---
|
|
341
214
|
|
|
342
215
|
## Support
|
|
343
216
|
|
|
344
|
-
|
|
345
|
-
- Discussions: [GitHub Discussions](https://github.com/aritra69/deploy-bbc/discussions)
|
|
346
|
-
|
|
347
|
-
## Acknowledgments
|
|
348
|
-
|
|
349
|
-
Built with:
|
|
350
|
-
|
|
351
|
-
- [Bun](https://bun.sh) - Fast all-in-one JavaScript runtime
|
|
352
|
-
- [Hono](https://hono.dev) - Ultra-fast web framework
|
|
353
|
-
- [Drizzle ORM](https://orm.drizzle.team) - TypeScript ORM
|
|
354
|
-
- [Clack](https://github.com/natemoo-re/clack) - Interactive CLI prompts
|
|
355
|
-
|
|
356
|
-
---
|
|
217
|
+
If this project helps you, consider ⭐ starring the repository.
|
|
357
218
|
|
|
358
|
-
|
|
219
|
+
Issues, pull requests, and discussions are welcome!
|