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.
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 npmInstall Quicky globally using either npx or npm:
npx quicky@latest installor
sudo npm install -g quickyNote: The sudo command is necessary for global installation and to prevent permission issues when configuring domains.
quicky initThis 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:
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.
quicky deployQuicky now supports deploying both Next.js and Node.js projects. During the deployment process, you will be prompted to select the project type:
Follow the prompts to select your Next.js repository. Quicky will handle the deployment and configuration automatically.
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:
.env file, allowing you to point domains to your project.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.
quicky manageLists all deployed projects and allows you to start, stop, restart, update, or delete a specific project.
quicky update <pid>Updates a specific project by its PID with the latest changes from the GitHub repository.
quicky listDisplays an overview of all deployed projects, including the following details:
Before adding a domain to your project, you need to:
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 domainsThis command allows you to effortlessly add and remove domains and subdomains for your projects.
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:
Prerequisites
Initial Setup
quicky webhooksThis command will:
Configuration
Verify Setup
quicky webhooks statusThis shows:
Setup Dashboard Access
quicky webhooks dashboardAccess Dashboard
Use quicky webhooks with these commands:
status - Check webhook server statusrestart - Restart the webhook serverstop - Stop the webhook serverlogs - View webhook server logsdashboard - Access the webhook dashboardquicky upgradeUpgrades Quicky to the latest version.
quicky uninstallRemoves Quicky from your system.
This project is licensed under the MIT License - see the LICENSE file for details.
Feel free to reach out to me on ? @alemalohe if you have any questions or feedback!
Contributions are welcome! Please read the CONTRIBUTING file for guidelines on how to get started.