The Linode Marketplace provides easy access to open-source and third-party tools for your apps and infrastructure. To accomplish this, we work with developers to add their projects to our growing catalog. Modern applications are not built from scratch.
Whether the developer or the intended user is working for a small-to-medium-sized business or enterprise organization or is a hobbyist, the architectural process involves a series of decisions and technology selections to go from idea to production.
Easypanel is a server control panel powered by Docker. It helps you deploy any type of application, including Node.js, PHP, Ruby, Python, Go, and Java. You can also create and manage database instances for many popular database engines.
Easypanel is designed to be intuitive and allow developers with varied experience and technical skills to benefit from a control panel. I spent some time with Andrei Canta, the developer of Easypanel, and asked him a few questions about his design process.
Typically, applications add a new function or solve an old problem. What challenges does Easypanel solve?
AC: Easypanel solves the complexity and potential for misconfiguration that comes with setting up a virtual machine (VM) and manually installing software. By running every application in an isolated container, which Docker allows, you can reduce the chance of errors and improve stability. However, configuring and managing Docker can be difficult. Easypanel simplifies this process by hiding the complexity and providing a user-friendly web interface to manage everything. For example, it automatically provisions SSL certificates, saving users the frustration of doing it themselves.
How is Easypanel different from the other solutions on the market?
AC: Easypanel is designed from the ground up to be Docker first and isolated from the operating system. Most panels were initially developed for PHP applications, and everything else is an afterthought. On the other side, there are enterprise solutions that require dedicated devops engineers to operate. Easypanel is designed to be used by a developer or admin without the need for specialized knowledge.
Your application is running on Docker, but you aren’t using Kubernetes. Tell me a little bit about your design choices here.
AC: Docker is for containerization and isolation. Kubernetes is an orchestration layer for containers. One goal of the project was to keep it slim and avoid excessive overhead.
We used Docker Swarm for orchestration because it has less overhead compared to Kubernetes. In the future, I’d like to move away from Docker Swarm to a lightweight Kubernetes distribution like K3s or Nomad from HashiCorp.
Easypanel is not just a GUI on top of Docker. It does more than that. For example, you can connect it to GitHub and deploy your custom applications without having to know anything about Docker. For that, we use Heroku Buildpacks, Paketo Buildpacks, and Nixpacks. Or, if you want, you can bring your own Dockerfile.
As a developer, do you think working with and contributing to open source projects is important?
AC: Absolutely! I think we take open source for granted now, but without it, we would not be where we are today. Open source software plays a crucial role in the progress of technology.
Instead of duplicating efforts, you can join the efforts to build something better. In Easypanel, for instance, there are 110+ open source apps you can install with one click. We could not have done this without our amazing community!
How important is portability when considering your software stack?
AC: It depends on the scope of the project. When I do consulting, I always explain to my clients that the best solution is based on multiple factors. One of the factors, of course, is the need to conform with software best practices, but that’s not all. One has to consider the business needs, the lifespan of a solution, the cost of development, the cost of migration to a different stack, and more.
If the application I’m developing has a short lifespan, and it is not core business, I don’t mind vendor lock-in. Actually, I might prefer it, because most of the time, these solutions help you develop faster. But on the other side, if I’m working on an application that is core business and that will evolve over time, I’m trying to avoid vendor lock-in as much as possible.
What’s ahead for Easypanel? Care to share any future development or business plans?
AC: Short-term, we’re working to add native backups for databases, multi-user support, and two-factor authentication. Long-term, we’re looking to make it multi-server. If you’re keen to see what’s going on in real time, I invite you to join our Discord community.