phantom-fleet

0.7.5 • Public • Published

Strapi-Translate

Phantom Fleet

Optimize Docker images with dynamic proxy management.

GitHub package.json version (branch) Monthly download on NPM

Phantom Fleet

Phantom Fleet is a Node.js package that allows you to manage and control Docker images using configuration files. It acts as a proxy, pausing Docker images when there are no requests and resuming them when requests come in. This package aims to optimize the running Docker processes to save resources.

Please note that this is a preliminary version, and I invite users to collaborate on improving the package.

Installation

You can install Phantom Fleet via npm:

npm install -g phantom-fleet

Configuration

To use Phantom Fleet, you need to create a configuration file (e.g., apps.json) with the following format:

{
  "apps": [
    {
      "CONTAINER_NAME": "docker-nginx",
      "LOG_START_TEXT": "start worker process",
      "TIMEOUT_INACTIVE": 100000,
      "IMAGE": "nginx:latest",
      "PORT": "80/tcp",
      "HOST_PORT": "88",
      "TARGET": "http://localhost:88",
      "APP_PORT": 3001,
      "ENV": [
        "VAR1=value1",
        "VAR2=value2"
      ]
    }
    // Add more applications as needed
  ]
}
  • CONTAINER_NAME: The name of the Docker image.
  • LOG_START_TEXT: The text to wait for, indicating that the image has started successfully.
  • TIMEOUT_INACTIVE: The duration of inactivity after which the image will be paused (in milliseconds).
  • IMAGE: The Docker image to be used.
  • PORT: The port opened inside the container.
  • HOST_PORT: The port opened on the host machine.
  • TARGET: The address to which requests will be redirected to the Docker image.
  • APP_PORT: The port on which the application inside the container will work.
  • ENV: The environment variables of the container.

Usage

Starting the Daemon

To run the Phantom Fleet daemon, use the following command:

phantom-fleet-demon

It is recommended to run the daemon using pm2:

pm2 start phantom-fleet-demon

Managing Applications

Get a list of applications:

phantom-fleet list

Stop all applications:

phantom-fleet stopAll

Stop an application with a specific number:

phantom-fleet stop N

Remove all applications:

phantom-fleet removeAll

Remove an application with a specific number:

phantom-fleet remove N

Starting Applications from Configuration

To start applications defined in a configuration file, run the following command:

phantom-fleet start apps.json

Collaboration

As mentioned earlier, this package is open to collaboration and improvements. If you encounter any issues or have suggestions for optimizing Docker processes and resource savings, feel free to contribute to the project.

Let's work together to make Phantom Fleet even better!

Package Sidebar

Install

npm i phantom-fleet

Weekly Downloads

7

Version

0.7.5

License

ISC

Unpacked Size

188 kB

Total Files

23

Last publish

Collaborators

  • v.a.stekolschikov