https://github.com/farruhzoirov/fast-nginx
A fast and easy-to-use CLI tool to configure your domain with Nginx using just a single command.
https://github.com/farruhzoirov/fast-nginx
cli deployment nginx npm-package ubuntu-server
Last synced: 5 months ago
JSON representation
A fast and easy-to-use CLI tool to configure your domain with Nginx using just a single command.
- Host: GitHub
- URL: https://github.com/farruhzoirov/fast-nginx
- Owner: farruhzoirov
- License: mit
- Created: 2025-06-18T10:51:42.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-25T17:32:15.000Z (12 months ago)
- Last Synced: 2025-06-25T18:37:25.359Z (12 months ago)
- Topics: cli, deployment, nginx, npm-package, ubuntu-server
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/fast-nginx
- Size: 43 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# FastNginx 🚀
[](https://badge.fury.io/js/fastnginx)
[](https://opensource.org/licenses/MIT)
[](https://github.com/yourusername/fastnginx/actions)
**The fastest way to set up Nginx server blocks with SSL support.**
FastNginx is a production-ready CLI tool that automates the entire process of setting up Nginx reverse proxy configurations, from basic server blocks to SSL certificates with Let's Encrypt.
## ✨ Features
- 🚀 **One-command setup** - Domain to production in seconds
- 🔒 **Automatic SSL** - Let's Encrypt integration with auto-renewal
- 📋 **Multiple templates** - Basic, API, and SPA configurations
- 🛡️ **Security headers** - Production-ready security configurations
- 🔍 **System validation** - Checks requirements before execution
- 🎯 **Dry-run mode** - Preview changes before applying
- 📊 **Detailed logging** - Clear feedback and error handling
- 🌐 **Cross-platform** - Linux support
## 🚀 Quick Start
### Installation
\`\`\`bash
# Install globally via npm
npm install -g fast-nginx
# Verify installation
fast-nginx --version
\`\`\`
### Basic Usage
\`\`\`bash
# Basic HTTP setup
sudo fast-nginx --domain myapp.com --port 3000
# Complete HTTPS setup
sudo fast-nginx --domain myapp.com --port 3000 --ssl --email admin@myapp.com
## 📖 Documentation
### Command Options
| Option | Description | Default |
| ----------------------- | ----------------------------------- | ------- |
| `-d, --domain ` | Domain name (required) | - |
| `-p, --port ` | Upstream port | 3000 |
| `--ssl` | Setup SSL certificate | false |
| `--email ` | Email for SSL (required with --ssl) | - |
| `--www` | Include www subdomain | false |
| `--template ` | Configuration template | basic |
| `--force` | Overwrite existing config | false |
| `--dry-run` | Preview without executing | false |
| `--no-reload` | Skip Nginx reload | false |
### Templates
#### Basic Template
Perfect for most web applications:
\`\`\`bash
fast-nginx --domain myapp.com --template basic
\`\`\`
### Examples
#### Simple Website
\`\`\`bash
# Setup a basic website
sudo fast-nginx --domain mywebsite.com --port 3000 --ssl --email admin@mywebsite.com
\`\`\`
#### Preview Changes
\`\`\`bash
# See what would be created without executing
fast-nginx --domain test.com --ssl --email test@test.com --dry-run
\`\`\`
## 🔧 Requirements
- **Operating System**: Linux, Ubuntu
- **Node.js**: 14.0.0 or higher
- **Nginx**: Installed and running
- **Permissions**: Root/sudo access for system operations
- **Network**: Ports 80 and 443 accessible from internet (for SSL)
## 📋 Installation Requirements
### Ubuntu/Debian
\`\`\`bash
# Update system
sudo apt update && sudo apt upgrade -y
# Install Node.js
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
# Install Nginx
sudo apt install nginx -y
# Install FastNginx (that's it!)
sudo npm install -g fast-nginx
\`\`\`
### CentOS/RHEL
\`\`\`bash
# Install Node.js
curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash -
sudo yum install -y nodejs
# Install Nginx
sudo yum install nginx -y
# Install FastNginx
sudo npm install -g fast-nginx
\`\`\`
## 🛡️ Security Features
FastNginx includes production-ready security configurations:
- **Security Headers**: X-Frame-Options, X-XSS-Protection, X-Content-Type-Options
- **SSL/TLS**: Automatic HTTPS redirect and modern cipher suites
## 🔍 Troubleshooting
### Common Issues
**Permission Denied**
\`\`\`bash
# Always run with sudo for system operations
sudo fast-nginx --domain myapp.com
\`\`\`
**Domain Not Accessible**
\`\`\`bash
# Check DNS resolution
dig myapp.com +short
# Verify app is running
netstat -tuln | grep :3000
\`\`\`
**SSL Certificate Failed**
\`\`\`bash
# Ensure domain points to your server
# Check firewall allows ports 80 and 443
sudo ufw allow 80
sudo ufw allow 443
\`\`\`
**Nginx Configuration Error**
\`\`\`bash
# Test configuration
sudo nginx -t
# Check logs
sudo tail -f /var/log/nginx/error.log
\`\`\`
### Getting Help
- 📖 [Documentation](https://github.com/yourusername/fastnginx#readme)
- 🐛 [Report Issues](https://github.com/yourusername/fastnginx/issues)
- 💬 [Discussions](https://github.com/yourusername/fastnginx/discussions)
## 🤝 Contributing
We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
### Development Setup
\`\`\`bash
# Clone repository
git clone https://github.com/yourusername/fastnginx.git
cd fast-nginx
# Install dependencies
npm install
# Make executable
chmod +x bin/cli.js
# Test locally
./bin/cli.js --help
# Install globally for testing
npm link
\`\`\`
## 📄 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## 🙏 Acknowledgments
- [Nginx](https://nginx.org/) - High-performance web server
- [Let's Encrypt](https://letsencrypt.org/) - Free SSL certificates
- [Commander.js](https://github.com/tj/commander.js/) - CLI framework
- [Chalk](https://github.com/chalk/chalk) - Terminal styling
## 📊 Stats



---
**Made with ❤️ for the DevOps community**