a3ensite
Version:
Apache/Nginx/Config Manager, JSON based
109 lines (87 loc) • 2.36 kB
Markdown
- `a3ensite make sites` - Generate apache or nginx configuration file
- `a3ensite make hosts` - Generate hosts entries to /etc/hosts or any other Hosts.FileLoc
- `a3ensite status` - Print status [Sites, Hosts]
- `$[VARIABLE]$` = _required variable_ - apply content & show line or throw an error if not.
- `$?[VARIABLE]$` = _optional variable_ - apply content & show line if variable is set.
- `$![VARIABLE]$` = _display variable_ - show line if variable is set.
> sites and output location configuration in JSON
```
{
"options": {
"Hosts": {
"EnabledLoc": "/etc/hosts"
"HostNameKey": "ServerName",
"HostIpKey": "ServerIp",
}
},
"server": {
"EnabledLoc": "/tmp",
"OutputFile": "app.conf",
},
"defaults": {
"Servername": "server0"
},
"sites": [
{
"ServerName": "server1",
"ServerAlias": "alias1",
"ServerIp": "127.0.0.1",
"ServerOptional": "optional-value-1"
},
{
"ServerName": "server2",
"ServerAlias": "alias2",
"ServerIp": "127.0.0.1",
"ServerHidden": "hidden-value-2"
},
{
"ServerName": "dev.local",
"ServerAlias": "www.dev.local",
"ServerIp": "127.0.0.1",
"WebSocket": "ws://dev.local"
}
]
}
```
> template for generating output
```
<VirtualHost *:80>
ServerName $[ServerName]$
ServerAlias $[ServerAlias]$
ServerOptional $?[ServerOptional]$
ProxyPreserveHost On $![ServerHidden]$
RewriteEngine on $![WebSocket]$
RewriteCond %{HTTP:Upgrade} websocket [NC] $![WebSocket]$
RewriteCond %{HTTP:Connection} upgrade [NC] $![WebSocket]$
RewriteRule ^/?(.*) "$?[WebSocket]$/$1" [P,L]
<VirtualHost>
```
---
> a3ensite enable | make
---
> Generated output
```
<VirtualHost *:80>
ServerName server1
ServerAlias alias1
ServerOptional optional-value-1
<VirtualHost>
<VirtualHost *:80>
ServerName server2
ServerAlias alias2
ProxyPreserveHost On
<VirtualHost>
<VirtualHost *:80>
ServerName dev.local
ServerAlias www.dev.local
RewriteEngine on
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule ^/?(.*) "ws://dev.local/$1" [P,L]
<VirtualHost>
```