Here's some the core architectural decision i built it around:
- compose files and .env files stay on the host filesystem. It operates on them but does not replace them as the source of truth. - each node uses its local Docker socket. There's no exposing Docker's TCP socket over the network. - remote hosts can be connected directly via a distributed API mode or through an outbound-only Pilot Agent for hosts behind NAT or stricter firewalls. - multi-node management is not an afterthought.
It supports stack deployment and updates, Git-backed stacks, webhooks, rollback, logs, container and resource management, image scanning, backups, scheduled operations, fleet views, RBAC, SSO, and other operational tooling that I found myself wanting while managing compose environments.
This is 100% docker-compose to make fleet management feels like kubernetes without being the complexity of kubernetes.