Quicky
Simple tool to self-host Next.js applications.
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:
- Purchase a domain name (e.g., Namecheap, GoDaddy, etc.)
- Purchase a Linux Ubuntu server (e.g., Hetzner, DigitalOcean, etc.)
- 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.
Author
Feel free to reach out to me on ๐ @alemalohe if you have any questions or feedback!