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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@ecl-server/deployer

v1.0.0

Published

Instant proxy + site deployment via Docker/Traefik

Readme

deployer

Small CLI for creating Docker Compose based local or production-ish web stacks with Traefik routing.

deployer creates one shared Traefik proxy, then adds sites behind it. A site can have a frontend only, or a frontend plus a Payload CMS or WordPress backend. It writes project folders, generated docker-compose.yml files, starter app files, and tracks what it created in ~/.deploykit/state.json.

Commands support interactive and non-interactive use.

deployer proxy

Creates or replaces the Traefik proxy in ./proxy.

Args:

  • -y, --yes: use defaults for missing options and skip prompts.
  • --force: replace the tracked proxy and remove the conflicting deploykit-traefik container without prompting.
  • --dev: generate local development proxy config.
  • --prod: generate production proxy config with HTTPS and no insecure dashboard.
  • --port <port>: alias for --http-port.
  • --http-port <port>: host HTTP port. Default: 80.
  • --https-port <port>: host HTTPS port for --prod. Default: 443.
  • --dashboard-port <port>: local dashboard port in dev mode. Default: 8080.
  • --email <email>: Let's Encrypt email. Required with --prod in non-interactive mode.

Examples:

deployer proxy
deployer proxy --yes --dev --port 8080
deployer proxy --yes --prod --email [email protected]
deployer proxy --force --yes --dev --http-port 8080 --dashboard-port 8081

deployer site

Creates a site folder in the current directory and starts it behind the tracked proxy.

Args:

  • -y, --yes: use defaults for missing options and skip prompts.
  • --domain <domain>: site domain, for example app.localhost or example.com.
  • --admin-prefix <prefix>: admin subdomain prefix. Default: admin.
  • --backend <type>: none, payloadcms, or wordpress. Default with --yes: none.
  • --frontend <type>: nuxt, next, vue, react, or html. Default with --yes: nuxt.
  • --overwrite: replace an existing tracked site or existing site directory without prompting.

Examples:

deployer site
deployer site --yes --domain app.localhost
deployer site --yes --domain blog.localhost --frontend nuxt --backend payloadcms
deployer site --yes --domain wp.localhost --frontend react --backend wordpress --admin-prefix cms
deployer site --yes --domain app.localhost --frontend next --backend none --overwrite

deployer init

Runs proxy setup and site setup in one command. It accepts the proxy args and the site args.

Args:

  • All deployer proxy args.
  • All deployer site args.

Examples:

deployer init
deployer init --yes --dev --port 8080 --domain app.localhost --frontend nuxt
deployer init --yes --prod --email [email protected] --domain example.com --frontend next --backend payloadcms

deployer list

Lists tracked proxy, frontend, backend, and database containers.

Args:

  • -v, --verbose: show image, ports, creation time, domains, directories, and slugs.

Examples:

deployer list
deployer ls
deployer list --verbose

deployer destroy <domain>

Stops containers, removes volumes, deletes the site directory, and removes the site from state.

Args:

  • <domain>: tracked site domain.
  • -y, --yes: confirm deletion without prompting.

Examples:

deployer destroy app.localhost
deployer destroy app.localhost --yes

deployer destroy-proxy

Stops and removes the tracked Traefik proxy.

Args:

  • -y, --yes: confirm deletion without prompting.

Examples:

deployer destroy-proxy
deployer destroy-proxy --yes

deployer rebuild <domain>

Rebuilds and restarts a tracked site from its current docker-compose.yml. Use this after changing site files in production mode.

Args:

  • <domain>: tracked site domain or slug.

Examples:

deployer rebuild app.localhost

deployer rebuild-proxy

Recreates the tracked Traefik proxy from its current docker-compose.yml. Use this after changing proxy config while it is running.

Examples:

deployer rebuild-proxy

deployer backup <domain>

Creates a single .tar.gz backup for a tracked site. The backup includes the site directory, frontend files, backend files, compose config, metadata, and the site's Docker database volume when the site has a backend.

The site is stopped while the backup copies volume data, then started again after the copy finishes.

Args:

  • <domain>: tracked site domain or slug.
  • -o, --output <file>: optional backup archive path. Default: ./<slug>-backup-<timestamp>.tar.gz.

Examples:

deployer backup app.localhost
deployer backup app.localhost --output ./backups/app.localhost.tar.gz

deployer restore <backup>

Restores a site from a backup archive, recreates its database volume, starts it with Docker Compose, and adds it back to state.

Args:

  • <backup>: backup archive created by deployer backup.
  • --dir <dir>: restore into this directory instead of ./<domain>.
  • --overwrite: replace an existing tracked site or directory.
  • -y, --yes: confirm overwrite without prompting.

Examples:

deployer restore ./backups/app.localhost.tar.gz
deployer restore ./backups/app.localhost.tar.gz --overwrite --yes
deployer restore ./backups/app.localhost.tar.gz --dir restored-app

deployer doctor

Checks whether tracked state still matches directories and Docker containers in the case that either has been removed manually. Supports deleting leftover artifacts.

Args:

  • --fix: clean up broken entries without prompting.
  • -y, --yes: alias for --fix.

Examples:

deployer doctor
deployer doctor --fix
deployer doctor --yes