mc-cluster/holesail-connector/README.md
2024-12-06 06:38:37 -05:00

113 lines
2.2 KiB
Markdown

# 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 <repository_url>
cd <repository_directory>
```
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=(
["<connection_string_1>"]=<port_1>
["<connection_string_2>"]=<port_2>
...
)
```
---
### 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.