Deploy Next.js and Node.js projects with ease

A powerful CLI tool that simplifies deployment and management of Next.js and Node.js projects with minimal configurations

$ npx quicky@latest install

Seamless GitHub Integration

Deploy directly from your GitHub repositories.

Effortless Project Management

Initialize, update, and manage your projects with ease.

Automated Domain Configuration

Automatically configure domains for your projects.

Special sponsors

Big thanks to our sponsor for backing Quicky and helping us keep things moving forward.

What is Quicky?

Quicky is a CLI tool that streamlines the deployment and management of self-hosted Next.js and Node.js projects. It enables 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

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:

Installation

Install Quicky globally using either npx or npm:

or

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

Usage

1. Initialize Quicky

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 now supports deploying both Next.js and Node.js projects. During the deployment process, you will be prompted to select the project type:

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:

This command will prompt you to provide:

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

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

4. Update a Project by PID

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

5. Configuration Overview

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

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:

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

7. Webhooks

Quicky provides a built-in webhook server to automatically update your projects when changes are pushed to GitHub. Here's how to set it up:

Setting Up the Webhook Server

  1. Prerequisites
    • Ensure you have a subdomain (e.g., webhook.example.com) pointing to your server's IP address
    • Add an A DNS record with your server's IPv4 address
  2. Initial Setup

    This command will:

    • Check if the webhook server is running
    • Guide you through the setup process if needed
    • Prompt for webhook configuration
  3. Configuration
    • You'll need to provide a webhook URL (format: https://<your-subdomain>/webhook)
    • The webhook server will start automatically after setup
  4. Verify Setup

    This shows:

    • Server running status
    • Options to restart/stop server
    • Access to server logs

Webhook Dashboard

  1. Setup Dashboard Access
    • Set up username and password
    • Credentials are securely stored
  2. Access Dashboard
    • Open your browser to https://<your-subdomain>/dashboard
    • Log in with your credentials
    • Monitor webhook status
    • View webhook logs

Managing Webhooks

Use quicky webhooks with these commands:

8. Upgrade Quicky

Upgrades Quicky to the latest version.

9. Uninstall Quicky

Removes Quicky from your system.

Conclusion

Quicky simplifies the deployment and management of your Next.js and Node.js projects, making it easier to setup and maintain your web applications.