/quicky

Simple tool to self-host Next.js applications.

Primary LanguageJavaScriptMIT LicenseMIT

Quicky

A CLI tool for effortless Next.js deployment and management. Initialize, deploy from GitHub, update, delete, and manage projects. Handles PM2 instances and domain configuration. Streamlines the entire lifecycle of Next.js applications on remote servers.

Features

  • 🐙 GitHub Integration: Initialize, deploy, and manage Next.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.
  • 📋 Configuration Overview: List and inspect details of all deployed projects and their domains.

Prerequisites

Quicky requires Node.js and npm to be installed on your system. You can install them using the following commands:

sudo apt update
sudo apt install -y nodejs npm

Installation

You can install Quicky globally using npm:

sudo npm install -g quicky

Note: Using sudo is required to install Quicky globally and to avoid permission issues while configuring Nginx.

Usage

1. Initialize Quicky

quicky init

Prompts you to enter your GitHub credentials and basic configurations for setting up your projects.

2. Deploy a Project

quicky deploy

Prompts you to enter your GitHub username or organization name, repository name, and the port number for deployment.

Environment Variables - During deployment, you’ll be asked if you want to add environment variables to your project or not.

3. Manage Projects

quicky manage

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

4. 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.
  • Domains: Associated domains for the project.
  • Last updated: Date and time of the last deployment/update.

5. Domains

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

  1. Purchase a domain name (e.g., Namecheap, GoDaddy, etc.)
  2. Purchase a Linux Ubuntu server (e.g., Hetzner, DigitalOcean, etc.)
  3. Create an A DNS record pointing to your server IPv4 address
quicky domains

Allows you to add and remove domains and subdomains for your projects effortlessly. Handles Nginx configuration and SSL certificates.

6. Install Quicky

quicky install

Installs Quicky globally.

7. Upgrade Quicky

quicky upgrade

Upgrades Quicky to the latest version.

8. Uninstall Quicky

quicky uninstall

Uninstalls Quicky globally.

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.