mirror of
https://github.com/dokku/buildpack-nginx.git
synced 2025-06-26 18:40:45 +00:00
Compare commits
66 Commits
Author | SHA1 | Date | |
---|---|---|---|
806f8f5b0a | |||
4e4c3824c5 | |||
66fb51bbbc | |||
b07e670e70 | |||
070d37fe76 | |||
f90db13abf | |||
9e8c05da50 | |||
fe785a5a04 | |||
ec66a23266 | |||
dfcb3706f3 | |||
14c274186a | |||
863aab6f36 | |||
2f08d686ff | |||
936c024eac | |||
e833f6afad | |||
3221fc1b85 | |||
10d257b7ad | |||
b701653bda | |||
a6dd42bddb | |||
130b184ec3 | |||
e26103764e | |||
eeb2caf824 | |||
61bfffb6c6 | |||
bcbf61b1f5 | |||
8345d0a22a | |||
8560e5b5a9 | |||
aa191df661 | |||
7fe92f4821 | |||
25fb7889a5 | |||
6381244e26 | |||
7874622b04 | |||
0329f9e0ff | |||
043965bc7d | |||
3a1e442373 | |||
6a99e870e4 | |||
ad5e831e74 | |||
ed31137f94 | |||
a68149bce7 | |||
6a592755ff | |||
2b95cd179b | |||
9b7f098ced | |||
7154c020a1 | |||
a11d1ce303 | |||
53b41ec631 | |||
c8eef60b09 | |||
09fe857895 | |||
31dc4746e2 | |||
59ea0b94e1 | |||
301d00c751 | |||
28328e4d90 | |||
dce20c0a8f | |||
0e7bef86f9 | |||
faf2a70272 | |||
f981b138ed | |||
7794c2c36f | |||
22619107ab | |||
1a28ec8509 | |||
e28d2049e5 | |||
6a73313edb | |||
648d73fda6 | |||
1769636cc8 | |||
6a9c79f8d0 | |||
7a1b16877d | |||
c50c220ba4 | |||
c2273de014 | |||
91c41476ae |
8
.github/dependabot.yaml
vendored
Normal file
8
.github/dependabot.yaml
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
version: 2
|
||||||
|
updates:
|
||||||
|
- package-ecosystem: "github-actions"
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: daily
|
||||||
|
open-pull-requests-limit: 10
|
26
.github/workflows/build.yml
vendored
Normal file
26
.github/workflows/build.yml
vendored
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
name: 'review-app'
|
||||||
|
|
||||||
|
# yamllint disable-line rule:truthy
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- main
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
review_app:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Cloning repo
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Push to dokku
|
||||||
|
uses: dokku/github-action@master
|
||||||
|
with:
|
||||||
|
git_remote_url: 'ssh://dokku@dokku.com/nginx-buildpack'
|
||||||
|
# specify `--force` as a flag for git pushes
|
||||||
|
git_push_flags: '--force'
|
||||||
|
ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }}
|
23
.github/workflows/review-app-cleanup.yml
vendored
Normal file
23
.github/workflows/review-app-cleanup.yml
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
---
|
||||||
|
name: 'review-app-cleanup'
|
||||||
|
|
||||||
|
# yamllint disable-line rule:truthy
|
||||||
|
on:
|
||||||
|
# onl run this workflow on pull request events
|
||||||
|
pull_request:
|
||||||
|
types:
|
||||||
|
- closed
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
destroy_review_app:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Destroy the review app
|
||||||
|
uses: dokku/github-action@master
|
||||||
|
with:
|
||||||
|
# destroy a review app
|
||||||
|
command: review-apps:destroy
|
||||||
|
git_remote_url: 'ssh://dokku@dokku.com/nginx-buildpack'
|
||||||
|
# specify a name for the review app
|
||||||
|
review_app_name: nginx-buildpack-${{ github.event.pull_request.number }}
|
||||||
|
ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }}
|
28
.github/workflows/review-app.yml
vendored
Normal file
28
.github/workflows/review-app.yml
vendored
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
---
|
||||||
|
name: 'review-app'
|
||||||
|
|
||||||
|
# yamllint disable-line rule:truthy
|
||||||
|
on:
|
||||||
|
# onl run this workflow on pull request events
|
||||||
|
pull_request
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
review_app:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Cloning repo
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Push to dokku
|
||||||
|
uses: dokku/github-action@master
|
||||||
|
with:
|
||||||
|
# create a review app
|
||||||
|
command: review-apps:create
|
||||||
|
git_remote_url: 'ssh://dokku@dokku.com/nginx-buildpack'
|
||||||
|
# specify `--force` as a flag for git pushes
|
||||||
|
git_push_flags: '--force'
|
||||||
|
# specify a name for the review app
|
||||||
|
review_app_name: nginx-buildpack-${{ github.event.pull_request.number }}
|
||||||
|
ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }}
|
25
README.md
25
README.md
@ -30,7 +30,7 @@ You can override the nginx root via setting the `NGINX_ROOT` environment variabl
|
|||||||
# where the app is named `static-app`
|
# where the app is named `static-app`
|
||||||
# and the root dir is _site
|
# and the root dir is _site
|
||||||
dokku config:set static-app NGINX_ROOT=_site
|
dokku config:set static-app NGINX_ROOT=_site
|
||||||
````
|
```
|
||||||
|
|
||||||
### Default to index for history routing
|
### Default to index for history routing
|
||||||
|
|
||||||
@ -39,13 +39,34 @@ By default, this buildpack will 404 if a requested file is not found. For static
|
|||||||
```shell
|
```shell
|
||||||
# where the app is named `static-app`
|
# where the app is named `static-app`
|
||||||
# and the desired default response is index.html
|
# and the desired default response is index.html
|
||||||
dokku config:set static-app NGINX_ROOT=index.html
|
dokku config:set static-app NGINX_DEFAULT_REQUEST=index.html
|
||||||
|
```
|
||||||
|
|
||||||
|
### Custom nginx directives
|
||||||
|
|
||||||
|
You can configure following nginx directives via environment variables.
|
||||||
|
|
||||||
|
- `NGINX_WORKERS` : `worker_processes` directive
|
||||||
|
- `NGINX_WORKER_CONNECTIONS` : `worker_connections` directive
|
||||||
|
- `NGINX_CLIENT_BODY_TIMEOUT` : `client_body_timeout` directive
|
||||||
|
- `NGINX_CLIENT_MAX_BODY_SIZE` : `client_max_body_size` directive (in MB)
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# where the app is named `static-app`
|
||||||
|
dokku config:set static-app NGINX_WORKERS=4 \
|
||||||
|
NGINX_WORKER_CONNECTIONS=1024 \
|
||||||
|
NGINX_CLIENT_BODY_TIMEOUT=5 \
|
||||||
|
NGINX_CLIENT_MAX_BODY_SIZE=1
|
||||||
```
|
```
|
||||||
|
|
||||||
### Custom nginx config file
|
### Custom nginx config file
|
||||||
|
|
||||||
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.
|
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.
|
||||||
|
|
||||||
|
### Custom MIME types
|
||||||
|
|
||||||
|
Files will be served with a `Content-Type` according to a list of supported MIME types at [`conf/mime.types`](https://github.com/dokku/heroku-buildpack-nginx/blob/master/conf/mime.types). If you need to serve files of a MIME type not included in the list, you can provide your own `mime.types` file in the root.
|
||||||
|
|
||||||
## Credits and License
|
## 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.
|
||||||
|
28
bin/ci-pre-deploy
Normal file
28
bin/ci-pre-deploy
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
#!/bin/sh -l
|
||||||
|
if [ "$IS_REVIEW_APP" = "true" ]; then
|
||||||
|
git config --global user.name 'Dokku Bot'
|
||||||
|
git config --global user.email no-reply@dokku.com
|
||||||
|
|
||||||
|
echo "-----> Purging repo cache"
|
||||||
|
ssh "$SSH_REMOTE" -- repo:purge-cache "$APP_NAME"
|
||||||
|
|
||||||
|
echo "-----> Setting the test domain name"
|
||||||
|
ssh "$SSH_REMOTE" -- domains:set "$APP_NAME" "$APP_NAME.dokku.net"
|
||||||
|
|
||||||
|
echo "-----> Ensure test includes vendored app-nginx.conf.sigil"
|
||||||
|
cp conf/app-nginx.conf.sigil app-nginx.conf.sigil
|
||||||
|
git add app-nginx.conf.sigil
|
||||||
|
git commit -qm "feat: specify custom app-nginx.conf.sigil"
|
||||||
|
|
||||||
|
echo "-----> Ensure test includes vendored mime.types"
|
||||||
|
cp conf/mime.types mime.types
|
||||||
|
git add mime.types
|
||||||
|
git commit -qm "feat: specify custom mime.types"
|
||||||
|
|
||||||
|
echo "-----> Setting the buildpack to the current ref $GITHUB_HEAD_REF"
|
||||||
|
echo "https://github.com/${GITHUB_REPOSITORY}.git#$GITHUB_HEAD_REF" > .buildpacks
|
||||||
|
git add .buildpacks
|
||||||
|
git commit -qm "feat: specify $GITHUB_SHA as buildpack"
|
||||||
|
|
||||||
|
git rev-parse HEAD >ci-commit-override
|
||||||
|
fi
|
47
bin/compile
47
bin/compile
@ -1,25 +1,28 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# bin/compile <build-dir> <cache-dir>
|
# bin/compile <build-dir> <cache-dir>
|
||||||
set -eo pipefail; [[ $TRACE ]] && set -x
|
set -eo pipefail
|
||||||
|
[[ $TRACE ]] && set -x
|
||||||
|
|
||||||
NGINX_VERSION="1.17.0"
|
NGINX_VERSION="1.26.2"
|
||||||
NGINX_TARBALL="nginx-${NGINX_VERSION}.tar.gz"
|
NGINX_TARBALL="nginx-${NGINX_VERSION}.tar.gz"
|
||||||
PCRE_VERSION="8.45"
|
PCRE_VERSION="10.42"
|
||||||
PCRE_TARBALL="pcre-${PCRE_VERSION}.tar.gz"
|
PCRE_TARBALL="pcre2-${PCRE_VERSION}.tar.gz"
|
||||||
SIGIL_VERSION="0.4.0"
|
SIGIL_VERSION="0.10.1"
|
||||||
SIGIL_TARBALL="sigil_${SIGIL_VERSION}_Linux_x86_64.tgz"
|
SIGIL_TARBALL="gliderlabs-sigil_${SIGIL_VERSION}_linux_amd64.tgz"
|
||||||
ZLIB_VERSION="1.2.11"
|
ZLIB_VERSION="1.3"
|
||||||
ZLIB_TARBALL="zlib-${ZLIB_VERSION}.tar.gz"
|
ZLIB_TARBALL="zlib-${ZLIB_VERSION}.tar.gz"
|
||||||
|
|
||||||
suppress() {
|
suppress() {
|
||||||
|
/bin/rm --force /tmp/surpress.out 2>/dev/null
|
||||||
# shellcheck disable=SC2069
|
# 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;
|
"$@" 2>&1 >/tmp/surpress.out || cat /tmp/surpress.out
|
||||||
|
/bin/rm /tmp/surpress.out
|
||||||
}
|
}
|
||||||
|
|
||||||
# parse and derive params
|
# parse and derive params
|
||||||
BUILD_DIR=$1
|
BUILD_DIR=$1
|
||||||
CACHE_DIR=$2
|
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"
|
||||||
|
|
||||||
@ -48,13 +51,13 @@ cd "$CACHE_DIR"
|
|||||||
|
|
||||||
if [[ ! -d "${NGINX_TARBALL%.tar.gz}" ]]; then
|
if [[ ! -d "${NGINX_TARBALL%.tar.gz}" ]]; then
|
||||||
echo "-----> Download and unzip nginx ${NGINX_VERSION} via http"
|
echo "-----> Download and unzip nginx ${NGINX_VERSION} via http"
|
||||||
curl -sSL "http://nginx.org/download/${NGINX_TARBALL}" -o "${NGINX_TARBALL}"
|
curl -sSL "https://nginx.org/download/${NGINX_TARBALL}" -o "${NGINX_TARBALL}"
|
||||||
tar xzf "${NGINX_TARBALL}" && rm -f "${NGINX_TARBALL}"
|
tar xzf "${NGINX_TARBALL}" && rm -f "${NGINX_TARBALL}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ ! -d "${PCRE_TARBALL%.tar.gz}" ]]; then
|
if [[ ! -d "${PCRE_TARBALL%.tar.gz}" ]]; then
|
||||||
echo "-----> Download and unzip pcre ${PCRE_VERSION} via http"
|
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}"
|
curl -sSL "https://github.com/PCRE2Project/pcre2/releases/download/pcre2-${PCRE_VERSION}/${PCRE_TARBALL}" -o "${PCRE_TARBALL}"
|
||||||
tar xzf "${PCRE_TARBALL}" && rm -f "${PCRE_TARBALL}"
|
tar xzf "${PCRE_TARBALL}" && rm -f "${PCRE_TARBALL}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -64,14 +67,18 @@ if [[ ! -d "${ZLIB_TARBALL%.tar.gz}" ]]; then
|
|||||||
tar xzf "${ZLIB_TARBALL}" && rm -rf "${ZLIB_TARBALL}"
|
tar xzf "${ZLIB_TARBALL}" && rm -rf "${ZLIB_TARBALL}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ ! -f "sigil" ]]; then
|
if [[ ! -f "gliderlabs-sigil-amd64" ]]; then
|
||||||
echo "-----> Download and unzip sigil ${SIGIL_VERSION} via http"
|
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}"
|
curl -sSL "https://github.com/gliderlabs/sigil/releases/download/v${SIGIL_VERSION}/gliderlabs-sigil_${SIGIL_VERSION}_linux_amd64.tgz" -o "${SIGIL_TARBALL}"
|
||||||
tar xzf "${SIGIL_TARBALL}" && rm -rf "${SIGIL_TARBALL}"
|
tar xzf "${SIGIL_TARBALL}" && rm -rf "${SIGIL_TARBALL}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir -p "$BUILD_DIR/sigil"
|
mkdir -p "$BUILD_DIR/sigil"
|
||||||
cp -r sigil "$BUILD_DIR/sigil/"
|
if [[ ! -f "gliderlabs-sigil-amd64" ]]; then
|
||||||
|
echo " ! Missing gliderlabs-sigil-amd64 binary"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
cp -r gliderlabs-sigil-amd64 "$BUILD_DIR/sigil/sigil"
|
||||||
|
|
||||||
cd "nginx-${NGINX_VERSION}"
|
cd "nginx-${NGINX_VERSION}"
|
||||||
if [[ ! -f "${CACHE_DIR}/bin/nginx" ]]; then
|
if [[ ! -f "${CACHE_DIR}/bin/nginx" ]]; then
|
||||||
@ -80,7 +87,7 @@ if [[ ! -f "${CACHE_DIR}/bin/nginx" ]]; then
|
|||||||
suppress ./configure \
|
suppress ./configure \
|
||||||
--with-cpu-opt=generic \
|
--with-cpu-opt=generic \
|
||||||
--prefix="$BUILD_DIR/nginx" \
|
--prefix="$BUILD_DIR/nginx" \
|
||||||
--with-pcre=../pcre-${PCRE_VERSION} \
|
--with-pcre=../pcre2-${PCRE_VERSION} \
|
||||||
--sbin-path=. \
|
--sbin-path=. \
|
||||||
--pid-path=./nginx.pid \
|
--pid-path=./nginx.pid \
|
||||||
--conf-path=./nginx.conf \
|
--conf-path=./nginx.conf \
|
||||||
@ -130,19 +137,19 @@ fi
|
|||||||
|
|
||||||
# Update the PATH
|
# Update the PATH
|
||||||
mkdir -p "$BUILD_DIR/.profile.d"
|
mkdir -p "$BUILD_DIR/.profile.d"
|
||||||
cat > "$BUILD_DIR/.profile.d/nginx.sh" <<"EOF"
|
cat >"$BUILD_DIR/.profile.d/nginx.sh" <<"EOF"
|
||||||
export PATH="$PATH:$HOME/nginx"
|
export PATH="$PATH:$HOME/nginx"
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
cd "$CUR_DIR"
|
cd "$CUR_DIR"
|
||||||
|
|
||||||
# Add support for app-nginx.conf.sigil
|
# Add support for app-nginx.conf.sigil
|
||||||
if [ -f "$BUILD_DIR/app-nginx.conf.sigil" ] ; then
|
if [ -f "$BUILD_DIR/app-nginx.conf.sigil" ]; then
|
||||||
echo "-----> Using user provided app-nginx.conf.sigil"
|
echo "-----> Using user provided app-nginx.conf.sigil"
|
||||||
cp "$BUILD_DIR/app-nginx.conf.sigil" "$BUILD_DIR/nginx/app-nginx.conf.sigil"
|
cp "$BUILD_DIR/app-nginx.conf.sigil" "$BUILD_DIR/nginx/app-nginx.conf.sigil"
|
||||||
|
|
||||||
# Allow deprecated nginx.conf.erb
|
# Allow deprecated nginx.conf.erb
|
||||||
elif [ -f "$BUILD_DIR/nginx.conf.erb" ] ; then
|
elif [ -f "$BUILD_DIR/nginx.conf.erb" ]; then
|
||||||
echo "-----> DEPRECATED: Using user provided nginx.conf.erb"
|
echo "-----> DEPRECATED: Using user provided nginx.conf.erb"
|
||||||
cp "$BUILD_DIR/nginx.conf.erb" "$BUILD_DIR/nginx/nginx.conf.erb"
|
cp "$BUILD_DIR/nginx.conf.erb" "$BUILD_DIR/nginx/nginx.conf.erb"
|
||||||
|
|
||||||
@ -153,7 +160,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# build mime.types unless overridden by user
|
# build mime.types unless overridden by user
|
||||||
if [ -f "$BUILD_DIR/mime.types" ] ; then
|
if [ -f "$BUILD_DIR/mime.types" ]; then
|
||||||
echo "-----> Using user provided mime.types"
|
echo "-----> Using user provided mime.types"
|
||||||
cp "$BUILD_DIR/mime.types" "$BUILD_DIR/nginx/mime.types"
|
cp "$BUILD_DIR/mime.types" "$BUILD_DIR/nginx/mime.types"
|
||||||
|
|
||||||
@ -167,7 +174,7 @@ cat <<EOF >"$BUILD_DIR/start_nginx"
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
rm -f /app/nginx/nginx.conf
|
rm -f /app/nginx/nginx.conf
|
||||||
if [[ -f /app/nginx/app-nginx.conf.sigil ]]; then
|
if [[ -f /app/nginx/app-nginx.conf.sigil ]]; then
|
||||||
/app/sigil/sigil -f /app/nginx/app-nginx.conf.sigil NGINX_ROOT="\$NGINX_ROOT" NGINX_DEFAULT_REQUEST="\$NGINX_DEFAULT_REQUEST" PORT="\$PORT" | cat -s > /app/nginx/nginx.conf
|
/app/sigil/sigil -f /app/nginx/app-nginx.conf.sigil NGINX_ROOT="\$NGINX_ROOT" NGINX_DEFAULT_REQUEST="\$NGINX_DEFAULT_REQUEST" NGINX_WORKERS="\$NGINX_WORKERS" NGINX_WORKER_CONNECTIONS="\$NGINX_WORKER_CONNECTIONS" NGINX_CLIENT_BODY_TIMEOUT="\$NGINX_CLIENT_BODY_TIMEOUT" NGINX_CLIENT_MAX_BODY_SIZE="\$NGINX_CLIENT_MAX_BODY_SIZE" PORT="\$PORT" | cat -s > /app/nginx/nginx.conf
|
||||||
else
|
else
|
||||||
erb /app/nginx/nginx.conf.erb > /app/nginx/nginx.conf
|
erb /app/nginx/nginx.conf.erb > /app/nginx/nginx.conf
|
||||||
fi
|
fi
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# bin/detect <build-dir> <cache-dir>
|
# bin/detect <build-dir> <cache-dir>
|
||||||
set -eo pipefail; [[ $TRACE ]] && set -x
|
set -eo pipefail
|
||||||
|
[[ $TRACE ]] && set -x
|
||||||
|
|
||||||
# Exit early if app is clearly not an nginx app
|
# Exit early if app is clearly not an nginx app
|
||||||
if [[ ! -f "$1/.static" ]]; then
|
if [[ ! -f "$1/.static" ]]; then
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# bin/release <build-dir>
|
# bin/release <build-dir>
|
||||||
set -eo pipefail; [[ $TRACE ]] && set -x
|
set -eo pipefail
|
||||||
|
[[ $TRACE ]] && set -x
|
||||||
|
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
---
|
---
|
||||||
|
@ -1,19 +1,38 @@
|
|||||||
worker_processes 1;
|
{{ if ne $.NGINX_WORKERS "" }}
|
||||||
|
worker_processes {{ $.NGINX_WORKERS }};
|
||||||
|
{{ else }}
|
||||||
|
worker_processes 1;
|
||||||
|
{{ end }}
|
||||||
error_log stderr;
|
error_log stderr;
|
||||||
pid nginx.pid;
|
pid nginx.pid;
|
||||||
daemon off;
|
daemon off;
|
||||||
|
|
||||||
events {
|
events {
|
||||||
worker_connections 768;
|
{{ if ne $.NGINX_WORKER_CONNECTIONS "" }}
|
||||||
|
worker_connections {{ $.NGINX_WORKER_CONNECTIONS }};
|
||||||
|
{{ else }}
|
||||||
|
worker_connections 768;
|
||||||
|
{{ end }}
|
||||||
}
|
}
|
||||||
|
|
||||||
http {
|
http {
|
||||||
|
{{ if ne $.NGINX_CLIENT_BODY_TIMEOUT "" }}
|
||||||
|
client_body_timeout {{ $.NGINX_CLIENT_BODY_TIMEOUT }};
|
||||||
|
{{ else }}
|
||||||
|
client_body_timeout 5;
|
||||||
|
{{ end }}
|
||||||
types_hash_max_size 2048;
|
types_hash_max_size 2048;
|
||||||
include mime.types;
|
include mime.types;
|
||||||
charset UTF-8;
|
charset UTF-8;
|
||||||
|
|
||||||
server {
|
server {
|
||||||
listen {{ $.PORT }};
|
listen {{ $.PORT }};
|
||||||
server_name _;
|
server_name _;
|
||||||
|
{{ if ne $.NGINX_CLIENT_MAX_BODY_SIZE "" }}
|
||||||
|
client_max_body_size {{ $.NGINX_CLIENT_MAX_BODY_SIZE }}M;
|
||||||
|
{{ else }}
|
||||||
|
client_max_body_size 1M;
|
||||||
|
{{ end }}
|
||||||
{{ if ne $.NGINX_ROOT "" }}
|
{{ if ne $.NGINX_ROOT "" }}
|
||||||
root /app/www/{{ $.NGINX_ROOT }};
|
root /app/www/{{ $.NGINX_ROOT }};
|
||||||
{{ else }}
|
{{ else }}
|
||||||
|
@ -39,6 +39,7 @@ types {
|
|||||||
application/vnd.wap.wmlc wmlc;
|
application/vnd.wap.wmlc wmlc;
|
||||||
application/vnd.google-earth.kml+xml kml;
|
application/vnd.google-earth.kml+xml kml;
|
||||||
application/vnd.google-earth.kmz kmz;
|
application/vnd.google-earth.kmz kmz;
|
||||||
|
application/wasm wasm;
|
||||||
application/x-7z-compressed 7z;
|
application/x-7z-compressed 7z;
|
||||||
application/x-cocoa cco;
|
application/x-cocoa cco;
|
||||||
application/x-java-archive-diff jardiff;
|
application/x-java-archive-diff jardiff;
|
||||||
|
45
site/index.html
Normal file
45
site/index.html
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Example Domain</title>
|
||||||
|
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<style type="text/css">
|
||||||
|
body {
|
||||||
|
background-color: #f0f0f2;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||||
|
}
|
||||||
|
div {
|
||||||
|
width: 600px;
|
||||||
|
margin: 5em auto;
|
||||||
|
padding: 2em;
|
||||||
|
background-color: #fdfdff;
|
||||||
|
border-radius: 0.5em;
|
||||||
|
box-shadow: 2px 3px 7px 2px rgba(0,0,0,0.02);
|
||||||
|
}
|
||||||
|
a:link, a:visited {
|
||||||
|
color: #38488f;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
@media (max-width: 700px) {
|
||||||
|
div {
|
||||||
|
margin: 0 auto;
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div>
|
||||||
|
<h1>Example Domain</h1>
|
||||||
|
<p>This domain is for use in illustrative examples in documents. You may use this
|
||||||
|
domain in literature without prior coordination or asking for permission.</p>
|
||||||
|
<p><a href="https://www.iana.org/domains/example">More information...</a></p>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
2
site/robots.txt
Normal file
2
site/robots.txt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
User-agent: *
|
||||||
|
Disallow: /
|
Reference in New Issue
Block a user