Skip to content

HookDeploy is a lightweight Go application that automates deployments via GitHub Webhooks with custom command execution.

License

Notifications You must be signed in to change notification settings

dipras/HookDeploy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HookDeploy 🚀

HookDeploy is a lightweight Go application designed to automate deployments using GitHub Webhooks.
With HookDeploy, every time code changes (push) occur in your repository, it can execute a sequence of commands defined in your configuration.


✨ Features

  • 📡 Receive GitHub Webhooks → automatically detects push events.
  • ⚙️ Custom Command Execution → run commands defined in config.yaml.
  • 🛡️ Signature Verification → ensure the request is truly from GitHub (HMAC SHA-256).
  • 📂 Simple Configuration → just a YAML file, easy to read and edit.
  • 🔧 Multi Repository Focus → lightweight and simple, perfect for personal projects or small servers.

📦 Setup

Make sure you have Go 1.21+ installed.

1. Installing

git clone https://github.com/dipras/HookDeploy.git
cd hookdeploy
go mod tidy

2. Add .env file

You can check the example in .env.example file

3. Set your configs for deploy repositories

You can write your configs for deployment in folder configs. The name of config should using your repository name with / replace by _ and followed by .yaml. For example, if your repository named dipras/nxensite, then you should named the script like this dipras_nxensite.yaml

🌟 Next Feature

  • Multi Repository
  • Better logging for each repository
  • Monitoring the log
  • Web Dashboard
  • Environment Variable
  • Notification

License

This project is licensed under the GNU GPLv2.

About

HookDeploy is a lightweight Go application that automates deployments via GitHub Webhooks with custom command execution.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages