Docker Alternatives
-
@girish Here are some resources from similar-sized projects that are also implementing the ability to manage multiple hosts via ssh and docker.
Mainly Docker Machine, Swarm, and or Kubernetes.Coolify - Self-hosting similar to Cloudron: https://coolify.io/
- The current version supports remote Docker machines, Docker Files & Docker Compose* (Not the main topic but another highly sought-after feature)
- https://github.com/orgs/coollabsio/projects/6/views/2?pane=issue&itemId=21833977
Wappler.io - Is a No Code/Low Code app builder: https://wappler.io/
- Supports only Docker machine to my knowledge
- https://community.wappler.io/t/managing-cloud-servers-with-resource-manager/43716
- https://docs.wappler.io/t/connecting-existing-servers-in-wappler-for-docker-deployments/39788
From what I understand: a first version would require
- SSH to make a remote connection
- Docker (Machine, Swarm, or Kub or Other)
- Some level of Monitoring
& - Certs, Domain, Proxy, & Auth could be handled by the "lead/parent" Cloudron node?
Not at all complaining but I have been wishing for and advocating for this feature for many years now...with that being said I would love to help out in any way!
Would a possible path be to build an app that is installed into a Cloudron instance that provides the capabilities we are looking for?
Depending on the implementation there could be some system-level gotchas to consider so as to not break the current Architecture but I think this could be a viable solution if done correctly.
That is unless you guys plan on performing a regular major upgrade sometime soon or are planning a full rewrite to accommodate this use case, also ideally sooner than later
Another Idea : Instead of using Docker to perform system orchestration what about using something like Ansible to perform the tasks? It's agentless thus only requiring SSH, we could have a set of playbooks that launch and configure servers/apps based on a current (parent) Cloudron instance/metadata. I've dabbled some with Ansible and building Docker compose stacks on remote hosts and it works very well!
To elaborate on the internal app idea one would just have to populate a field on a dashboard with a remote IP and select from a list of apps/actions aka playbooks. Coupled with leveraging OIDC for auth, Proxy for DNS & Dashboard app access.
I can see the full Docker or Ansible path working as a standalone app.Interested in* anyone's ideas or opinions on this one
-
@plusone-nick I don't exactly recall where I found this during my research but it seems like it could be useful for specific system-level access/security when implementing multi-host ️ nsjail A light-weight process isolation tool, making use of Linux namespaces and seccomp-bpf.
Ref: https://fly.io/blog/sandboxing-and-workload-isolation/
disregard the root domain/source lol -
@plusone-nick you can play with all this already if you configure docker to use sysbox instead of runc.
That way you can run nested Docker-in-Docker (DinD) setups, which means you could install Coolify as a Cloudron App and have the best of both worlds!
This is likely the fastest path to making the cake and eating it too.
-
@robi Nice! thanks for the solution! I do recall seeing you and others talk about it in other posts.
Would you happen to have any documentation that you have curated for implementing sysbox with Cloudron?
Seems pretty straightforward but figure there could always be some Gotcha's plus leveraging others' work is pretty much how we all got here lolMaybe I am looking at it from the wrong perspective but my goal is to have both "Within & Beside"
When you say "install Coolify as a Cloudron app" does that mean that the Coolify app is being "built" by Cloudron aka Within? OR its running "next" to Cloudron and is leveraging the "add external app" feature using a local namespace?
Assuming its within since you said "Nested" but I'm kinda curious about both use cases
- Besides: multi-host
- Within: apps out of current Cloudron scope
-
@marcusquinn what are the sayings? "Kill em with Kindness & Kill em with* Success" lol +1
-
@plusone-nick As an app would be the only way compatible with Cloudron's responsibility for everything outside of containers.
-
@plusone-nick Nope, just that there's no losers in creating capabilities.
-
@plusone-nick Would you mind moving this discussion to a new thread on the topic and summarizing what you found from the other threads so far?
Those are the docs.
Yes, within, perhaps starting in LAMP or packaged for this purpose.