Dokploy / Dokploy/dokploy

Security: restricting mounts only to project files/better per-project isolation.

Open
#2,932 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
TypeScript
Stars
37.4k
Forks
3k
Avg merge
1d 3h
Merged PRs (30d)
73

Description

What problem will this feature address?

I'm trying to utilize Dokploy in what is practically an untrusted environment (multiple untrusted users, e.g. students in a classroom learning setting).

I would like to allow users to be able to manage their own project services (this is already a feature).
However, as an example, the docker compose service allows you to mount and bind to anything in the host as root (this includes the docker socket), practically treating every dokploy user as "root".

I believe this is a security issue in a scenario where human error is prone to happen really often. Any malicious container/compose file may breach the entire system and put the other users at risk.

Describe the solution you'd like

Idea 1:
Isolate + allowlist mounts.
Isolate as in, mounts can only be in relative path and can only access files inside the project.
Allowlist, as in only certain paths are allowed.

Idea 2:
Utilise Docker in Docker or rootless Docker on a per-project basis for isolation.


In the ideal scenario, each project should have it's own "clean environment" that cannot tamper with:

  1. The host
  2. Other users/projects

In the ideal scenario, this would include host ports as well. Being able to allocate host ports to be routed into a project would be desirable, but is not within scope of this feature request.

Describe alternatives you've considered

I have considered using Micro-VMs as alternatives, but it seems to be an overcomplicated solution to isolate between projects.

Additional context

No response

Will you send a PR to implement it?

No

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the Docker Compose service and its mount handling; compare the relative-path and allowlist requirements with the Docker-in-Docker or rootless Docker options described. Done means projects cannot access the host or other projects, while host-port allocation remains out of scope.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, docker-compose
Domain
infrastructure, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.