Easypanel.io is a web-based server control panel that allows you to deploy and manage applications, databases, and SSL certificates with ease. It supports various programming languages and frameworks, and uses Docker and Cloud Native Buildpacks to create and run containers. It also provides web consoles, logs, templates, backups, and more features to help you manage your server without fighting the terminal. Easypanel.io is simple, powerful, and reliable. It has received positive feedback from many users who appreciate its flexibility and convenience.
EasyPanel can be used for free and functionalities can be extended with the pro plans.
Easypanel.io Top Features
- Web-based server control panel: You can deploy and manage applications, databases, and SSL certificates with a user-friendly interface.
- Supports various languages and frameworks: You can run any application using Docker and Cloud Native Buildpacks. It supports Node.js, Ruby, Python, PHP, Go, Java, and more.
- Integrates with Github: You can push your code to Github and Easypanel.io will automatically build and deploy it for you.
- Provides Let’s Encrypt certificates: You can secure your websites with free and auto-renewable SSL certificates from Let’s Encrypt.
- Offers easy templates: You can use ready-made templates to deploy popular applications such as WordPress, Laravel, Django, etc. in seconds.
- Enables zero-downtime deployments: You can update your applications without any interruptions for your users.
- Includes web consoles and logs: You can check the logs or run shell commands for your applications and databases from the web interface.
What Easypanel.io Can Help You Deploy
There are a lot of things that can be deployed to easypanel.io, this panel can be an alternative to Netlify or Heroku that can help you deploy your projects and websites. Besides that, it has a lot of templates that can help with deploying apps which makes it a great alternative to services like elsestio
Easypanel.io can help you deploy various database services with a few clicks. Some of the databases that you can use with Easypanel.io are:
- MySQL: A popular open-source relational database management system that supports SQL queries and transactions.
- MMariaDB: A fork of MySQL that offers enhanced performance, security, and compatibility.
- Postgres: A powerful and scalable relational database system that supports advanced features such as JSON, full-text search, and GIS.
- MongoDB: A document-oriented database that stores data in flexible JSON-like format and supports dynamic schemas and aggregation.
- Redis: An in-memory data structure store that can be used as a database, cache, or message broker. It supports various data types such as strings, lists, sets, hashes, and streams.
Easypanel.io has a collection of templates that can help you deploy popular applications in seconds, the list contains more then 200+ templates that you can use. Some of the most known templates are:
- WordPress: A widely used content management system that powers millions of websites and blogs. It offers a rich set of features, themes, and plugins to create and customize your online presence.
- n8n: A powerful workflow automation tool that allows you to connect and integrate various apps and services. You can use a graphical interface to create custom workflows or use the REST API to send and receive data
- Listmonk: A free and open-source newsletter and mailing list manager that supports multiple lists, campaigns, templates, and subscribers. It uses PostgreSQL as its data store and offers a web interface and an API for managing your email marketing
- Kelia: A baby girl name that means “bright-headed” or “descendant of Ceallach”. It is of Celtic origin and has several variations such as Keelia, Keely, or Kelly
- Grafana: A popular open-source platform for data visualization and monitoring. It allows you to query, analyze, and alert on metrics from various sources and create beautiful dashboards and alerts. It supports over 350 integrations and has a vibrant community
- SuiteCRM: An enterprise-ready open-source CRM software that provides a comprehensive solution for sales, marketing, and service. It is a fork of SugarCRM and offers many features such as modules, workflows, reports, security, and customization
- Uptime Kuma: A fancy self-hosted monitoring tool that lets you check the uptime and performance of your websites and applications. It supports various protocols and methods such as HTTP, TCP, Ping, DNS, and more. It also provides notifications via various channels such as Telegram, Discord, Slack, and email
Easypanel.io can help you deploy applications or static websites that are hosted on GitHub, it will automatically fetch the latest version if you commit something to keep everything up to date. You can deploy, static websites, node js applications, etc.
You can check the below EasyPanel tutorials:
In the next part, we are going to see how we can deploy our Easypanel installation on a Hetzner VPS and start deploying apps and templates to the server.
1.Deploy a Hetzner VPS
The first part is to have a server ready where we can deploy Easypanel, my preferred choice is Easypanel. The recommendation for Easypanel is to have at least 2 CPUs and 2 GB of memory and you can use an Ubuntu installation. In the video, we go into detail about how you can do that on Hetzner. You can check this Hetzner Review for more details if you are not aware of Hetzner and what it can do.
2. Update the VPS server
The server needs to be up to date with latest packages, you can do that by running the bellow and reboot after.
apt update && apt -y upgrade reboot
3. Add Server Swap
Some of the VPS providers will add swap but not Hezner, to do that you can follow the below commands, and adjust the size of the swap in function of the server memory.
sudo fallocate -l 2G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
4. Install Easypanel.io
To do this you just need to run a simple command and Easypanel will be installed:
curl -sSL https://get.easypanel.io | sh
Bellow you have the output for this:
# Executing docker install script, commit: e5543d473431b782227f8908005543bb4389b8de + sh -c apt-get update -qq >/dev/null + sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y -qq apt-transport-https ca-certificates curl >/dev/null + sh -c install -m 0755 -d /etc/apt/keyrings + sh -c curl -fsSL "https://download.docker.com/linux/ubuntu/gpg" | gpg --dearmor --yes -o /etc/apt/keyrings/docker.gpg + sh -c chmod a+r /etc/apt/keyrings/docker.gpg + sh -c echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable" > /etc/apt/sources.list.d/docker.list + sh -c apt-get update -qq >/dev/null + sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y -qq docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-ce-rootless-extras docker-buildx-plugin >/dev/null + sh -c docker version Client: Docker Engine - Community Version: 24.0.7 API version: 1.43 Go version: go1.20.10 Git commit: afdd53b Built: Thu Oct 26 09:07:41 2023 OS/Arch: linux/amd64 Context: default Server: Docker Engine - Community Engine: Version: 24.0.7 API version: 1.43 (minimum version 1.12) Go version: go1.20.10 Git commit: 311b9ff Built: Thu Oct 26 09:07:41 2023 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.6.24 GitCommit: 61f9fd88f79f081d64d6fa3bb1a0dc71ec870523 runc: Version: 1.1.9 GitCommit: v1.1.9-0-gccaecfc docker-init: Version: 0.19.0 GitCommit: de40ad0 ================================================================================ To run Docker as a non-privileged user, consider setting up the Docker daemon in rootless mode for your user: dockerd-rootless-setuptool.sh install Visit https://docs.docker.com/go/rootless/ to learn about rootless mode. To run the Docker daemon as a fully privileged service, but granting non-root users access, refer to https://docs.docker.com/go/daemon-access/ WARNING: Access to the remote API on a privileged Docker daemon is equivalent to root access on the host. Refer to the 'Docker daemon attack surface' documentation for details: https://docs.docker.com/go/attack-surface/ ================================================================================ latest: Pulling from easypanel/easypanel 59bf1c3509f3: Pull complete 05f4bd9ef508: Pull complete 503741069fa0: Pull complete 88b2b4880461: Pull complete 17cd543fa95f: Pull complete 6309c344e1de: Pull complete ba8d083f659d: Pull complete e3989f5f1389: Pull complete 3898d07198d0: Pull complete c6d552c5896f: Pull complete a3d68703d70f: Pull complete ffe8787e0b8a: Pull complete 74edfe4a5e03: Pull complete 1c5b4073f6eb: Pull complete 79e34cbeeb4c: Pull complete Digest: sha256:12cd84c47f726c120ea056389ebc92a043c68c5efa0175ef073fa304d799ea9b Status: Downloaded newer image for easypanel/easypanel:latest docker.io/easypanel/easypanel:latest Swarm was initilized Network was created Default certificate was created 2.8: Pulling from library/traefik 9621f1afde84: Pulling fs layer 0448c1674845: Pulling fs layer 49fdf0222254: Pulling fs layer 04987ac71521: Pulling fs layer 04987ac71521: Waiting 0448c1674845: Verifying Checksum 0448c1674845: Download complete 9621f1afde84: Verifying Checksum 9621f1afde84: Download complete 9621f1afde84: Pull complete 49fdf0222254: Verifying Checksum 49fdf0222254: Download complete 04987ac71521: Download complete 0448c1674845: Pull complete 49fdf0222254: Pull complete 04987ac71521: Pull complete Digest: sha256:72164cb63797a902ba7c33dcb75349644bbf762323a0fed961ae25f54635ac93 Status: Downloaded newer image for traefik:2.8 docker.io/library/traefik:2.8 Traefik image was pulled Traefik config was created Traefik service was created latest: Pulling from easypanel/easypanel Digest: sha256:12cd84c47f726c120ea056389ebc92a043c68c5efa0175ef073fa304d799ea9b Status: Image is up to date for easypanel/easypanel:latest docker.io/easypanel/easypanel:latest Easypanel image was pulled Easypanel service was created Easypanel was installed successfully on your server! http://188.8.131.52:3000
At the end, you will have the access URL that will have 3000 port.
The docker processes for Easypanel are as follows:
root@ep:~# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c7295671c7c5 easypanel/error-pages:latest "/bin/error-pages se…" About a minute ago Up About a minute (healthy) error-pages.1.llrg782ufd0dwkn8jtxbbqp11 1e5a1e16da83 easypanel/easypanel:latest "npm run --silent st…" About a minute ago Up About a minute 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp easypanel.1.nnsen969oblty7n4iqzjcdgvm 71a49438ab9a traefik:2.8 "/entrypoint.sh --ap…" About a minute ago Up About a minute 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp traefik.1.hrpoo62y2y4d6auk7vke6ih50
5. Configure Easypanel.io
Next, we are going to start making the configs for Easeypanel to have it fully functional
5.1 Point Your Domain or Subdomain to Easypanel IP
To access easypanel secure with an SSL certificate and with our own domain you will need to go into the DNS administration for your domain and create a A record that will point to the server IP, I am doing this in the video with CloudFlare and a subdomain.
5.2 Add the domain in Easeypanel
After the A record is there you will need to access Easeypanel, first, you will be prompted to create a user and after you go to in Settings - General and add your domain or subdomain.
5.3 Configure the 2FA
To secure access you should activate the 2FA for your account with Google Authenticator app. You Just go to Settings - Authentication - Configure Two Factor Authentication. You will be prompted to scan the GR code in the app.
5.4 Create a Github Token
If you are using EasyPanel to deploy GitHub projects that are private you will need to link it to GitHub with the token, you can visit https://github.com/settings/tokens and create your token. After you just add it to Settings - GitHub
6. Deploy First Project
Now you are ready to start deploying your first project, in the free version you can have up to 3 projects but each project can have multiple sub apps that can be added. For a Github static website you can just add a new service APP and input GitHub details:
In the Build section you have multiple options to choose from to build your app, for this I am using Nixpacks.
After you can go to domains and add your domain, it needs to be pointed to the server before.
In the same project, you can add databases or other apps through their templates.
The video has more details about EasyPanel.io interface and other things so you can check that for a more in-depth overview of easypanel.io
EasyPanel is a great resource if you need a modern hosting panel that can help you host applications or databases fast you can use it for free and in case you need more like backups or advanced monitoring, user management you can go with a paid plan.