1
0
mirror of https://github.com/dokku/buildpack-nginx.git synced 2025-06-26 18:40:45 +00:00

85 Commits
v5 ... v16

Author SHA1 Message Date
6c1abc0547 Merge pull request #51 from zachahn/patch-1
Respond with a 404 when the file doesn't exist
2021-12-02 22:47:33 -05:00
6672b6257a Respond with a 404 when the file doesn't exist
Prior to this, I was seeing the successful HTTP status 200 when
requesting files that did not exist.

With this change, the server sends back Nginx's default 404 page instead
of the home page.
2021-12-02 22:19:05 -05:00
758bf7c39c Merge pull request #47 from dokku/josegonzalez-patch-1
fix: update pcre and pull from new location
2021-11-06 20:49:44 -04:00
5a16fba7d1 fix: add missing quote 2021-11-06 20:46:18 -04:00
8cb1d16d7e fix: update pcre and pull from new location
ftp.pcre.org is no longer supported
2021-11-06 20:24:16 -04:00
aa0ebb8f47 Update README.md 2021-03-22 01:19:04 -04:00
d5048c5fe3 Merge pull request #44 from vieditcom/patch-1
Update README.md - Typo
2020-11-23 10:14:28 -05:00
ec734ad787 Update README.md - Typo
seperate > separate
2020-11-22 13:07:12 +03:00
150d82865b Merge pull request #42 from sent-hil/master
Update Readme to include example for setting NGINX_ROOT
2020-07-14 10:24:25 -04:00
cd84b47fd1 Update Readme to include example for setting NGINX_ROOT 2020-07-05 18:17:34 -07:00
e06b1e4df1 Merge pull request #41 from dokku/40-charset
feat: use charset utf8 by default
2020-06-11 15:33:44 -04:00
0d2e4c3ee6 feat: use charset utf-8 by default
Closes #40
2020-06-11 15:33:31 -04:00
1f534f7bc6 feat: enable the charset module by default 2020-06-11 15:31:47 -04:00
149f06c3b3 Merge pull request #39 from pawurb/real_ip_module
Add real ip and proxy module
2020-04-13 12:36:17 -04:00
99d72cc005 Add real ip and proxy module 2020-02-09 11:59:08 +01:00
46d850193d fix: update message to say http instead of ftp
It's actually now downloading via ftp.
2019-08-19 15:44:16 -04:00
9eae441352 Merge pull request #38 from vkurup/master
Update PCRE URL
2019-08-12 11:08:21 -04:00
b0ce745a1b chore: switch to https
The ftp url is simply an alias for the https version...
2019-08-12 11:08:13 -04:00
fe3a5dc54f Update PCRE URL 2019-08-11 20:52:38 -04:00
ad8d7c4261 Merge pull request #34 from justintemps/patch-1
Add text/vtt mime type for caption files
2019-06-17 09:55:47 -05:00
e8e0807a2d Merge pull request #36 from OldhamMade/feature/version-bump-of-dependencies
Update dependency versions
2019-06-17 09:55:28 -05:00
673fd38bb2 Version bump of dependencies
- ensure pcre is requested via FTP
- bump pcre to 8.43
- bump nginx to 1.17.0
2019-06-16 09:39:00 +02:00
1945cf3645 Add text/vtt mime type for caption files
Update to include text/vtt mime type
2019-01-11 15:11:58 +01:00
a9b3cb1767 Merge pull request #29 from pawurb/update-nginx
Update nginx to 1.14.0
2018-08-29 09:12:05 -04:00
c6b3e74808 Update nginx to 1.14.0 2018-06-03 20:36:58 +02:00
ffaa249c5c Merge pull request #21 from ineffyble/master
Add port_in_redirect directive to NGINX configuration template
2017-12-18 10:55:33 -05:00
e31fee35bb Merge pull request #26 from nreilly/patch-1
New download location for PCRE
2017-07-16 15:32:33 -06:00
0b290ce1f6 New download location for PCRE
Changing to a new mirror that has updated packages.
2017-07-16 14:29:27 +08:00
ec0560066c Merge pull request #24 from jtstio/master
Update PCRE to 8.40 and zlib to 1.2.11
2017-07-09 21:25:44 -06:00
f873fe2024 UPDATE pcre and zlib 2017-07-09 09:00:31 -06:00
9a82e569c1 Update Zlib to version 1.2.10 2017-07-09 08:59:58 -06:00
6ecc56df72 Add port_in_redirect directive to NGINX configuration template 2017-04-15 00:29:37 +10:00
ed184f98fd Update README.md 2017-03-28 17:42:13 -06:00
2535bd6ebb Merge pull request #16 from timaschew/patch-1
update docs how to set buildback
2017-01-10 11:07:12 -07:00
6d1ae20708 update docs how to set buildback 2017-01-10 03:52:33 +01:00
dded3b0717 Merge pull request #15 from shovon/patch-1
Update to instruction for manual setup
2017-01-05 12:25:51 -05:00
d4f93ae2b3 Update to instruction for manual setup
Manual setup used the wrong command; the parameter with application name was missing. This change adds that.
2017-01-05 03:48:38 -08:00
51f642dcff Merge pull request #14 from kblcuk/master
Push zlib version to 1.2.9
2017-01-02 17:05:21 -08:00
0a46959ef7 Push zlib version to 1.2.9
Also fetch it from github releases rather than site directly; those
releases won't suddenly disappear.
2017-01-02 17:22:55 +02:00
c8ab63c69b Merge pull request #13 from larose/nginx-conf
Use app-nginx.conf.sigil if provided
2016-12-07 11:20:37 -07:00
c2748f137e Use app-nginx.conf.sigil if provided 2016-12-06 22:14:24 -05:00
dd3ac20c6d Switch template to app-nginx.conf.sigil 2016-09-20 01:38:50 -06:00
8848e945b9 Disable a shellcheck rule 2016-09-20 01:31:19 -06:00
e7684a0f2c Quote variable 2016-09-20 01:31:09 -06:00
fb081cabb2 Add trace mode 2016-09-20 01:31:04 -06:00
b69c1f3854 Suppress configure output 2016-09-20 01:20:17 -06:00
9c7cde74ad Cleanup bin/release 2016-09-20 01:18:03 -06:00
c4c93aebe0 Suppress output on success 2016-09-20 01:12:00 -06:00
8348cbde99 Fix casing on notices 2016-09-20 01:06:26 -06:00
1b0c929144 Simplify detection 2016-09-20 01:00:53 -06:00
ed2e482ed9 Run shellcheck against repository 2016-09-20 01:00:40 -06:00
aa23156a8e Fix if statement 2016-09-20 00:49:15 -06:00
c4ad67f9de Fix curl calls 2016-09-20 00:44:27 -06:00
7251f38a51 Silent curl calls 2016-09-20 00:39:20 -06:00
8797219a4b Update compile 2016-09-20 00:22:36 -06:00
c947e409e8 Update NGINX and PCRE Version 2016-09-20 00:22:35 -06:00
28d1a580cf Move to supporting sigil templates by default 2016-09-20 00:18:28 -06:00
b9842399a3 Install sigil from github 2016-09-20 00:13:15 -06:00
bb20210245 Remove bad logic regarding sigil template
The copied sigil template will be the dokku one, not an nginx-app specific version
2016-09-20 00:08:08 -06:00
d3a90d7520 Merge pull request #11 from dennmart/master
Copy nginx.conf.sigil
2016-09-19 23:22:20 -06:00
fabd871741 Merge branch 'riscie-master' 2016-09-19 23:15:34 -06:00
6430fa286b Merge branch 'master' of https://github.com/riscie/buildpack-nginx into riscie-master 2016-09-19 23:15:28 -06:00
b4bd0c0b1f Merge pull request #9 from leonardowf/master
Add try_files support
2016-09-19 23:12:57 -06:00
06888793b1 Merge pull request #8 from alexleclair/master
Copy app.json from www/ into $BUILD_DIR for deployment task support
2016-09-19 23:11:40 -06:00
7e7e9be442 Merge pull request #7 from FireCoding/master
add .gitignore
2016-09-19 23:10:56 -06:00
fd73b73748 Merge pull request #6 from iliyat/master
Merge forks
2016-09-19 23:08:55 -06:00
e1efa9a3a2 Merge pull request #5 from florianheinemann/master
Merge upstream florianheinemann/buildpack-nginx
2016-09-19 23:04:18 -06:00
f1d835dd90 Update nginx.conf.erb 2016-09-11 12:05:14 -03:00
ca7b083aad Now copying app.json from www/ into $BUILD_DIR, thus allowing pre/post deploy scripts to execute 2016-08-24 14:20:29 -04:00
b7d61bbea4 add .gitignore 2016-07-27 20:48:14 -04:00
d4f83febf9 Update README.md 2016-06-30 14:27:22 -04:00
bb6e9d398d Forwards requests to index.html after no file or folder was found
Useful for SPA's like AngularJS where the SPA's router takes care of the routing.
2016-06-28 13:45:23 +02:00
513791b391 Fix link in readme 2016-05-10 17:20:47 -04:00
2e9a75e96b Merge pull request #3 from florianheinemann/master
update fork
2016-05-08 00:59:46 +03:00
9c43925fac Forgot to copy over nginx.conf.sigil to the build directory 2016-04-27 15:36:18 +09:00
640f6d396a Syntax error for Bash 2016-04-27 15:34:27 +09:00
3a20517687 Check for existence of nginx.conf.sigil for Dokku 0.5.0+ 2016-04-27 15:31:46 +09:00
afa0a94343 Merge pull request #13 from milanholy83/master
nginx 1.8.1
2016-02-09 11:43:03 +01:00
ce6895ef38 nginx 1.8.1 2016-02-09 11:28:01 +01:00
6b7fd744ce Merge pull request #2 from florianheinemann/master
Last commits
2016-01-13 10:58:17 +03:00
9d273c7607 Merge pull request #11 from kmattimo/master
restored ability to use custom mime.types
2015-12-24 13:17:24 +01:00
7d773187bb restored ability to use custom mime.types 2015-12-23 14:14:33 -05:00
847b25b51d Merge pull request #10 from jonbjornn/master
Update PCRE version to fix broken compile step
2015-12-04 23:00:15 +01:00
Jon
12fe84ae6b Update PCRE version to fix broken compile step 2015-12-04 09:34:49 -08:00
770f4feb42 Merge pull request #1 from florianheinemann/master
Last commits
2015-07-22 02:23:24 +03:00
8 changed files with 153 additions and 79 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.idea

20
Makefile Normal file
View File

@ -0,0 +1,20 @@
shellcheck:
ifeq ($(shell shellcheck > /dev/null 2>&1 ; echo $$?),127)
ifeq ($(shell uname),Darwin)
brew install shellcheck
else
sudo add-apt-repository 'deb http://archive.ubuntu.com/ubuntu trusty-backports main restricted universe multiverse'
sudo apt-get update -qq && sudo apt-get install -qq -y shellcheck
endif
endif
ci-dependencies: shellcheck
lint:
@echo linting...
@$(QUIET) find ./ -maxdepth 2 -not -path '*/\.*' | xargs file | egrep "shell|bash" | awk '{ print $$1 }' | sed 's/://g' | xargs shellcheck -e SC2069
setup:
$(MAKE) ci-dependencies
test: setup lint

View File

@ -1,20 +1,33 @@
# NGINX Buildpack for Dokku - Hosting static pages
This buildpack has been successfully run on Digital Ocean instances of Ubuntu 14.04 (Status: Jan 2015). It might also work with different configurations.
# heroku-buildpack-nginx
## Purpose
`buildpack-nginx` provides a simple, low overhead way of hosting static pages and websites on Dokku. Just add the `.env` and `.static` file to the root directory of your website as described below.
This is the official dokku buildpack for static websites, powered by nginx.
## Usage
1. Add a file with the name `.env` in the root of your directory with the following content: `export BUILDPACK_URL=https://github.com/florianheinemann/buildpack-nginx.git`
2. Add another, *empty* file called `.static` to your root directory of your web project. It signals that this buildpack shall be used
3. Push your project to Dokku
All static files that you want to serve should be in the root directory of your repository. No need to use a seperate `www` folder. `buildpack-nginx` will automatically download the buildpack, download NGINX, compile it, and install it. The next time you push your project, the buildpack will reuse the precompiled binaries.
All static files that you want to serve should be in the root directory of your repository. No need to use a separate `www` folder. `buildpack-nginx` will automatically download the buildpack, download NGINX, compile it, and install it. The next time you push your project, the buildpack will reuse the precompiled binaries.
## NGINX CONFIGURATION
Override default configuration by adding `nginx.conf.erb` in the root directory. You can also override the nginx root by setting `$NGINX_ROOT`
### Dokku
To trigger detection of this buildpack you need to add a dotfile:
Add an *empty* file called `.static` to your root directory of your web project (regardless if you use a custom value for NGINX_ROOT)
### Heroku
Heroku users can use this buildpack by running the following command:
```
heroku buildpacks:set https://github.com/dokku/buildpack-nginx.git
```
## Configuration
You can override the nginx root via setting the `NGINX_ROOT` environment variable. This should be a relative path in your repository (for example `dokku config:set <app> NGINX_ROOT=_site` if you are deploying a Jekyll site).
You may completely override the built-in nginx config by placing an `app-nginx.conf.sigil` file in the root, modeled after our own [`conf/app-nginx.conf.sigil`](https://github.com/dokku/buildpack-nginx/blob/master/conf/app-nginx.conf.sigil). This will be used inside of the container, and not by the host Dokku instance. See the [sigil project](https://github.com/gliderlabs/sigil) for more information concerning the sigil format.
## Credits and License
`buildpack-nginx` is licensed under the CC0 1.0 Universal license and has been informed by many similar projects on the web
`buildpack-nginx` is licensed under the CC0 1.0 Universal license and has been informed by many similar projects on the web.
[Florian Heinemann](http://twitter.com/TheSumOfAll/)

View File

@ -1,77 +1,96 @@
#!/usr/bin/env bash
# bin/compile <build-dir> <cache-dir>
set -eo pipefail; [[ $TRACE ]] && set -x
set -e
set -o pipefail
# Nginx 1.6.2
NGINX_VERSION="1.6.2"
NGINX_VERSION="1.17.0"
NGINX_TARBALL="nginx-${NGINX_VERSION}.tar.gz"
PCRE_VERSION="8.38"
PCRE_VERSION="8.45"
PCRE_TARBALL="pcre-${PCRE_VERSION}.tar.gz"
ZLIB_VERSION="1.2.8"
SIGIL_VERSION="0.4.0"
SIGIL_TARBALL="sigil_${SIGIL_VERSION}_Linux_x86_64.tgz"
ZLIB_VERSION="1.2.11"
ZLIB_TARBALL="zlib-${ZLIB_VERSION}.tar.gz"
suppress() {
# shellcheck disable=SC2069
/bin/rm --force /tmp/surpress.out 2> /dev/null; "$@" 2>&1 > /tmp/surpress.out || cat /tmp/surpress.out; /bin/rm /tmp/surpress.out;
}
# parse and derive params
BUILD_DIR=$1
CACHE_DIR=$2
CUR_DIR=`cd $(dirname $0); cd ..; pwd`
CUR_DIR=$(cd "$(dirname "$0")"; cd ..; pwd)
mkdir -p $BUILD_DIR $CACHE_DIR
mkdir -p "$BUILD_DIR" "$CACHE_DIR"
if [[ ! -e "$BUILD_DIR/www" ]]; then
echo "-----> copy static files to www"
rm -rf $CACHE_DIR/www
mkdir -p $CACHE_DIR/www
mv $BUILD_DIR/* $CACHE_DIR/www
mkdir -p $BUILD_DIR/www
mv $CACHE_DIR/www/* $BUILD_DIR/www
# Check for an copy the nginx conf file override to the build dir
[[ -f "$BUILD_DIR/www/nginx.conf.erb" ]] && mv $BUILD_DIR/www/nginx.conf.erb $BUILD_DIR
[[ -f "$BUILD_DIR/www/CHECKS" ]] && mv $BUILD_DIR/www/CHECKS $BUILD_DIR
rm -rf $CACHE_DIR/www
if [[ ! -e "${BUILD_DIR}/www" ]]; then
echo "-----> Copy static files to www"
rm -rf "${CACHE_DIR}/www"
mkdir -p "${CACHE_DIR}/www"
# shellcheck disable=SC2086
mv $BUILD_DIR/* "${CACHE_DIR}/www"
mkdir -p "${BUILD_DIR}/www"
# shellcheck disable=SC2086
mv ${CACHE_DIR}/www/* "${BUILD_DIR}/www"
# Check for a copy the nginx conf file override to the build dir
[[ -f "${BUILD_DIR}/www/nginx.conf.erb" ]] && mv "${BUILD_DIR}/www/nginx.conf.erb" "${BUILD_DIR}"
[[ -f "${BUILD_DIR}/www/nginx.conf.sigil" ]] && mv "${BUILD_DIR}/www/nginx.conf.sigil" "${BUILD_DIR}"
[[ -f "${BUILD_DIR}/www/app-nginx.conf.sigil" ]] && mv "${BUILD_DIR}/www/app-nginx.conf.sigil" "${BUILD_DIR}"
[[ -f "${BUILD_DIR}/www/mime.types" ]] && mv "${BUILD_DIR}/www/mime.types" "${BUILD_DIR}"
[[ -f "${BUILD_DIR}/www/CHECKS" ]] && mv "${BUILD_DIR}/www/CHECKS" "${BUILD_DIR}"
[[ -f "${BUILD_DIR}/www/app.json" ]] && mv "${BUILD_DIR}/www/app.json" "${BUILD_DIR}"
rm -rf "${CACHE_DIR}/www"
fi
cd $CACHE_DIR
cd "$CACHE_DIR"
if [[ ! -d "${NGINX_TARBALL%.tar.gz}" ]]; then
echo "-----> download and unzip nginx"
curl "http://nginx.org/download/${NGINX_TARBALL}" -o "${NGINX_TARBALL}"
echo "-----> Download and unzip nginx ${NGINX_VERSION} via http"
curl -sSL "http://nginx.org/download/${NGINX_TARBALL}" -o "${NGINX_TARBALL}"
tar xzf "${NGINX_TARBALL}" && rm -f "${NGINX_TARBALL}"
fi
if [[ ! -d "${PCRE_TARBALL%.tar.gz}" ]]; then
echo "-----> download and unzip pcre"
curl "http://ftp.csx.cam.ac.uk/pub/software/programming/pcre/${PCRE_TARBALL}" -o "${PCRE_TARBALL}"
echo "-----> Download and unzip pcre ${PCRE_VERSION} via http"
curl -sSL "https://downloads.sourceforge.net/project/pcre/pcre/${PCRE_VERSION}/${PCRE_TARBALL}" -o "${PCRE_TARBALL}"
tar xzf "${PCRE_TARBALL}" && rm -f "${PCRE_TARBALL}"
fi
if [[ ! -d "${ZLIB_TARBALL%.tar.gz}" ]]; then
echo "-----> download and unzip zlib"
curl "http://zlib.net/${ZLIB_TARBALL}" -o "${ZLIB_TARBALL}"
echo "-----> Download and unzip zlib ${ZLIB_VERSION} via http"
curl -sSL "https://github.com/madler/zlib/archive/v${ZLIB_VERSION}.tar.gz" -o "${ZLIB_TARBALL}"
tar xzf "${ZLIB_TARBALL}" && rm -rf "${ZLIB_TARBALL}"
fi
if [[ ! -f "sigil" ]]; then
echo "-----> Download and unzip sigil ${SIGIL_VERSION} via http"
curl -sSL "https://github.com/gliderlabs/sigil/releases/download/v${SIGIL_VERSION}/${SIGIL_TARBALL}" -o "${SIGIL_TARBALL}"
tar xzf "${SIGIL_TARBALL}" && rm -rf "${SIGIL_TARBALL}"
fi
mkdir -p "$BUILD_DIR/sigil"
cp -r sigil "$BUILD_DIR/sigil/"
cd "nginx-${NGINX_VERSION}"
if [[ ! -f "${CACHE_DIR}/bin/nginx" ]]; then
echo "-----> compile static nginx"
mkdir $BUILD_DIR/nginx
./configure \
echo "-----> Compiling static nginx binary"
mkdir "$BUILD_DIR/nginx"
suppress ./configure \
--with-cpu-opt=generic \
--prefix=$BUILD_DIR/nginx \
--prefix="$BUILD_DIR/nginx" \
--with-pcre=../pcre-${PCRE_VERSION} \
--sbin-path=. \
--pid-path=./nginx.pid \
--conf-path=./nginx.conf \
--with-ld-opt="-static" \
--with-http_spdy_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-file-aio \
--with-zlib=../zlib-${ZLIB_VERSION} \
--with-pcre \
--with-cc-opt="-O2 -static -static-libgcc" \
--without-http_charset_module \
--without-http_ssi_module \
--without-http_userid_module \
--without-http_access_module \
@ -81,7 +100,6 @@ if [[ ! -f "${CACHE_DIR}/bin/nginx" ]]; then
--without-http_map_module \
--without-http_split_clients_module \
--without-http_referer_module \
--without-http_proxy_module \
--without-http_fastcgi_module \
--without-http_uwsgi_module \
--without-http_scgi_module \
@ -93,53 +111,67 @@ if [[ ! -f "${CACHE_DIR}/bin/nginx" ]]; then
--without-http_upstream_keepalive_module \
--without-mail_pop3_module \
--without-mail_imap_module \
--without-mail_smtp_module
--without-mail_smtp_module \
--with-http_realip_module
sed -i "/CFLAGS/s/ \-O //g" objs/Makefile
make && make install
suppress make && suppress make install
rm -rf $CACHE_DIR/bin && mkdir -p $CACHE_DIR/bin/
cp -r $BUILD_DIR/nginx/* $CACHE_DIR/bin/
rm -rf "${CACHE_DIR:?}/bin" && mkdir -p "$CACHE_DIR/bin/"
# shellcheck disable=SC2086
cp -r $BUILD_DIR/nginx/* "$CACHE_DIR/bin/"
else
echo "-----> reuse nginx from cache"
mkdir -p $BUILD_DIR/nginx
cp -r $CACHE_DIR/bin/* $BUILD_DIR/nginx/
echo "-----> Reusing nginx binary from cache"
mkdir -p "$BUILD_DIR/nginx"
# shellcheck disable=SC2086
cp -r $CACHE_DIR/bin/* "$BUILD_DIR/nginx/"
fi
# Update the PATH
mkdir -p $BUILD_DIR/.profile.d
cat > $BUILD_DIR/.profile.d/nginx.sh <<"EOF"
mkdir -p "$BUILD_DIR/.profile.d"
cat > "$BUILD_DIR/.profile.d/nginx.sh" <<"EOF"
export PATH="$PATH:$HOME/nginx"
EOF
cd $CUR_DIR
cd "$CUR_DIR"
# Add support for app-nginx.conf.sigil
if [ -f "$BUILD_DIR/app-nginx.conf.sigil" ] ; then
echo "-----> Using user provided app-nginx.conf.sigil"
cp "$BUILD_DIR/app-nginx.conf.sigil" "$BUILD_DIR/nginx/app-nginx.conf.sigil"
# Test for user override on nginx config...
if [ -f $BUILD_DIR/nginx.conf.erb ] ; then
echo "-----> using user provided nginx.conf.erb"
cp $BUILD_DIR/nginx.conf.erb $BUILD_DIR/nginx/nginx.conf.erb
#rm $BUILD_DIR/nginx.conf.erb
# Allow deprecated nginx.conf.erb
elif [ -f "$BUILD_DIR/nginx.conf.erb" ] ; then
echo "-----> DEPRECATED: using user provided nginx.conf.erb"
cp "$BUILD_DIR/nginx.conf.erb" "$BUILD_DIR/nginx/nginx.conf.erb"
# ...else, force default file
else
echo "-----> using default nginx.conf.erb"
cp conf/nginx.conf.erb $BUILD_DIR/nginx/nginx.conf.erb
echo "-----> Using default app-nginx.conf.sigil"
cp conf/app-nginx.conf.sigil "$BUILD_DIR/nginx/app-nginx.conf.sigil"
fi
# build mime.types unless overridden by user
#if [ ! -f $BUILD_DIR/mime.types ] ; then
echo "-----> using default mime.types"
cp conf/mime.types $BUILD_DIR/nginx/mime.types
#fi
if [ -f "$BUILD_DIR/mime.types" ] ; then
echo "-----> Using user provided mime.types"
cp "$BUILD_DIR/mime.types" "$BUILD_DIR/nginx/mime.types"
else
echo "-----> Using default mime.types"
cp conf/mime.types "$BUILD_DIR/nginx/mime.types"
fi
# build a startup script
cat <<EOF >"$BUILD_DIR/start_nginx"
#!/usr/bin/env bash
rm -f /app/nginx/nginx.conf
if [[ -f /app/nginx/app-nginx.conf.sigil ]]; then
/app/sigil/sigil -f /app/nginx/app-nginx.conf.sigil NGINX_ROOT="\$NGINX_ROOT" PORT="\$PORT" | cat -s > /app/nginx/nginx.conf
else
erb /app/nginx/nginx.conf.erb > /app/nginx/nginx.conf
fi
exec /app/nginx/nginx -p /app/nginx -c /app/nginx/nginx.conf
EOF
chmod +x "$BUILD_DIR/start_nginx"

View File

@ -1,9 +1,10 @@
#!/usr/bin/env bash
set -e
# bin/detect <build-dir> <cache-dir>
set -eo pipefail; [[ $TRACE ]] && set -x
if [[ -f $1/.static ]]; then
echo ".static"
exit 0
else
# Exit early if app is clearly not an nginx app
if [[ ! -f "$1/.static" ]]; then
exit 1
fi
echo ".static"

View File

@ -1,10 +1,10 @@
#!/usr/bin/env bash
# bin/release <build-dir>
set -eo pipefail; [[ $TRACE ]] && set -x
cat <<EOF
---
addons:
addons: []
default_process_types:
web: /app/start_nginx
EOF

View File

@ -10,14 +10,20 @@ events {
http {
types_hash_max_size 2048;
include mime.types;
charset UTF-8;
server {
listen <%= ENV["PORT"] %>;
listen {{ $.PORT }};
server_name _;
<% if ENV["NGINX_ROOT"] %>
root /app/www/<%= ENV["NGINX_ROOT"] %>;
<% else %>
{{ if ne $.NGINX_ROOT "" }}
root /app/www/{{ $.NGINX_ROOT }};
{{ else }}
root /app/www;
<% end %>
{{ end }}
index index.html;
port_in_redirect off;
location / {
try_files $uri $uri/ =404;
}
}
}

View File

@ -14,6 +14,7 @@ types {
text/vnd.sun.j2me.app-descriptor jad;
text/vnd.wap.wml wml;
text/x-component htc;
text/vtt vtt;
image/png png;
image/tiff tif tiff;