~ Nginx-confgen ~

Yoran Heling
projects@yorhel.nl
home - git - @ayo
= donate =paypal
= pgp =only used for releases
key - mit
7446 0D32 B808 10EB A9AF A2E9 6239 4C69 8C27 39FA
Cute decorative scissors, cutting through your code.

Nginx Configuration Generator

nginx-confgen is a simple preprocessor and macro system for nginx and nginx-like configuration files. It support variable substitution, macro expansion and using the output of arbitrary commands to generate config files.

Example

  pre_set $certdir /etc/nginx-certificates/;

# Fetch the 'resolver' from /etc/resolv.conf
pre_exec $nameserver "grep nameserver /etc/resolv.conf \\
| head -n 1 | sed 's/^nameserver //'";
resolver $nameserver;

# Convenient macro to create a HTTPS virtual host
macro vhost $domain @aliases &block {
server {
listen [::]:443 ssl;
server_name $domain @aliases;

ssl_certificate $certdir/$domain/fullchain.pem;
ssl_certificate_key $certdir/$domain/privkey.pem;
pre_if -f $certdir/$domain/ocsp.der {
ssl_stapling_file $certdir/$domain/ocsp.der;
}

█
}
}

vhost example.com www.example.com {
root /var/www/example.com;
}

See the manual for more features.

Download

If you're on a x86_64 Linux system, you can simply use the binary:

  curl -s https://dev.yorhel.nl/download/nginx-confgen-linux-amd64-1.2.tar.gz | tar -xzf-
./nginx-confgen <input.conf >output.conf

To compile from source, install Haskell Stack and run:

  git clone git://g.blicky.net/nginx-confgen.git
cd nginx-confgen
stack install

The git repository is also available for online browsing.