Open woutersamaey opened 4 years ago
No you can't. If you figure out how let us know. But there is many problems with it:
I would say this is not worth it trying to do.
There is an alternative: Using Virtual Machines, but you need to know how to configure network and VMs correctly, which is not obvious either.
Doesn’t Kubernetes or Docker Swarm handle (most) of these issues? I’m not up to speed, but looking to learn more on these topics.
Another use case could be a cloud hoster offering BTCPayServer installs for rent (backed by Kunernetes for example).
no idea. Maybe Docker Swarm would work, maybe not. I don't know.
Yes you can do this with Kubernetes. Currently looking for resources to speed up this process
Edit: one snag I've run into is that the same volume is mounted in different containers, and this capability isn't widely available in Kubernetes, especially if it's ReadWriteMany (mounted in multiple containers, and they can all write into the same volume) that is required.
@ramontayag it would also be great if some containers could be created once, and re-used by all instances. The bitcoin core node for example takes up a lot of disk space and would not make sense to duplicate for every tenant (if I’m not mistaken). I guess we should make a list of containers that contain customer data and containers that are the same for all. @NicolasDorier could you confirm and/or provide a list?
I really can't there is many volume folder and this is a case by case.
Without diving into the btcpayserver code but having deployed bitcoind on production before, my guess is that bitcoind and nbxplorer can be used by whatever client. When it comes to btcpayserver itself, I don't know.
@ramontayag well. Except we introduced the hotwallet feature recently in btcpay.
The hot wallet feature allow an admin to have NBXplorer and optionally Bitcoin Core aware of private keys
@ramontayag I believe for k8s, you can do it in different cluster with no issues. In general k8s handles resources and you tell your app which ones it needs to be at certain state. In any case, I believe an additional layer of k8s config is required either for separate or same cluster deployments.
@rudygodoy The issue is that, at least at the time I wrote this, multiple apps need access to the same volume. If the access needs to be read and write, then you'll run into issues because that feature isn't made widely available by the cloud providers you're probably running on (Google Cloud, AWS, DigitalOcean). I understand that AWS supports ReadWriteMany but I haven't tried it in a long time. See EFS on AWS.
Question: Can I run multiple docker installs on the same machine, for example 1 BTCPay Server with LND and another identical one with C-lightning?
If not, what would be required or what would be the path to building this?