Deployment Overview of Plane on Server¶
Prerequisites and Basic Requirements¶
-
Operating System: Linux server capable of running Docker.
-
Privileges: Root access or sudo privileges are required to manage Docker and system directories.
-
Domain: The deployment utilizes the
hostkey.inzone. -
Ports:
-
Internal service port:
8080 -
External HTTPS port:
443
FQDN of the Final Panel¶
The application is accessible via the following Fully Qualified Domain Name (FQDN):
-
Format:
plane<Server ID>.hostkey.in -
Protocol: HTTPS on port
443
File and Directory Structure¶
The deployment utilizes the following directory structure for configuration and data:
-
Application Data Directory:
/opt/plane -
Nginx Configuration Directory:
/root/nginx -
Nginx User Configuration:
/data/nginx/user_conf.d -
SSL Certificate Storage:
/etc/letsencrypt(mounted asnginx_secretsvolume) -
Environment File:
/data/nginx/nginx-certbot.env
Application Installation Process¶
The application is deployed using Docker containers. The deployment process involves setting up the Docker environment and initiating the services via a docker compose configuration. The version of the proxy service used is the latest available tag for the jonasal/nginx-certbot image.
Access Rights and Security¶
-
The Nginx directory
/root/nginxis owned by therootuser and group with permissions set to0755. -
The
compose.ymlfile located in/root/nginxhas permissions set to0644. -
The Docker container runs with
network_mode: host, utilizing the host's network stack directly.
Docker Containers and Their Deployment¶
The services are managed using Docker Compose. The primary container is the Nginx proxy with Certbot integration.
-
Image:
jonasal/nginx-certbot:latest -
Restart Policy:
unless-stopped -
Network Mode:
host -
Volumes:
-
nginx_secretsmapped to/etc/letsencrypt(External volume) -
/data/nginx/user_conf.dmapped to/etc/nginx/user_conf.d -
Environment:
-
CERTBOT_EMAILis set to[email protected] -
Additional environment variables are loaded from
/data/nginx/nginx-certbot.env
Proxy Servers¶
Nginx with Certbot integration is used as the reverse proxy to handle SSL termination and routing.
| Parameter | Value |
|---|---|
| Service Image | jonasal/nginx-certbot:latest |
| SSL Email | [email protected] |
| Configuration Path | /root/nginx/compose.yml |
| User Conf Directory | /data/nginx/user_conf.d |
| Certificate Storage | /etc/letsencrypt |
The proxy handles traffic destined for the plane<Server ID>.hostkey.in domain, routing it securely via HTTPS.
Permission Settings¶
-
Directory
/root/nginx: Owned byroot:root, permissions0755. -
File
/root/nginx/compose.yml: Owned byroot:root, permissions0644. -
Volume mounts rely on the host filesystem permissions for
/data/nginxand/etc/letsencrypt.
Location of Configuration Files and Data¶
-
Main Compose File:
/root/nginx/compose.yml -
Nginx Environment:
/data/nginx/nginx-certbot.env -
User Configs:
/data/nginx/user_conf.d -
Application Data:
/opt/plane -
SSL Secrets: Stored in the external Docker volume
nginx_secretsmapping to/etc/letsencrypt.
Available Ports for Connection¶
-
Port 443: HTTPS traffic for the public interface of the Plane application.
-
Port 8080: Internal communication port for the application backend.
Starting, Stopping, and Updating¶
Service management is performed using Docker Compose commands within the /root/nginx directory.
-
Start Services:
-
Stop Services:
-
Update Services: To update the container images, pull the latest versions and restart the stack: