2.5 KiB
Executable File
radius-cli 🚀
A lightweight, pull-based, Git-driven Continuous Deployment (CD) agent written in pure Bash.
radius-cli is designed for developers hosting web applications on VPS or shared hosting environments where traditional heavy CI/CD runners (like GitHub Actions, GitLab Runners, or Jenkins) cannot run due to memory limitations or network environment constraints (e.g., SSHFS network mounts, Cygwin, or firewalled networks).
✨ Key Features
- Zero Memory Footprint: Runs instantly via standard Cron intervals. Consumes 0MB of background RAM.
- Fail-Safe Extraction Guard: Checks code health before modifying the production web directory to protect your site from network corruption.
- Smart Directory Mirroring: Uses optimized
rsync --deleteloops with complete custom exclusions. - Granular Daily Operations Logging: Automatically maintains organized logs in
DDMMYYYY.logformatting. - Integrated Environment Management: Automatically handles server file permissions (
chmod/chown) and post-deployment optimization steps (composer install -o).
🛠️ Installation & Setup
1. Clone the repository structure into your project bin/ directory:
mkdir -p bin && cd bin
wget https://git.codelxior.com/jaspreet/radius-cli/archive/main.zip
chmod +x radius-cli
2. Configure Your Environment Variables:
Copy the example config file and fill in your Gitea token credentials:
cd radius-cli
nano config/main
3. Create your Deployment Excludes File (exclude.rsync.conf):
List all runtime variable configurations and user file upload directories that SyncForge must never modify or overwrite:
.env
uploads/
assets/images/dealers/
logs/
syncforge.conf
🚀 Usage Guide
SyncForge runs as an expressive, command-driven CLI tool layout:
- List All Remote Branches:
./bin/radius list-branch - List System Milestone Releases:
./bin/radius list-release - Trigger Production Deployment Manually:
./bin/radius update - Background Cron-Quiet Pipeline Execution:
./bin/radius update --quiet
Automating with Crontab
To run your web sync operations automatically every night at 2:30 AM, append this single statement to your server's crontab config (crontab -e):
30 2 * * * /home/username/public_html/bin/radius update --quiet
📄 License
This utility is open-source software licensed under the MIT License.