Skip to content

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 sudo privileges 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:

  1. Update and upgrade all APT packages on the Ubuntu system.

  2. Create the necessary data directory at /opt/plane.

  3. Download the installation script from the Plane GitHub releases page (version v1.0.0) to /root/install.sh.

  4. Execute the script with the install action to deploy the application components.

  5. Modify the environment configuration file located at /root/plane-app/plane.env to set the Nginx port to 8080.

  6. Update the CORS_ALLOWED_ORIGINS variable in the same environment file to match the FQDN https://plane<Server ID>.hostkey.in.

  7. Execute the script again with the start action 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-certbot image).

  • 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.in zone, 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/letsencrypt within the container.

  • Nginx User Configuration: Mounted at /data/nginx/user_conf.d on 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.

question_mark
Is there anything I can help you with?
question_mark
AI Assistant ×