Easypanel.io: A Modern Hosting Panel for Applications and Databases

Easypanel.io: A Modern Hosting Panel for Applications and Databases

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

Databases

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.

Templates

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.
  • Plausible: A lightweight and open-source web analytics tool that respects user privacy and does not use cookies. It helps you to track website traffic and conversions without compromising on performance or security
  • 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 complete list off templates

Apps

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:

Easypanel.io Installation

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://23.88.117.41: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.

EasyPanel Admin Domain

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:

EasyPanel app deploy

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

Conclusions

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.