DokployD
Dokploy10mo ago
8 replies
Alexis

Advice on Deployment Strategy

Hello all,

I have a project which is structured like so:
project/
├── handler/
│   ├── src/
│   ├── Dockerfile
│   └── package.json
└── website/
    ├── src/
    ├── Dockerfile
    └── package.json
shared/
├── db/
│   ├── prisma/
│   │   └── schema.prisma
│   ├── src/
│   │   └── index.ts
│   └── package.json     
└── logger/
    ├── src/
    │   └── index.ts
    └── package.json  
package.json
turbo.json
docker-compose.yaml


The handler is a Discord Bot and the website is a SvelteKit Dashboard. The shared folder contains the database which is using Prisma with MongoDB.

I currently have a docker-compose.yaml with 4 services:
- Redis
- Gateway
- Proxy
- MongoDB (Node Replica Set)

All four of these are required for the handler to run. For context, I'm essentially using the Gateway as a proxy between Discord API and my handler's application logic - redis is used as a Message Broker.

A direct MongoDB connection is used by both the handler and webste via Prisma.

My questions:
- Should I move MongoDB and Redis to a standalone services on Dokploy?
- How would I go about deploying the website and handler?
- Do I use a Compose Service for the handler and Railpack for the website? Or could I just use Compose for both?
- How would this look for production?
Was this page helpful?