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

@gerdu/cli

v1.1.3

Published

Local deployment tool for multiple docker-compose

Readme

Gerdu

GitHub license build-and-test npm version

NPM

Gerdu is an open-source tool for running and managing multi docker-compose applications on Docker defined using the Gerdu file format. Once you have Configuration files, you can create and start your applications with a single command: gerdu up

Gerdu heavily realies on docker-compose spec to deploy application locally.

Where to get Gerdu

Using npm

  1. Make sure Node are installed, test with the following commands:
$ node -v
EX: v16.0.0

$ npm -v
EX: 7.10.0
  1. Install Gerdu cli
$ npm install @gerdu/cli -g

Using yarn

  1. Make sure Yarn & Node are installed, test with the following commands:
$ node -v
EX: v16.0.0

$ yarn -v
EX: 1.22.10
  1. Install Gerdu cli
$ yarn global add @gerdu/cli -g

Note: Gerdu cli requires Node 14 or later.

Quick Start

Using Gerdu cli is basically a three-step process:

  1. Define your workspace.
  2. Define your charts, which contains repository and docker-compose configurations.
  3. Lastly, run gerdu install and gerdu up. Gerdu will install and starts your entire workspace.

Note: if you want to use shell completion feature run gerdu config completion setup

A Workspace is a directory contains .gerdu.yaml file which looks like this:

# .gerdu.yaml

version: "1.0"

name: "awesome-workspace"

charts:
  - ./chart1.yaml
  - ./chart2.yaml
  - ./chart3.yaml

profiles:
  profile1:
    - service1
    - service1_db

Every charts represents a docker-compose file with some extera configs:

version: "1.0"

name: my-chart

# gerdu pull will use this configs to clone service
repo:
  git: [email protected]:username/my-project.git
  branch: main
  path: my-project


# Gerdu will execute stages as part of installation process
stages:
  pull:
    - echo "command1"
    - echo "command2"
    - echo "command3"
  sync:
    - echo "command1"
  setup:
    - echo "command1"

# Gerdu will map the urls to the services
mappings:
  api:
    port: 8080
    path: /hello
    service: hello-world
    host: api.gerdu.local
    cors:
      allowOrigins: *
      allowCredentials: fasle
      allowHeaders: Content-Type,Authorization
      allowMethods: GET,PUT,POST,PATCH,DELETE,OPTIONS

# docker-compose spec
compose:
  version: "3.9"
  services:
    hello-world:
      image: hello-world

Once you prepared your workspace and chart files, you can register it in Gerdu:

# add workspace to gerdu
$ gerdu ws add awesome /work/awesome-workspace

# activate workspace
$ gerdu ws switch awesome

# set dns records
$ sudo gerdu proxy dns > /etc/hosts

Now Gerdu is ready to run your applications:

$ gerdu up

CLI

Workspace commands

  • $ gerdu ws list list all workspaces
  • $ gerdu ws add <name> <path> add an existing workspace
  • $ gerdu ws swtich <name> switch to workspace

Setup commands

  • $ gerdu install install charts
  • $ gerdu pull pull charts
  • $ gerdu sync sync charts
  • $ gerdu setup [charts...] setup charts or services

Compose commands

  • $ gerdu build [services...] [-p <profiles...>] build or rebuild services
  • $ gerdu up [services...] [-p <profiles...>] starts services
  • $ gerdu reload [services...] [-p <profiles...>] stops and start the services
  • $ gerdu down [services...] [-p <profiles...>] stops and removes services
  • $ gerdu kill <args...> force stops services
  • $ gerdu stop <args...> stops services
  • $ gerdu run <args...> run a one-off command
  • $ gerdu exec <args...> executes a command in a running service
  • $ gerdu ps <args...> lists running containers
  • $ gerdu compose <args...> docker compose alias

Proxy commands

  • $ gerdu proxy up starts proxy service
  • $ gerdu proxy down stops proxy services
  • $ gerdu proxy ls lists all mappings
  • $ gerdu proxy dns [-w] generates dns records

tool config

  • $ gerdu config completion setup removes autocompletion feature
  • $ gerdu config completion remove installs autocompletion feature

Contributing

Want to help develop Docker Compose? Check out our contributing documentation.

If you find an issue, please report it on the issue tracker.