1
0
mirror of https://github.com/dokku/buildpack-nginx.git synced 2025-06-26 10:30:46 +00:00

66 Commits
v17 ... master

Author SHA1 Message Date
806f8f5b0a Merge pull request #79 from hico-horiuchi/master
feat: support nginx custom parameters
2024-09-21 23:16:21 -04:00
4e4c3824c5 feat: support nginx custom parameters 2024-09-21 15:53:09 +09:00
66fb51bbbc Merge pull request #76 from andipabst/nginx-version-and-https
Nginx version 1.26.2 and download nginx via https
2024-09-14 01:35:34 -04:00
b07e670e70 Merge pull request #78 from dokku/dependabot/github_actions/actions/checkout-4
chore(deps): bump actions/checkout from 2 to 4
2024-09-14 01:33:19 -04:00
070d37fe76 chore(deps): bump actions/checkout from 2 to 4
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-14 05:32:55 +00:00
f90db13abf Merge pull request #77 from dokku/josegonzalez-patch-1
feat: add dependabot support
2024-09-14 01:32:16 -04:00
9e8c05da50 feat: add dependabot support 2024-09-14 01:31:32 -04:00
fe785a5a04 download nginx version 1.26.2 via https 2024-09-03 18:25:13 +02:00
ec66a23266 Merge pull request #74 from pablobm/explain-mimetypes-file
Document: users can provide their own `mime.types`
2024-01-19 20:11:38 -05:00
dfcb3706f3 Doc: users can provide their own mime.types 2023-12-19 08:18:45 +00:00
14c274186a Merge pull request #73 from dokku/deploy-on-ci
feat: always deploy latest on merge to master
2023-08-20 21:48:59 -04:00
863aab6f36 feat: always deploy latest on merge to master 2023-08-20 21:42:53 -04:00
2f08d686ff Merge pull request #72 from dokku/josegonzalez-patch-1
feat: upgrade nginx to 1.25.2
2023-08-20 21:34:17 -04:00
936c024eac feat: upgrade nginx to 1.25.2 2023-08-20 21:14:00 -04:00
e833f6afad Merge pull request #71 from dokku/josegonzalez-patch-1
feat: upgrade zlib to 1.3
2023-08-20 21:12:52 -04:00
3221fc1b85 feat: upgrade zlib to 1.3 2023-08-20 20:53:40 -04:00
10d257b7ad Merge pull request #70 from dokku/josegonzalez-patch-1
feat: upgrade pcre2 to 10.42
2023-08-20 20:22:00 -04:00
b701653bda feat: upgrade pcre2 to 10.42 2023-08-20 20:17:09 -04:00
a6dd42bddb Merge pull request #69 from dokku/josegonzalez-patch-1
feat: upgrade sigil to 0.10.1
2023-08-20 20:16:12 -04:00
130b184ec3 feat: upgrade sigil to 0.10.1 2023-08-20 20:09:55 -04:00
e26103764e Merge pull request #67 from Firfi/patch-1
Add wasm mime type
2023-05-13 12:43:49 -04:00
eeb2caf824 Add wasm mime type
This is needed for support of WASM standard' https://www.w3.org/TR/wasm-web-api-1/#streaming-modules instantiateStreaming and compileStreaming, 

and causes errors like

```
WASM: wasm streaming compile failed: TypeError: Failed to execute 'compile' on 'WebAssembly': Incorrect response MIME type. Expected 'application/wasm'.
```

since plain text is returned instead.

It also doesn't seem to be easily fixable even with `nginx.conf.sigil` substitution
2023-04-16 20:33:18 +07:00
61bfffb6c6 Merge pull request #66 from fc-anjos/docs/nginx_default_request
Fix NGINX_DEFAULT_REQUEST snippet
2023-01-18 15:17:37 -05:00
bcbf61b1f5 fix NGINX_DEFAULT_REQUEST snippet 2023-01-18 17:09:43 -03:00
8345d0a22a Merge pull request #65 from dokku/64-catch-bin-error
Ensure we check for the right sigil binary
2022-09-12 10:53:59 -04:00
8560e5b5a9 fix: ensure we check for the right binary
Closes #64
2022-09-12 10:22:04 -04:00
aa191df661 Merge pull request #63 from dokku/upgrade-pcre
Upgrade pcre to pcre2
2022-09-10 21:09:31 -04:00
7fe92f4821 chore: remove extra debug statement 2022-09-10 21:05:23 -04:00
25fb7889a5 fix: build against the correct directory 2022-09-10 21:02:04 -04:00
6381244e26 debug: where is the pcre2 output 2022-09-10 20:57:21 -04:00
7874622b04 feat: upgrade pcre to pcre2 2022-09-10 20:54:48 -04:00
0329f9e0ff Merge pull request #62 from dokku/upgrade-nginx
Upgrade nginx to 1.23.1
2022-09-10 20:50:42 -04:00
043965bc7d feat: upgrade nginx to 1.23.1 2022-09-10 20:46:19 -04:00
3a1e442373 Merge pull request #61 from dokku/upgrade-sigil
Upgrade sigil to 0.9.0
2022-09-10 20:44:47 -04:00
6a99e870e4 fix: copy the new binary into the correct place 2022-09-10 20:42:01 -04:00
ad5e831e74 chore: debug 2022-09-10 20:36:01 -04:00
ed31137f94 feat: upgrade sigil to 0.9.0 2022-09-10 20:31:57 -04:00
a68149bce7 Merge pull request #60 from dokku/upgrade-zlib
Upgrade zlib to 1.2.12
2022-09-10 20:30:21 -04:00
6a592755ff feat: upgrade zlib to 1.2.12 2022-09-10 20:27:47 -04:00
2b95cd179b Merge pull request #59 from dokku/test-conf
Ensure test runs against vendored app-nginx.conf.sigil and mime.types
2022-09-10 20:23:40 -04:00
9b7f098ced fix: add whitespace 2022-09-10 20:20:44 -04:00
7154c020a1 fix: use GITHUB_HEAD_REF instead 2022-09-10 20:14:49 -04:00
a11d1ce303 refactor: use ref name instead of sha 2022-09-10 20:11:49 -04:00
53b41ec631 fix: override commit being deployed 2022-09-10 19:58:50 -04:00
c8eef60b09 test: ensure test runs against vendored app-nginx.conf.sigil and mime.types 2022-09-10 18:56:55 -04:00
09fe857895 Merge pull request #58 from dokku/correct-remote-host
fix: use correct remote host
2022-09-10 18:29:17 -04:00
31dc4746e2 fix: use correct remote host 2022-09-10 18:25:08 -04:00
59ea0b94e1 Merge pull request #57 from dokku/review-app-cleanup
Split out workflows so that review app cleanup is properly run
2022-09-10 18:23:10 -04:00
301d00c751 fix: name workflows correctly 2022-09-10 18:20:42 -04:00
28328e4d90 refactor: split out workflows so that review app cleanup is properly run
The old setup - copy-pasted from the internet somewhere - was incorrect based on how github actions works. *sigh*
2022-09-10 18:19:27 -04:00
dce20c0a8f Merge pull request #56 from dokku/auto-deploy
Test this buildpack by deploying to a dokku server
2022-09-10 18:12:48 -04:00
0e7bef86f9 chore: ensure robots do not crawl these test domains 2022-09-10 18:09:55 -04:00
faf2a70272 fix: use correct domain name 2022-09-10 18:09:06 -04:00
f981b138ed fix: use a dokku.net subdomain to avoid hsts issues 2022-09-10 18:04:40 -04:00
7794c2c36f chore: add some debugging information 2022-09-10 18:02:11 -04:00
22619107ab chore: silence ci hook 2022-09-10 17:58:38 -04:00
1a28ec8509 feat: purge cache on every review app deploy
This ensures we test the currently built nginx binary.
2022-09-10 17:53:46 -04:00
e28d2049e5 debug: see what directory we are in 2022-09-10 17:42:55 -04:00
6a73313edb fix: always run the first job 2022-09-10 17:41:00 -04:00
648d73fda6 fix: set current buildpack as the buildpack to use 2022-09-10 17:38:10 -04:00
1769636cc8 tests: test deploys via github action 2022-09-10 17:31:47 -04:00
6a9c79f8d0 feat: add initial files needed to deploy this as a site for testing purposes 2022-09-10 17:24:45 -04:00
7a1b16877d Merge pull request #55 from dokku/cleanup
chore: run shfmt
2022-09-10 17:16:24 -04:00
c50c220ba4 chore: run shfmt 2022-09-10 17:13:33 -04:00
c2273de014 chore: drop ssl module 2022-09-10 17:10:30 -04:00
91c41476ae feat: add ssl module 2022-09-10 16:55:10 -04:00
14 changed files with 237 additions and 26 deletions

8
.github/dependabot.yaml vendored Normal file
View 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
View 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 }}

View 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
View 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 }}

1
.static Normal file
View File

@ -0,0 +1 @@
.static

View File

@ -30,7 +30,7 @@ You can override the nginx root via setting the `NGINX_ROOT` environment variabl
# 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
@ -39,13 +39,34 @@ By default, this buildpack will 404 if a requested file is not found. For static
```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
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
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
`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
View 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

View File

@ -1,25 +1,28 @@
#!/usr/bin/env bash
# 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"
PCRE_VERSION="8.45"
PCRE_TARBALL="pcre-${PCRE_VERSION}.tar.gz"
SIGIL_VERSION="0.4.0"
SIGIL_TARBALL="sigil_${SIGIL_VERSION}_Linux_x86_64.tgz"
ZLIB_VERSION="1.2.11"
PCRE_VERSION="10.42"
PCRE_TARBALL="pcre2-${PCRE_VERSION}.tar.gz"
SIGIL_VERSION="0.10.1"
SIGIL_TARBALL="gliderlabs-sigil_${SIGIL_VERSION}_linux_amd64.tgz"
ZLIB_VERSION="1.3"
ZLIB_TARBALL="zlib-${ZLIB_VERSION}.tar.gz"
suppress() {
/bin/rm --force /tmp/surpress.out 2>/dev/null
# 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
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"
@ -48,13 +51,13 @@ cd "$CACHE_DIR"
if [[ ! -d "${NGINX_TARBALL%.tar.gz}" ]]; then
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}"
fi
if [[ ! -d "${PCRE_TARBALL%.tar.gz}" ]]; then
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}"
fi
@ -64,14 +67,18 @@ if [[ ! -d "${ZLIB_TARBALL%.tar.gz}" ]]; then
tar xzf "${ZLIB_TARBALL}" && rm -rf "${ZLIB_TARBALL}"
fi
if [[ ! -f "sigil" ]]; then
if [[ ! -f "gliderlabs-sigil-amd64" ]]; 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}"
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 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}"
if [[ ! -f "${CACHE_DIR}/bin/nginx" ]]; then
@ -80,7 +87,7 @@ if [[ ! -f "${CACHE_DIR}/bin/nginx" ]]; then
suppress ./configure \
--with-cpu-opt=generic \
--prefix="$BUILD_DIR/nginx" \
--with-pcre=../pcre-${PCRE_VERSION} \
--with-pcre=../pcre2-${PCRE_VERSION} \
--sbin-path=. \
--pid-path=./nginx.pid \
--conf-path=./nginx.conf \
@ -130,19 +137,19 @@ fi
# Update the PATH
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"
EOF
cd "$CUR_DIR"
# 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"
cp "$BUILD_DIR/app-nginx.conf.sigil" "$BUILD_DIR/nginx/app-nginx.conf.sigil"
# 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"
cp "$BUILD_DIR/nginx.conf.erb" "$BUILD_DIR/nginx/nginx.conf.erb"
@ -153,7 +160,7 @@ else
fi
# 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"
cp "$BUILD_DIR/mime.types" "$BUILD_DIR/nginx/mime.types"
@ -167,7 +174,7 @@ 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" 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
erb /app/nginx/nginx.conf.erb > /app/nginx/nginx.conf
fi

View File

@ -1,6 +1,7 @@
#!/usr/bin/env bash
# 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
if [[ ! -f "$1/.static" ]]; then

View File

@ -1,6 +1,7 @@
#!/usr/bin/env bash
# bin/release <build-dir>
set -eo pipefail; [[ $TRACE ]] && set -x
set -eo pipefail
[[ $TRACE ]] && set -x
cat <<EOF
---

View File

@ -1,19 +1,38 @@
worker_processes 1;
{{ if ne $.NGINX_WORKERS "" }}
worker_processes {{ $.NGINX_WORKERS }};
{{ else }}
worker_processes 1;
{{ end }}
error_log stderr;
pid nginx.pid;
daemon off;
events {
worker_connections 768;
{{ if ne $.NGINX_WORKER_CONNECTIONS "" }}
worker_connections {{ $.NGINX_WORKER_CONNECTIONS }};
{{ else }}
worker_connections 768;
{{ end }}
}
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;
include mime.types;
charset UTF-8;
server {
listen {{ $.PORT }};
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 "" }}
root /app/www/{{ $.NGINX_ROOT }};
{{ else }}

View File

@ -39,6 +39,7 @@ types {
application/vnd.wap.wmlc wmlc;
application/vnd.google-earth.kml+xml kml;
application/vnd.google-earth.kmz kmz;
application/wasm wasm;
application/x-7z-compressed 7z;
application/x-cocoa cco;
application/x-java-archive-diff jardiff;

45
site/index.html Normal file
View 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
View File

@ -0,0 +1,2 @@
User-agent: *
Disallow: /