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

@jin7942/ray

v1.5.5

Published

Lightweight CI/CD deployment tool powered by Docker and Git

Readme

RAY

npm version npm downloads license

ver: 1.5.5

한국어 README 보기

rayExample

A lightweight, no-nonsense CI/CD automation tool.

RAY clones your GitHub repo, runs your build command, builds a Docker image, and replaces containers with zero downtime — all from a simple JSON config. No YAML, no cloud vendor lock-in, just code that ships.

Features

  • Clone GitHub repositories
  • Docker image creation
  • Zero-downtime container replacement
  • JSON-based config file
  • CLI and library usage supported

Installation

npm install -g @jin7942/ray

CLI Usage

ray init               # Create default config file
ray init wizard        # Run interactive setup wizard
ray run                # Run all configured projects
ray run <project>      # Run a specific project
ray help               # Show help

Configuration Example (ray.config.json)

{
    "projects": [
        {
            "name": "my-app",
            "repo": "https://github.com/user/my-app.git",
            "branch": "main",
            "docker": {
                // Added support for docker-compose starting from v1.5.0.
                "type": "docker | compose",
                "image": "my-app-image",
                "containername": "my-app-container",
                "path": {
                    "dockerfile": "./Dockerfile",
                    // Required when type == "compose"
                    "compose": "./docker-compose.yml"
                },
                // Only used when type == "docker"
                "network": ["net1", "net2"], // Added --network support for Docker containers
                "volumes": ["/host/path:/app/path", "/tmp/test:/app/test"] // Added support for Docker container volume mounts.
            },
            "internal": {
                "logdir": "./logs",
                "maxLogDirSize": 5242880,
                "logLevel": "info",
                "envFilePath": "./.env"
            }
        }
    ]
}

Dockerfile Example (Dockerfile)

FROM node:22-alpine AS builder

WORKDIR /app
COPY . .

RUN apk update && apk upgrade
RUN npm install
RUN npm run build

FROM node:22-alpine

WORKDIR /app

COPY --from=builder /app/dist ./dist
COPY --from=builder /app/package.json .
COPY --from=builder /app/package-lock.json .

RUN apk add --no-cache git

RUN npm install --omit=dev

EXPOSE 7979

CMD ["node", "dist/server.js"]

You must write your build logic inside the Dockerfile. RAY does not run build commands anymore as of v1.2.0.

Library Usage

import { loadProjectConfig, runRayPipeline } from '@jin7942/ray';

const config = await loadProjectConfig('my-app');
await runRayPipeline(config);

API Reference

For documentation on the API, please see the following links:document

Requirements

  • Node.js 18+
  • Git installed
  • Docker installed and running

Simple Example

Want to see how to use RAY in a real server?

Check out RAY Auto Deploy Server — a lightweight webhook server that uses RAY for CI/CD automation.

Philosophy

Ray is a lightweight CI/CD tool designed to let anyone experience automated deployment without complex configuration. It minimizes setup and maximizes usability, making it easy to use even for students or beginner developers with little to no deployment experience.

Release History

| Version | Date | Description | | ------- | ---------- | --------------------------------------------------------------------------- | | v1.0.0 | 2025-04-09 | Initial release. Core pipeline features complete | | v1.1.0 | 2025-04-10 | Support for setting environment variables | | v1.2.0 | 2025-04-11 | Supports external log directory mounting. Build process moved to Dockerfile | | v1.3.0 | 2025-04-12 | Added --network support for ocker containers. Improved Git clone process | | v1.4.0 | 2025-04-12 | Added support for Docker container volume mounts. | | v1.5.0 | 2025-06-09 | Supports deployment using both Dockerfile and docker-compose |

License

MIT

Contributing

This project is open source and welcomes contributions, suggestions, and feedback.

Links

  • GitHub: https://github.com/jin7942/ray
  • Issues: https://github.com/jin7942/ray/issues