mirror of
				https://github.com/dokku/buildpack-nginx.git
				synced 2025-11-03 21:26:30 +00:00 
			
		
		
		
	Compare commits
	
		
			146 Commits
		
	
	
		
			v3
			...
			aa191df661
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 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 | |||
| 90c8bd9365 | |||
| 89196adbf1 | |||
| dbbbcc2c3e | |||
| daa9549fb7 | |||
| 66b91f18e4 | |||
| 6c1abc0547 | |||
| 6672b6257a | |||
| 758bf7c39c | |||
| 5a16fba7d1 | |||
| 8cb1d16d7e | |||
| aa0ebb8f47 | |||
| d5048c5fe3 | |||
| ec734ad787 | |||
| 150d82865b | |||
| cd84b47fd1 | |||
| e06b1e4df1 | |||
| 0d2e4c3ee6 | |||
| 1f534f7bc6 | |||
| 149f06c3b3 | |||
| 99d72cc005 | |||
| 46d850193d | |||
| 9eae441352 | |||
| b0ce745a1b | |||
| fe3a5dc54f | |||
| ad8d7c4261 | |||
| e8e0807a2d | |||
| 673fd38bb2 | |||
| 1945cf3645 | |||
| a9b3cb1767 | |||
| c6b3e74808 | |||
| ffaa249c5c | |||
| e31fee35bb | |||
| 0b290ce1f6 | |||
| ec0560066c | |||
| f873fe2024 | |||
| 9a82e569c1 | |||
| 6ecc56df72 | |||
| ed184f98fd | |||
| 2535bd6ebb | |||
| 6d1ae20708 | |||
| dded3b0717 | |||
| d4f93ae2b3 | |||
| 51f642dcff | |||
| 0a46959ef7 | |||
| c8ab63c69b | |||
| c2748f137e | |||
| dd3ac20c6d | |||
| 8848e945b9 | |||
| e7684a0f2c | |||
| fb081cabb2 | |||
| b69c1f3854 | |||
| 9c7cde74ad | |||
| c4c93aebe0 | |||
| 8348cbde99 | |||
| 1b0c929144 | |||
| ed2e482ed9 | |||
| aa23156a8e | |||
| c4ad67f9de | |||
| 7251f38a51 | |||
| 8797219a4b | |||
| c947e409e8 | |||
| 28d1a580cf | |||
| b9842399a3 | |||
| bb20210245 | |||
| d3a90d7520 | |||
| fabd871741 | |||
| 6430fa286b | |||
| b4bd0c0b1f | |||
| 06888793b1 | |||
| 7e7e9be442 | |||
| fd73b73748 | |||
| e1efa9a3a2 | |||
| f1d835dd90 | |||
| ca7b083aad | |||
| b7d61bbea4 | |||
| d4f83febf9 | |||
| bb6e9d398d | |||
| 513791b391 | |||
| 2e9a75e96b | |||
| 9c43925fac | |||
| 640f6d396a | |||
| 3a20517687 | |||
| afa0a94343 | |||
| ce6895ef38 | |||
| 6b7fd744ce | |||
| 9d273c7607 | |||
| 7d773187bb | |||
| 847b25b51d | |||
| 12fe84ae6b | |||
| d1cccfc747 | |||
| ccbb3d7ed5 | |||
| 61c95d52d8 | |||
| 805e24be7f | |||
| 624cd06847 | |||
| 7a023ab687 | |||
| 69e450813e | |||
| b1370b9c56 | |||
| caa17b7718 | |||
| 9da922ee28 | |||
| 770f4feb42 | |||
| 56bd6c514d | |||
| 23e4a8ab42 | |||
| ebbc9098d9 | |||
| 1955dcaa72 | |||
| 29bc30b8d3 | |||
| 969446ca04 | 
							
								
								
									
										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@v2
 | 
				
			||||||
 | 
					        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 }}
 | 
				
			||||||
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					.idea
 | 
				
			||||||
							
								
								
									
										20
									
								
								Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								Makefile
									
									
									
									
									
										Normal 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
 | 
				
			||||||
							
								
								
									
										54
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										54
									
								
								README.md
									
									
									
									
									
								
							@ -1,17 +1,53 @@
 | 
				
			|||||||
# NGINX Buildpack for Dokku - Hosting static pages
 | 
					# heroku-buildpack-nginx
 | 
				
			||||||
This buildpack has been successfully run on Digital Ocean instances of Ubuntu 14.04 (Status: Jan 2015). It might also work with different configurations.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Purpose
 | 
					This is the official dokku buildpack for static websites, powered by nginx.
 | 
				
			||||||
`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.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Usage
 | 
					## 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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Custom nginx root
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You can override the nginx root via setting the `NGINX_ROOT` environment variable. This should be a relative path in your repository.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```shell
 | 
				
			||||||
 | 
					# where the app is named `static-app`
 | 
				
			||||||
 | 
					# and the root dir is _site
 | 
				
			||||||
 | 
					dokku config:set static-app NGINX_ROOT=_site
 | 
				
			||||||
 | 
					````
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Default to index for history routing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					By default, this buildpack will 404 if a requested file is not found. For static sites that use the browser's history router to show the correct context, setting the `NGINX_DEFAULT_REQUEST` to a specific file will override this.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```shell
 | 
				
			||||||
 | 
					# where the app is named `static-app`
 | 
				
			||||||
 | 
					# and the desired default response is index.html
 | 
				
			||||||
 | 
					dokku config:set static-app NGINX_ROOT=index.html
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[Florian Heinemann](http://twitter.com/TheSumOfAll/)
 | 
					[Florian Heinemann](http://twitter.com/TheSumOfAll/)
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										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
 | 
				
			||||||
							
								
								
									
										153
									
								
								bin/compile
									
									
									
									
									
								
							
							
						
						
									
										153
									
								
								bin/compile
									
									
									
									
									
								
							@ -1,85 +1,107 @@
 | 
				
			|||||||
#!/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 -e
 | 
					NGINX_VERSION="1.23.1"
 | 
				
			||||||
set -o pipefail
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Nginx 1.6.2
 | 
					 | 
				
			||||||
NGINX_VERSION="1.6.2"
 | 
					 | 
				
			||||||
NGINX_TARBALL="nginx-${NGINX_VERSION}.tar.gz"
 | 
					NGINX_TARBALL="nginx-${NGINX_VERSION}.tar.gz"
 | 
				
			||||||
PCRE_VERSION="8.38"
 | 
					PCRE_VERSION="10.40"
 | 
				
			||||||
PCRE_TARBALL="pcre-${PCRE_VERSION}.tar.gz"
 | 
					PCRE_TARBALL="pcre2-${PCRE_VERSION}.tar.gz"
 | 
				
			||||||
ZLIB_VERSION="1.2.8"
 | 
					SIGIL_VERSION="0.9.0"
 | 
				
			||||||
 | 
					SIGIL_TARBALL="gliderlabs-sigil_${SIGIL_VERSION}_linux_amd64.tgz"
 | 
				
			||||||
 | 
					ZLIB_VERSION="1.2.12"
 | 
				
			||||||
ZLIB_TARBALL="zlib-${ZLIB_VERSION}.tar.gz"
 | 
					ZLIB_TARBALL="zlib-${ZLIB_VERSION}.tar.gz"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					suppress() {
 | 
				
			||||||
 | 
					  /bin/rm --force /tmp/surpress.out 2>/dev/null
 | 
				
			||||||
 | 
					  # shellcheck disable=SC2069
 | 
				
			||||||
 | 
					  "$@" 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"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if [[ ! -e "$BUILD_DIR/www" ]]; then
 | 
					if [[ ! -e "${BUILD_DIR}/www" ]]; then
 | 
				
			||||||
  echo "-----> copy static files to www"
 | 
					  echo "-----> Copy static files to www"
 | 
				
			||||||
  rm -rf $CACHE_DIR/www
 | 
					  rm -rf "${CACHE_DIR}/www"
 | 
				
			||||||
  mkdir -p $CACHE_DIR/www
 | 
					  mkdir -p "${CACHE_DIR}/www"
 | 
				
			||||||
  mv $BUILD_DIR/* $CACHE_DIR/www
 | 
					
 | 
				
			||||||
  mkdir -p $BUILD_DIR/www
 | 
					  # shellcheck disable=SC2086
 | 
				
			||||||
  mv $CACHE_DIR/www/* $BUILD_DIR/www
 | 
					  mv $BUILD_DIR/* "${CACHE_DIR}/www"
 | 
				
			||||||
  [[ -f "$BUILD_DIR/www/CHECKS" ]] && mv $BUILD_DIR/www/CHECKS $BUILD_DIR
 | 
					  mkdir -p "${BUILD_DIR}/www"
 | 
				
			||||||
  rm -rf $CACHE_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
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
cd $CACHE_DIR
 | 
					cd "$CACHE_DIR"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if [[ ! -d "${NGINX_TARBALL%.tar.gz}" ]]; then
 | 
					if [[ ! -d "${NGINX_TARBALL%.tar.gz}" ]]; then
 | 
				
			||||||
  echo "-----> download and unzip nginx"
 | 
					  echo "-----> Download and unzip nginx ${NGINX_VERSION} via http"
 | 
				
			||||||
  curl "http://nginx.org/download/${NGINX_TARBALL}" -o "${NGINX_TARBALL}"
 | 
					  curl -sSL "http://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"
 | 
					  echo "-----> Download and unzip pcre ${PCRE_VERSION} via http"
 | 
				
			||||||
  curl "http://ftp.csx.cam.ac.uk/pub/software/programming/pcre/${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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if [[ ! -d "${ZLIB_TARBALL%.tar.gz}" ]]; then
 | 
					if [[ ! -d "${ZLIB_TARBALL%.tar.gz}" ]]; then
 | 
				
			||||||
  echo "-----> download and unzip zlib"
 | 
					  echo "-----> Download and unzip zlib ${ZLIB_VERSION} via http"
 | 
				
			||||||
  curl "http://zlib.net/${ZLIB_TARBALL}" -o "${ZLIB_TARBALL}"
 | 
					  curl -sSL "https://github.com/madler/zlib/archive/v${ZLIB_VERSION}.tar.gz" -o "${ZLIB_TARBALL}"
 | 
				
			||||||
  tar xzf "${ZLIB_TARBALL}" && rm -rf "${ZLIB_TARBALL}"
 | 
					  tar xzf "${ZLIB_TARBALL}" && rm -rf "${ZLIB_TARBALL}"
 | 
				
			||||||
fi
 | 
					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}/gliderlabs-sigil_${SIGIL_VERSION}_linux_amd64.tgz" -o "${SIGIL_TARBALL}"
 | 
				
			||||||
 | 
					  tar xzf "${SIGIL_TARBALL}" && rm -rf "${SIGIL_TARBALL}"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mkdir -p "$BUILD_DIR/sigil"
 | 
				
			||||||
 | 
					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
 | 
				
			||||||
  echo "-----> compile static nginx"
 | 
					  echo "-----> Compiling static nginx binary"
 | 
				
			||||||
  mkdir $BUILD_DIR/nginx
 | 
					  mkdir "$BUILD_DIR/nginx"
 | 
				
			||||||
  ./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 \
 | 
				
			||||||
    --with-ld-opt="-static" \
 | 
					    --with-ld-opt="-static" \
 | 
				
			||||||
    --with-http_spdy_module \
 | 
					 | 
				
			||||||
    --with-http_stub_status_module \
 | 
					    --with-http_stub_status_module \
 | 
				
			||||||
    --with-http_gzip_static_module \
 | 
					    --with-http_gzip_static_module \
 | 
				
			||||||
    --with-file-aio \
 | 
					    --with-file-aio \
 | 
				
			||||||
    --with-zlib=../zlib-${ZLIB_VERSION} \
 | 
					    --with-zlib=../zlib-${ZLIB_VERSION} \
 | 
				
			||||||
    --with-pcre \
 | 
					    --with-pcre \
 | 
				
			||||||
    --with-cc-opt="-O2 -static -static-libgcc" \
 | 
					    --with-cc-opt="-O2 -static -static-libgcc" \
 | 
				
			||||||
    --without-http_charset_module \
 | 
					 | 
				
			||||||
    --without-http_ssi_module \
 | 
					    --without-http_ssi_module \
 | 
				
			||||||
    --without-http_userid_module \
 | 
					    --without-http_userid_module \
 | 
				
			||||||
    --without-http_access_module \
 | 
					    --without-http_access_module \
 | 
				
			||||||
    --without-http_auth_basic_module \
 | 
					 | 
				
			||||||
    --without-http_autoindex_module \
 | 
					    --without-http_autoindex_module \
 | 
				
			||||||
    --without-http_geo_module \
 | 
					    --without-http_geo_module \
 | 
				
			||||||
    --without-http_map_module \
 | 
					    --without-http_map_module \
 | 
				
			||||||
    --without-http_split_clients_module \
 | 
					    --without-http_split_clients_module \
 | 
				
			||||||
    --without-http_referer_module \
 | 
					    --without-http_referer_module \
 | 
				
			||||||
    --without-http_proxy_module \
 | 
					 | 
				
			||||||
    --without-http_fastcgi_module \
 | 
					    --without-http_fastcgi_module \
 | 
				
			||||||
    --without-http_uwsgi_module \
 | 
					    --without-http_uwsgi_module \
 | 
				
			||||||
    --without-http_scgi_module \
 | 
					    --without-http_scgi_module \
 | 
				
			||||||
@ -91,46 +113,67 @@ if [[ ! -f "${CACHE_DIR}/bin/nginx" ]]; then
 | 
				
			|||||||
    --without-http_upstream_keepalive_module \
 | 
					    --without-http_upstream_keepalive_module \
 | 
				
			||||||
    --without-mail_pop3_module \
 | 
					    --without-mail_pop3_module \
 | 
				
			||||||
    --without-mail_imap_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
 | 
					  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/
 | 
					  rm -rf "${CACHE_DIR:?}/bin" && mkdir -p "$CACHE_DIR/bin/"
 | 
				
			||||||
  cp -r $BUILD_DIR/nginx/* $CACHE_DIR/bin/
 | 
					  # shellcheck disable=SC2086
 | 
				
			||||||
 | 
					  cp -r $BUILD_DIR/nginx/* "$CACHE_DIR/bin/"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
else
 | 
					else
 | 
				
			||||||
  echo "-----> reuse nginx from cache"
 | 
					  echo "-----> Reusing nginx binary from cache"
 | 
				
			||||||
  mkdir -p $BUILD_DIR/nginx
 | 
					  mkdir -p "$BUILD_DIR/nginx"
 | 
				
			||||||
  cp -r $CACHE_DIR/bin/* $BUILD_DIR/nginx/
 | 
					  # shellcheck disable=SC2086
 | 
				
			||||||
 | 
					  cp -r $CACHE_DIR/bin/* "$BUILD_DIR/nginx/"
 | 
				
			||||||
fi
 | 
					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"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# build nginx config unless overridden by user
 | 
					# Add support for app-nginx.conf.sigil
 | 
				
			||||||
#if [ ! -f $BUILD_DIR/nginx/nginx.conf ] ; then
 | 
					if [ -f "$BUILD_DIR/app-nginx.conf.sigil" ]; then
 | 
				
			||||||
echo "-----> using default nginx.conf.erb"
 | 
					  echo "-----> Using user provided app-nginx.conf.sigil"
 | 
				
			||||||
cp conf/nginx.conf.erb $BUILD_DIR/nginx/nginx.conf.erb
 | 
					  cp "$BUILD_DIR/app-nginx.conf.sigil" "$BUILD_DIR/nginx/app-nginx.conf.sigil"
 | 
				
			||||||
#fi
 | 
					
 | 
				
			||||||
 | 
					# 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 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
 | 
					# build mime.types unless overridden by user
 | 
				
			||||||
#if [ ! -f $BUILD_DIR/mime.types ] ; then
 | 
					if [ -f "$BUILD_DIR/mime.types" ]; then
 | 
				
			||||||
echo "-----> using default mime.types"
 | 
					  echo "-----> Using user provided mime.types"
 | 
				
			||||||
cp conf/mime.types $BUILD_DIR/nginx/mime.types
 | 
					  cp "$BUILD_DIR/mime.types" "$BUILD_DIR/nginx/mime.types"
 | 
				
			||||||
#fi
 | 
					
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					  echo "-----> Using default mime.types"
 | 
				
			||||||
 | 
					  cp conf/mime.types "$BUILD_DIR/nginx/mime.types"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# build a startup script
 | 
					# build a startup script
 | 
				
			||||||
cat <<EOF >"$BUILD_DIR/start_nginx"
 | 
					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
 | 
				
			||||||
 | 
					  /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
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
  erb /app/nginx/nginx.conf.erb > /app/nginx/nginx.conf
 | 
					  erb /app/nginx/nginx.conf.erb > /app/nginx/nginx.conf
 | 
				
			||||||
exec nginx -p /app/nginx -c /app/nginx/nginx.conf
 | 
					fi
 | 
				
			||||||
 | 
					exec /app/nginx/nginx -p /app/nginx -c /app/nginx/nginx.conf
 | 
				
			||||||
EOF
 | 
					EOF
 | 
				
			||||||
chmod +x "$BUILD_DIR/start_nginx"
 | 
					chmod +x "$BUILD_DIR/start_nginx"
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										12
									
								
								bin/detect
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								bin/detect
									
									
									
									
									
								
							@ -1,9 +1,11 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
set -e
 | 
					# bin/detect <build-dir> <cache-dir>
 | 
				
			||||||
 | 
					set -eo pipefail
 | 
				
			||||||
 | 
					[[ $TRACE ]] && set -x
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if [[ -f $1/.static ]]; then
 | 
					# Exit early if app is clearly not an nginx app
 | 
				
			||||||
  echo ".static"
 | 
					if [[ ! -f "$1/.static" ]]; then
 | 
				
			||||||
  exit 0
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
  exit 1
 | 
					  exit 1
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo ".static"
 | 
				
			||||||
 | 
				
			|||||||
@ -1,10 +1,11 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
# bin/release <build-dir>
 | 
					# bin/release <build-dir>
 | 
				
			||||||
 | 
					set -eo pipefail
 | 
				
			||||||
 | 
					[[ $TRACE ]] && set -x
 | 
				
			||||||
 | 
					
 | 
				
			||||||
cat <<EOF
 | 
					cat <<EOF
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					addons: []
 | 
				
			||||||
addons:
 | 
					 | 
				
			||||||
default_process_types:
 | 
					default_process_types:
 | 
				
			||||||
  web: /app/start_nginx
 | 
					  web: /app/start_nginx
 | 
				
			||||||
EOF
 | 
					EOF
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										33
									
								
								conf/app-nginx.conf.sigil
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								conf/app-nginx.conf.sigil
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,33 @@
 | 
				
			|||||||
 | 
					worker_processes 1;
 | 
				
			||||||
 | 
					error_log stderr;
 | 
				
			||||||
 | 
					pid nginx.pid;
 | 
				
			||||||
 | 
					daemon off;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					events {
 | 
				
			||||||
 | 
					  worker_connections 768;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					http {
 | 
				
			||||||
 | 
					  types_hash_max_size 2048;
 | 
				
			||||||
 | 
					  include mime.types;
 | 
				
			||||||
 | 
					  charset UTF-8;
 | 
				
			||||||
 | 
					  server {
 | 
				
			||||||
 | 
					    listen {{ $.PORT }};
 | 
				
			||||||
 | 
					    server_name  _;
 | 
				
			||||||
 | 
					    {{ if ne $.NGINX_ROOT "" }}
 | 
				
			||||||
 | 
					      root /app/www/{{ $.NGINX_ROOT }};
 | 
				
			||||||
 | 
					    {{ else }}
 | 
				
			||||||
 | 
					      root /app/www;
 | 
				
			||||||
 | 
					    {{ end }}
 | 
				
			||||||
 | 
					    index index.html;
 | 
				
			||||||
 | 
					    port_in_redirect off;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    location / {
 | 
				
			||||||
 | 
					      {{ if ne $.NGINX_DEFAULT_REQUEST "" }}
 | 
				
			||||||
 | 
					        try_files $uri $uri/ /{{ $.NGINX_DEFAULT_REQUEST }};
 | 
				
			||||||
 | 
					      {{ else }}
 | 
				
			||||||
 | 
					        try_files $uri $uri/ =404;
 | 
				
			||||||
 | 
					      {{ end }}
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -14,6 +14,7 @@ types {
 | 
				
			|||||||
    text/vnd.sun.j2me.app-descriptor      jad;
 | 
					    text/vnd.sun.j2me.app-descriptor      jad;
 | 
				
			||||||
    text/vnd.wap.wml                      wml;
 | 
					    text/vnd.wap.wml                      wml;
 | 
				
			||||||
    text/x-component                      htc;
 | 
					    text/x-component                      htc;
 | 
				
			||||||
 | 
					    text/vtt                              vtt;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    image/png                             png;
 | 
					    image/png                             png;
 | 
				
			||||||
    image/tiff                            tif tiff;
 | 
					    image/tiff                            tif tiff;
 | 
				
			||||||
 | 
				
			|||||||
@ -1,19 +0,0 @@
 | 
				
			|||||||
worker_processes 1;
 | 
					 | 
				
			||||||
error_log stderr;
 | 
					 | 
				
			||||||
pid nginx.pid;
 | 
					 | 
				
			||||||
daemon off;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
events {
 | 
					 | 
				
			||||||
  worker_connections 768;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
http {
 | 
					 | 
				
			||||||
  types_hash_max_size 2048;
 | 
					 | 
				
			||||||
  include mime.types;
 | 
					 | 
				
			||||||
  server {
 | 
					 | 
				
			||||||
    listen <%= ENV["PORT"] %>;
 | 
					 | 
				
			||||||
    server_name  _;
 | 
					 | 
				
			||||||
    root /app/www;
 | 
					 | 
				
			||||||
    index index.html;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										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