# Dockerized Holesail with PM2 Orchestration This project provides a pre-configured Docker container for running multiple Holesail processes orchestrated using PM2. Each process is assigned a specific connection string and port. --- ## Features - **Ubuntu-based container**: Uses the latest `ubuntu` image as the base. - **Node.js v20**: Includes the latest Node.js for running Holesail. - **PM2 process management**: Manages multiple Holesail processes with ease. - **Multi-port configuration**: Runs Holesail on multiple ports with predefined connection strings. --- ## Getting Started ### Prerequisites - Docker installed on your system. - Basic knowledge of Docker and PM2. --- ### Build the Docker Image 1. Clone this repository: ```bash git clone cd ``` 2. Build the Docker image: ```bash docker build -t holesail-pm2 . ``` --- ### Run the Container Start the container: ```bash docker run -d --name holesail-pm2-container holesail-pm2 ``` This will: - Install required dependencies. - Start multiple Holesail processes using PM2 based on predefined connection strings and ports. --- ## Configuration The `pm2-setup.sh` script defines the connection strings and ports. You can modify the `connections` array to suit your needs: ```bash declare -A connections connections=( [""]= [""]= ... ) ``` --- ### Logs and Debugging To view PM2 logs from the container: ```bash docker exec -it holesail-pm2-container pm2 logs ``` To inspect the container: ```bash docker exec -it holesail-pm2-container bash ``` --- ## File Structure ``` . ├── Dockerfile # Docker configuration for building the image ├── pm2-setup.sh # PM2 setup script for launching Holesail processes ``` --- ## Extending To add more features: 1. Update the `pm2-setup.sh` file with additional PM2 configurations or commands. 2. Rebuild the Docker image: ```bash docker build -t holesail-pm2 . ``` --- ## Notes - The `pm2-runtime` command ensures the container remains active as long as PM2 processes are running. - Ports and connection strings must not conflict with existing services.