Deployment Overview of EasyPanel on Server¶
Prerequisites and Basic Requirements¶
Before installation, ensure the server meets the following requirements:
-
Operating System: Ubuntu (recommended).
-
Privileges: Root or sudo access is required to execute installation scripts and manage Docker.
-
Network Ports:
-
Port
80(HTTP) for Let's Encrypt challenges and redirection. -
Port
443(HTTPS) for secure web traffic. -
Dependencies: Docker must be installed on the system.
FQDN of the final panel on the hostkey.in domain¶
The application is accessible via a specific subdomain generated based on the server ID.
| Parameter | Value |
|---|---|
| Prefix | easypanel |
| Domain | hostkey.in |
| Full template | easypanel{Server_ID_from_Invapi}.hostkey.in |
Application installation process¶
The application is installed using an official deployment script and a series of system configuration steps:
-
System Cleanup:
-
Any existing instances of
nginxorapache2services are stopped and disabled. -
Any running Docker containers publishing ports
80or443are automatically identified and stopped to prevent port conflicts. -
If the server is part of a Docker Swarm, the swarm mode is forcefully removed.
-
Core Installation:
-
The application is installed via the official Easypanel installation script using the following command:
-
Proxy Configuration:
-
An Nginx container is configured to handle SSL termination and proxy requests to the application.
Access Rights and Security¶
-
Firewall: Ensure ports
80and443are open in your firewall settings. -
Service Isolation: The main application runs on an internal port (
3000) and is not directly exposed to the internet; it is accessed via a reverse proxy. -
SSL/TLS: SSL certificates are managed automatically via Certbot through a dedicated Nginx container.
Docker Containers and Their Deployment¶
The deployment utilizes the following containers:
Nginx Proxy Container¶
-
Image:
jonasal/nginx-certbot:latest -
Network Mode:
host -
Volumes:
-
nginx_secrets:/etc/letsencrypt(for SSL certificates) -
/data/nginx/user_conf.d:/etc/nginx/user_conf.d(for custom configuration files) -
Environment Variables:
-
CERTBOT_EMAIL: Set to the administrative contact email for Let's Encrypt notifications. -
Restart Policy:
unless-stopped
Custom Scripts and Additional Setup¶
The deployment performs several automated setup actions:
-
Nginx Configuration Generation: A
compose.ymlfile is generated in/root/nginx/to manage the Nginx-Certbot container. -
Proxy Pass Routing: The system automatically modifies the Nginx configuration files located in
/data/nginx/user_conf.d/to route incoming traffic from port443to the application's internal address (http://127.0.0.1:3000). -
Dynamic Configuration: Traefik dynamic configuration files are prepared to handle routing and SSL challenges for the specific domain.
Application Update Instructions¶
To update the EasyPanel application, use the following method:
- Since the core application is managed via its official installer, you should re-run the installation script to apply updates:
Location of configuration files and data¶
The following directories are used for storing critical data and configurations:
-
Nginx Compose Configuration:
/root/nginx/compose.yml -
Nginx User Configurations:
/data/nginx/user_conf.d/ -
SSL Certificates: Managed within the
nginx_secretsDocker volume. -
Traefik Dynamic Configs:
/opt/traefik/dynamic -
Traefik ACME Data:
/opt/traefik/acme.json
Available ports for connection¶
| Port | Protocol | Description |
|---|---|---|
80 | HTTP | Standard web traffic and SSL challenge redirection |
443 | HTTPS | Secure encrypted web traffic (Primary Access) |
3000 | TCP | Internal application port (Local access only) |