npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

auto-deploy-sh

v2.0.2

Published

Automated Docker deployment tool

Readme

Auto-deploy-sh

English|简体中文

This project aims to lower deployment barriers by providing an ultra-simple configuration and minimal dependency automated Docker deployment workflow. It helps developers quickly deploy applications to cloud servers without complex environment setups.

Deployment Commands

Project-Specific Configuration

Install:

npm install auto-deploy-sh -D

Run:

  • Add to package.json:
"scripts": {
  "deploy": "auto-deploy-sh"
}
  1. Execute in terminal:
npm run deploy

Global Configuration

Install:

npm install auto-deploy-sh -g

Run (in the root directory of the project to deploy):

auto-deploy-sh

Advanced Usage

Run with a custom configuration file:

auto-deploy-sh <config-path>
# OR
auto-deploy-sh -f <config-path>

Useful for multi-environment deployment (e.g., development, staging, production).

Configuration File Reference

The configuration file is fixed as deploy-config.json. If missing, the tool will guide you to create it (stored in the command execution directory by default) and automatically add deploy-config.json to .gitignore to prevent accidental commits of sensitive data.

⚠️ Critical Note: The configuration file contains sensitive information (e.g., passwords). If creating manually, ensure deploy-config.json is added to .gitignore.

Configuration Properties

  • host: Remote server IP address or domain name.
  • port: SSH port number.
  • user: SSH username for the remote server.
  • password: Password for the SSH user.
  • beforLaunch: Pre-deployment commands (array of strings) to execute locally before starting the deployment (e.g., ["npm run build"]).
  • Dockerfile: Optional. If omitted: 1. Check dockerBuildFiles for a file named Dockerfile; 2. If not found, search for Dockerfile in the first-level directory of the current execution environment.
  • dockerBuildFiles: Files/directories to include in the Docker build context (required for Dockerfile execution).
  • imageTag: Docker image tag, formatted as [registry-url/][username/project-name]:[tag] (e.g., my-registry.com/user/my-app:v1.0).
  • containerName: Unique name for the running container (ensures no conflicts with existing containers).
  • BindPorts: Port mapping, formatted as <host-port>:<container-port> (e.g., "8080:80").
  • Options: Optional advanced settings (all sub-properties are optional)
    • volumes: Volume mappings (array of strings), formatted as [host-path/volume-name]:[container-path]:[optional-flags] (e.g., ["/host/data:/container/data:ro"]).
    • networks: Connect the container to a custom Docker network (created via docker network create <network-name>) for inter-container communication.

Format Introduction

{
  "host": "string",
  "port": "number | string",
  "user": "string",
  "password": "string",
  "beforLaunch": "string[]",
  "Dockerfile": "string",
  "dockerBuildFiles": "string[]",
  "imageTag": "string",
  "containerName": "string",
  "BindPorts": "string",
  "Options": {
    "volumes": "string[]",
    "networks": "string"
  }
}

Full Configuration Example

{
  "host": "your-server-ip",
  "port": 22,
  "user": "ssh-username",
  "password": "ssh-password",
  "beforLaunch": ["npm run build"],
  "Dockerfile": "./Dockerfile",
  "dockerBuildFiles": ["./dist", "./package.json"],
  "imageTag": "my-app:latest",
  "containerName": "my-app-container",
  "BindPorts": "80:80",
  "Options": {
    "volumes": ["/host/logs:/app/logs:rw"],
    "networks": "my-custom-network"
  }
}