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 🙏

© 2024 – Pkg Stats / Ryan Hefner

quicky

v0.0.90

Published

Quicky is a powerful Node.js CLI that makes server management and deployment a breeze. It's a simple and easy-to-use tool that allows you to manage your servers and deploy your projects with ease.

Downloads

2,719

Readme

Quicky CLI

A CLI tool that streamlines the deployment and management of self-hosted Next.js and Node.js projects, enabling initialization, deployment from GitHub, updating, deleting, and managing applications, along with effortless setup of domains and SSL certificates, simplifying the entire lifecycle of web applications on remote servers.

Features

  • 🐙 GitHub Integration: Initialize, deploy, and manage Next.js and Node.js projects from private and public GitHub repositories.
  • ⚙️ Process Management: Leverage PM2 for application lifecycle and monitoring.
  • 🔄 Project Maintenance: Easily update or remove deployed projects.
  • 🌐 Domain & SSL Automation: Automatically configure Nginx for custom domains and SSL certificates, allowing you to add/remove domains from your projects.
  • 📝 Configuration Overview: List and inspect details of all deployed projects and their domains.

Prerequisites

To install Quicky, first acquire a Linux Ubuntu server from a provider such as DigitalOcean or Hetzner.

After setting up your server, connect to it (e.g., via SSH) and install Node.js and npm by executing the following commands:

sudo apt update
sudo apt install -y nodejs npm

Installation

Install Quicky globally using either npx or npm:

npx quicky@latest install

or

sudo npm install -g quicky

Note: The sudo command is necessary for global installation and to prevent permission issues when configuring domains.

Usage

1. Initialize Quicky

quicky init

This command will prompt you to enter your GitHub credentials and basic configurations for setting up your projects.

Quicky requires your GitHub access token and username to interact with your repositories. To create a new token, follow these steps:

  1. Visit your GitHub Personal Access Tokens page and make sure to use Tokens (classic).
  2. Click Generate new token.
  3. Select the required scopes for repository access.
  4. Click Generate token.
  5. Copy the token and provide it to Quicky as your GitHub access token. This token will be stored locally for future use.

To enable Continuous Deployment, Quicky requests a webhook URL for automated deployments. It uses your GitHub token to set up a webhook listener and create webhooks dynamically. You'll need to create a subdomain (e.g., webhook.example.com) pointing to your server's IP address. This can be done by adding an A DNS record with the IPv4 address of your server.

2. Deploy a Project

quicky deploy

Quicky now supports deploying both Next.js and Node.js projects. During the deployment process, you will be prompted to select the project type:

  • Next.js
  • Node.js

Deploying a Next.js Project

Follow the prompts to select your Next.js repository. Quicky will handle the deployment and configuration automatically.

Deploying a Node.js Project

Before deploying a Node.js project, ensure that your main application file is named index.js. You have the option to specify whether your project will use a port:

  • With Port: Provide the port number (e.g., 3000). Quicky will save it in the .env file, allowing you to point domains to your project.
  • Without Port: Without specifying a port, domains cannot be directed to the project, causing it to operate solely as a background service.

This command will prompt you to provide:

  • Your GitHub username or any organization name
  • The repository name
  • Project type (Next.js or Node.js)
  • If Node.js is selected:
    • Whether your project uses a port
      • If yes, the port number on which the project should run (e.g., 3000)

Environment Variables - During deployment, you'll be asked whether you'd like to add environment variables to your project. Quicky will handle saving the port number in the .env file of your project if applicable.

3. Manage Projects

quicky manage

Lists all deployed projects and allows you to start, stop, restart, update, or delete a specific project.

4. Update a Project by PID

quicky update <pid>

Updates a specific project by its PID with the latest changes from the GitHub repository.

5. Configuration Overview

quicky list

Displays an overview of all deployed projects, including the following details:

  • PID: Project ID.
  • Owner: GitHub username or organization name.
  • Repository: Name of the GitHub repository.
  • Port: Port number on which the project is running.
  • PM2 Status: Current status of the PM2 process.
  • Last updated: Date and time of the last deployment/update.

6. Domains

Before adding a domain to your project, you need to:

  1. 🛒 Purchase a domain name from a registrar like Namecheap or GoDaddy.
  2. 🌐 Create an A DNS record pointing to your server's IPv4 address.

Once you have your domain, you can easily manage it with the following command:

quicky domains

This command allows you to effortlessly add and remove domains and subdomains for your projects.

7. Webhooks

quicky webhooks

This command allows you to manage the webhook server for your projects. You can restart the webhook server, check its status, stop it, or show logs.

8. Upgrade Quicky

quicky upgrade

Upgrades Quicky to the latest version.

9. Uninstall Quicky

quicky uninstall

Removes Quicky from your system.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Author

Feel free to reach out to me on 𝕏 @alemalohe if you have any questions or feedback!

Contributing

Contributions are welcome! Please read the CONTRIBUTING file for guidelines on how to get started.