Skip to content

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:

  1. System Cleanup:

  2. Any existing instances of nginx or apache2 services are stopped and disabled.

  3. Any running Docker containers publishing ports 80 or 443 are automatically identified and stopped to prevent port conflicts.

  4. If the server is part of a Docker Swarm, the swarm mode is forcefully removed.

  5. Core Installation:

  6. The application is installed via the official Easypanel installation script using the following command:

    curl -sSL https://get.easypanel.io | sh
    

  7. Proxy Configuration:

  8. An Nginx container is configured to handle SSL termination and proxy requests to the application.

Access Rights and Security

  • Firewall: Ensure ports 80 and 443 are 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.yml file 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 port 443 to 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:
    curl -sSL https://get.easypanel.io | sh
    

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_secrets Docker 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)
question_mark
Is there anything I can help you with?
question_mark
AI Assistant ×