Dokploy / dokploy

Open Source Alternative to Vercel, Netlify and Heroku.
https://dokploy.com/
Other
6.81k stars 340 forks source link

Environment/Folder/Group Features on Projects #324

Open raflymln opened 1 month ago

raflymln commented 1 month ago

What problem will this feature address?

So, I was migrating from railway to my own server and now I use Dokploy to manage my apps, however I notice that Dokploy doesn't support different environment switch on Projects.

For example, on Coolify, every project can define a multi environment like production, and staging. However this is not available on Dokploy, but I can easily create a new project and just put (Production) or (Staging) on the project title.

Describe the solution you'd like

Instead of reinventing the wheel and reworking from 0, I'd like to have a folder and subfolder/group system on the project.

For example, if I create Project B, I can assign Project A as the parent project, so Project B will only appear inside Project A. Here's the example from instatus.com image

You can put like parentId on here, which is nullable https://github.com/Dokploy/dokploy/blob/canary/apps/dokploy/server/db/schema/project.ts#L17

In the future, I think having Duplicates/Sync feature would be great, so we don't need to recreate apps between environment. I think duplicates would be much easier, since it's just basically a copy project button, no need to have additional UI/screen.

Describe alternatives you've considered

-

Additional context

This is the sync feature from Railway, however this can be more complicated image

Siumauricio commented 1 month ago

Hi @raflymln , I'm not sure about adding projects by groups, because as you said you actually can have any enviroment just changing the title of the application/project which will be for the same purpose a single identifier for (DEVELOP, STAGING, PRODUCTION) at the end is the same thing, so probably we couldn't add this feature for now since it looks a bit more complicated to implement but probably in a major version we could consider to implement, what I like is to duplicate applications/projects or transfer between the projects is a good idea

raflymln commented 1 month ago

Hi @Siumauricio , thanks for the reply

As i said before, basically it's just a simple grouping so it'd look much cleaner, for example if i navigate to Project A, i can find another project inside it which is Staging, or Production. And it seems i just need to put parentId which is nullable like i said before in https://github.com/Dokploy/dokploy/blob/canary/apps/dokploy/server/db/schema/project.ts#L17 and do some minor change

However if you find it difficult, i'm interested to do the PR if you're okay with it