https://github.com/naffiq/rocket-tools
Jumpstart your development process by automatically generating config files!
https://github.com/naffiq/rocket-tools
Last synced: about 2 months ago
JSON representation
Jumpstart your development process by automatically generating config files!
- Host: GitHub
- URL: https://github.com/naffiq/rocket-tools
- Owner: naffiq
- License: mit
- Created: 2017-05-25T10:19:59.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2017-05-26T05:49:35.000Z (almost 8 years ago)
- Last Synced: 2025-01-26T03:23:32.414Z (4 months ago)
- Language: PHP
- Size: 1.41 MB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# RocketTools
This little php script helps you generate and manage nginx configuration for your project.
## Installation
### Via composer
Install this project globally by running
```bash
$ composer global require naffiq/rocket-tools
```
Make sure, that you have your composer's `bin` directory linked to your `PATH` environment
variable.### Download PHAR executable
You can get the latest version this utility on [releases page](https://github.com/naffiq/rocket-tools/releases/latest).
Just grab `rocket-tools.phar` and put it to your `/usr/local/bin` directory (if you're on macOS/Linux) or just any
folder listed in your `PATH` on Windows.## Usage
Check the version by running
```bash
$ rocket-tools --version
```### Generate nginx configurations
You can create nginx config in sites-available for your Yii2 project (basic for now) by running
```bash
$ rocket-tools nginx:generate [] [] [] [] []
```This command takes following arguments:
- `server-name` Domain (server_name) for newly created app
- `config-name` File name for your config file. If not set first `server-name` is used
- `document-root` Document root for your project. If not set, taken from run directory. **default: "CURRENT/RUNNING/DIRECTORY"**
- `sites-available` Path of sites-available folder **default: "/etc/nginx/sites-available"**
- `port` Listen port. **default: 80**
- `fast-cgi-pass` Fast CGI pass. **default: "unix:/var/run/php7.1-fpm.sock"**You can override defaults by configuring `rocket-tools` with [config:update](#Configuring RocketTools) command.
### Link/unlink nginx sites available
Run this command to link config from `sites-available` to `sites-enabled` folder:
```bash
$ rocket-tools nginx:link [] []
```Arguments:
- `site-name` Configuration file name
- `sites-available` Sites available directory (without .conf) **default: "/etc/nginx/sites-available"**
- `sites-enabled` Sites enabled directory **default: "/etc/nginx/sites-enabled"**To unlink config run:
```bash
$ rocket-tools nginx:unlink []
```Arguments:
- `site-name` Configuration file name
- `sites-enabled` Sites enabled directory **default: "/etc/nginx/sites-enabled"**You can override defaults by configuring `rocket-tools` with [config:update](#Configuring RocketTools) command.
### Configuring RocketTools
To override default configurations run:
```
$ config:update
$ config:set
```Arguments:
- `config-name` Configuration key
- `config-value` Configuration valueSo in order to override `nginx:generate` configurations simply take it's argument
(for example `sites-available`), add `nginx-` prefix to it and use it as configuration key.
The only exception is `fast-cgi-pass`, which is related to `php-fpm` and hand**Example:**
```bash
$ config:update nginx-sites-available /usr/local/etc/nginx/sites-available
```There is also a command for viewing your current configuration:
```bash
$ config:get []
```Arguments:
- `config-name` Configuration key. If not set, displays all config values.#### Configuration files
All of the configuration files are stored in `$HOME/.rocket-tools/` directory.
If you want to change it, set `ROCKET_TOOLS_HOME` environment variable to desired path.### Updating RocketTools
If you are using `composer` run:
```bash
$ composer global update naffiq/rocket-tools
```Just like `composer.phar`, `rocket-tools.phar` file contains `self-update` command, if
you manually downloaded it from releases page.#### Under the hood:
- [Symfony Console](https://github.com/symfony/console)
- [box-project/box2](https://github.com/box-project/box2/)
- [humbug/phar-updater](https://github.com/humbug/phar-updater)#### TODO:
- [ ] Add default templates for nginx configs (Yii2 advanced, Laravel, Symfony)
- [ ] Custom templates for nginx config
- [ ] Apache2 config generator
- [ ] Automated MySQL DB/User creation
- [ ] Automated `.env` file generator
- [ ] hosts file editor
- [ ] All of the steps in one command master### License: MIT
> Crafted with ♥