Deployment Overview of Plane on Server¶
Prerequisites and Basic Requirements¶
The deployment of the Plane application requires the following system specifications and configurations:
-
Operating System: Ubuntu (compatible with APT package management).
-
Privileges: Root access or
sudoprivileges are required to execute installation scripts and manage Docker containers. -
Domain Configuration: The server must be configured to resolve the domain
hostkey.in. -
Network Ports:
-
Port
8080: Internal communication for the Plane application. -
Port
443: External HTTPS access for the web interface.
FQDN of the Final Panel¶
The application is accessible via the Fully Qualified Domain Name (FQDN) constructed using the prefix plane and the specific server identifier. The format is: plane<Server ID>.hostkey.in:443
File and Directory Structure¶
The application utilizes the following directory structure for data storage, configuration, and logs:
-
/opt/plane: Primary data directory for the Plane application. -
/root/plane-app: Directory containing the application binaries and environment configuration files. -
/root/nginx: Directory housing the Nginx reverse proxy and Certbot configuration files. -
/root/nginx/compose.yml: Docker Compose file defining the Nginx and Certbot services. -
/root/install.sh: The installation script downloaded from the Plane repository.
Application Installation Process¶
The Plane application is installed using an official installation script provided by the developers. The process involves the following steps:
-
Update and upgrade all APT packages on the Ubuntu system.
-
Create the necessary data directory at
/opt/plane. -
Download the installation script from the Plane GitHub releases page (version
v1.0.0) to/root/install.sh. -
Execute the script with the
installaction to deploy the application components. -
Modify the environment configuration file located at
/root/plane-app/plane.envto set the Nginx port to8080. -
Update the
CORS_ALLOWED_ORIGINSvariable in the same environment file to match the FQDNhttps://plane<Server ID>.hostkey.in. -
Execute the script again with the
startaction to launch the services.
Docker Containers and Their Deployment¶
The deployment utilizes Docker containers for the reverse proxy and SSL management. The configuration is defined in a Docker Compose file located at /root/nginx/compose.yml.
The nginx service is configured with the following parameters:
| Parameter | Value |
|---|---|
| Image | jonasal/nginx-certbot:latest |
| Restart Policy | unless-stopped |
| Network Mode | host |
| Environment Variable | [email protected] |
| Volume Mounts | nginx_secrets:/etc/letsencrypt, /data/nginx/user_conf.d:/etc/nginx/user_conf.d |
The container is started using the command docker compose up -d executed within the /root/nginx directory.
Proxy Servers¶
A reverse proxy is implemented using Nginx with integrated Let's Encrypt (Certbot) for SSL certificate management.
-
Service: Nginx running in a Docker container.
-
SSL Provider: Certbot (via the
jonasal/nginx-certbotimage). -
Configuration: The proxy configuration is managed through the Docker Compose file and environment variables stored in
/data/nginx/nginx-certbot.env. -
Domain Handling: The proxy is configured to handle traffic for the
hostkey.inzone, specifically routing requests to the internal Plane application.
Location of Configuration Files and Data¶
Key configuration and data files are located in the following paths:
-
Application Environment:
/root/plane-app/plane.env -
Contains
NGINX_PORT=8080. -
Contains
CORS_ALLOWED_ORIGINS=https://plane<Server ID>.hostkey.in. -
Docker Compose:
/root/nginx/compose.yml. -
SSL Certificates: Stored in the Docker volume
nginx_secrets, mounted at/etc/letsencryptwithin the container. -
Nginx User Configuration: Mounted at
/data/nginx/user_conf.don the host.
Available Ports for Connection¶
The following ports are configured for the application:
-
Port 8080: Internal port used by the Plane application for communication with the reverse proxy.
-
Port 443: External port used for secure HTTPS connections to the web interface.
Starting, Stopping, and Updating¶
Service management for the reverse proxy is handled via Docker Compose commands executed in the /root/nginx directory:
-
Start/Restart:
docker compose up -d -
Stop:
docker compose down
The Plane application itself is managed through the installation script located at /root/install.sh. The script provides interactive options to perform actions such as starting or stopping the application services.