From efdfdacbacc7b9966a6f806605127c557577f3a9 Mon Sep 17 00:00:00 2001 From: tengel Date: Thu, 1 Aug 2024 12:24:43 -0500 Subject: [PATCH] add airlocksix --- etc/nginx/sites-available/airlocksix.com.conf | 209 ++++++++++++++++++ .../airlocksix.com.conf.bootstrap | 58 +++++ html/airlocksix/.well-known/security.txt | 1 + html/airlocksix/favicon.png | Bin 0 -> 4587 bytes html/airlocksix/favicon.svg | 7 + html/airlocksix/index.css | 163 ++++++++++++++ html/airlocksix/index.html | 41 ++++ html/airlocksix/robots.txt | 8 + 8 files changed, 487 insertions(+) create mode 100644 etc/nginx/sites-available/airlocksix.com.conf create mode 100644 etc/nginx/sites-available/airlocksix.com.conf.bootstrap create mode 100644 html/airlocksix/.well-known/security.txt create mode 100644 html/airlocksix/favicon.png create mode 100644 html/airlocksix/favicon.svg create mode 100644 html/airlocksix/index.css create mode 100644 html/airlocksix/index.html create mode 100644 html/airlocksix/robots.txt diff --git a/etc/nginx/sites-available/airlocksix.com.conf b/etc/nginx/sites-available/airlocksix.com.conf new file mode 100644 index 0000000..2d373aa --- /dev/null +++ b/etc/nginx/sites-available/airlocksix.com.conf @@ -0,0 +1,209 @@ +# airlocksix.com +# www.airlocksix.com +# airlock6.com +# www.airlock6.com + +### airlocksix + +server { + server_name airlocksix.com; + root /var/xyzzy/html/airlocksix; + index index.html; + + location / { + try_files $uri $uri/ =404; + } + + listen [::]:443 ssl; # managed by Certbot + listen 443 ssl; # managed by Certbot + ssl_certificate /etc/letsencrypt/live/airlocksix.com/fullchain.pem; # managed by Certbot + ssl_certificate_key /etc/letsencrypt/live/airlocksix.com/privkey.pem; # managed by Certbot + include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot + ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot + + # https://ssl-config.mozilla.org/ + add_header Strict-Transport-Security "max-age=15724800" always; + + # OCSP stapling + ssl_stapling on; + ssl_stapling_verify on; + ssl_trusted_certificate /etc/letsencrypt/live/airlocksix.com/chain.pem; + resolver 9.9.9.9 8.8.8.8 1.1.1.1; + resolver_timeout 5s; + + # https://observatory.mozilla.org + add_header X-Frame-Options "SAMEORIGIN"; + add_header X-Content-Type-Options "nosniff"; + add_header X-XSS-Protection "1; mode=block"; + add_header Referrer-Policy "strict-origin-when-cross-origin"; + add_header Content-Security-Policy "default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; base-uri 'self'; form-action 'self'; frame-ancestors 'self';"; +} + +server { + server_name www.airlocksix.com; + root /var/xyzzy/html/airlocksix; + index index.html; + + location ~ /\.well-known { + allow all; + } + + location ~ / { + return 301 $scheme://airlocksix.com$request_uri; + } + + listen [::]:443 ssl; # managed by Certbot + listen 443 ssl; # managed by Certbot + ssl_certificate /etc/letsencrypt/live/airlocksix.com/fullchain.pem; # managed by Certbot + ssl_certificate_key /etc/letsencrypt/live/airlocksix.com/privkey.pem; # managed by Certbot + include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot + ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot + + # https://ssl-config.mozilla.org/ + add_header Strict-Transport-Security "max-age=15724800" always; + + # OCSP stapling + ssl_stapling on; + ssl_stapling_verify on; + ssl_trusted_certificate /etc/letsencrypt/live/airlocksix.com/chain.pem; + resolver 9.9.9.9 8.8.8.8 1.1.1.1; + resolver_timeout 5s; + + # https://observatory.mozilla.org + add_header X-Frame-Options "SAMEORIGIN"; + add_header X-Content-Type-Options "nosniff"; + add_header X-XSS-Protection "1; mode=block"; + add_header Referrer-Policy "strict-origin-when-cross-origin"; + add_header Content-Security-Policy "default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; base-uri 'self'; form-action 'self'; frame-ancestors 'self';"; +} + +server { + if ($host = airlocksix.com) { + return 301 https://$host$request_uri; + } # managed by Certbot + + listen 80; + listen [::]:80; + server_name airlocksix.com; + root /var/xyzzy/html/airlocksix; + index index.html; + return 404; # managed by Certbot +} + +server { + if ($host = www.airlocksix.com) { + return 301 https://$host$request_uri; + } # managed by Certbot + + listen 80; + listen [::]:80; + server_name www.airlocksix.com; + root /var/xyzzy/html/airlocksix; + index index.html; + return 404; # managed by Certbot +} + +### airlock6 + +server { + server_name airlock6.com; + root /var/xyzzy/html/airlocksix; + index index.html; + + location ~ /\.well-known { + allow all; + } + + location ~ / { + return 301 $scheme://airlocksix.com$request_uri; + } + + listen [::]:443 ssl; # managed by Certbot + listen 443 ssl; # managed by Certbot + ssl_certificate /etc/letsencrypt/live/airlocksix.com/fullchain.pem; # managed by Certbot + ssl_certificate_key /etc/letsencrypt/live/airlocksix.com/privkey.pem; # managed by Certbot + include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot + ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot + + # https://ssl-config.mozilla.org/ + add_header Strict-Transport-Security "max-age=15724800" always; + + # OCSP stapling + ssl_stapling on; + ssl_stapling_verify on; + ssl_trusted_certificate /etc/letsencrypt/live/airlocksix.com/chain.pem; + resolver 9.9.9.9 8.8.8.8 1.1.1.1; + resolver_timeout 5s; + + # https://observatory.mozilla.org + add_header X-Frame-Options "SAMEORIGIN"; + add_header X-Content-Type-Options "nosniff"; + add_header X-XSS-Protection "1; mode=block"; + add_header Referrer-Policy "strict-origin-when-cross-origin"; + add_header Content-Security-Policy "default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; base-uri 'self'; form-action 'self'; frame-ancestors 'self';"; +} + +server { + server_name www.airlock6.com; + root /var/xyzzy/html/airlocksix; + index index.html; + + location ~ /\.well-known { + allow all; + } + + location ~ / { + return 301 $scheme://airlocksix.com$request_uri; + } + + listen [::]:443 ssl; # managed by Certbot + listen 443 ssl; # managed by Certbot + ssl_certificate /etc/letsencrypt/live/airlocksix.com/fullchain.pem; # managed by Certbot + ssl_certificate_key /etc/letsencrypt/live/airlocksix.com/privkey.pem; # managed by Certbot + include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot + ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot + + # https://ssl-config.mozilla.org/ + add_header Strict-Transport-Security "max-age=15724800" always; + + # OCSP stapling + ssl_stapling on; + ssl_stapling_verify on; + ssl_trusted_certificate /etc/letsencrypt/live/airlocksix.com/chain.pem; + resolver 9.9.9.9 8.8.8.8 1.1.1.1; + resolver_timeout 5s; + + # https://observatory.mozilla.org + add_header X-Frame-Options "SAMEORIGIN"; + add_header X-Content-Type-Options "nosniff"; + add_header X-XSS-Protection "1; mode=block"; + add_header Referrer-Policy "strict-origin-when-cross-origin"; + add_header Content-Security-Policy "default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; base-uri 'self'; form-action 'self'; frame-ancestors 'self';"; +} + +server { + if ($host = airlock6.com) { + return 301 https://airlocksix.com$request_uri; + } # managed by Certbot + + listen 80; + listen [::]:80; + server_name airlock6.com; + root /var/xyzzy/html/airlocksix; + index index.html; + return 404; # managed by Certbot +} + +server { + if ($host = www.airlock6.com) { + return 301 https://airlocksix.com$request_uri; + } # managed by Certbot + + listen 80; + listen [::]:80; + server_name www.airlock6.com; + root /var/xyzzy/html/airlocksix; + index index.html; + return 404; # managed by Certbot +} + diff --git a/etc/nginx/sites-available/airlocksix.com.conf.bootstrap b/etc/nginx/sites-available/airlocksix.com.conf.bootstrap new file mode 100644 index 0000000..2042bd4 --- /dev/null +++ b/etc/nginx/sites-available/airlocksix.com.conf.bootstrap @@ -0,0 +1,58 @@ +# airlocksix.com +# www.airlocksix.com +# airlock6.com +# www.airlock6.com + +server { + listen 80; + listen [::]:80; + server_name airlocksix.com; + root /var/xyzzy/html/airlocksix; + index index.html; + + location / { + try_files $uri $uri/ =404; + } +} +server { + listen 80; + listen [::]:80; + server_name airlock6.com; + root /var/xyzzy/html/airlocksix; + index index.html; + + location / { + try_files $uri $uri/ =404; + } +} + +server { + listen 80; + listen [::]:80; + server_name www.airlocksix.com; + root /var/xyzzy/html/airlocksix; + index index.html; + + location ~ /\.well-known { + allow all; + } + + location ~ / { + return 301 $scheme://airlocksix.com$request_uri; + } +} +server { + listen 80; + listen [::]:80; + server_name www.airlock6.com; + root /var/xyzzy/html/airlocksix; + index index.html; + + location ~ /\.well-known { + allow all; + } + + location ~ / { + return 301 $scheme://airlocksix.com$request_uri; + } +} diff --git a/html/airlocksix/.well-known/security.txt b/html/airlocksix/.well-known/security.txt new file mode 100644 index 0000000..2934c3d --- /dev/null +++ b/html/airlocksix/.well-known/security.txt @@ -0,0 +1 @@ +Contact: https://airlocksix.com diff --git a/html/airlocksix/favicon.png b/html/airlocksix/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..518875428ffd6b09d309d628bd415ca4a232d83b GIT binary patch literal 4587 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 aS%u53-+s|i+>dfM0~qO>>(#^D@Ba_TNs&AN literal 0 HcmV?d00001 diff --git a/html/airlocksix/favicon.svg b/html/airlocksix/favicon.svg new file mode 100644 index 0000000..9dc9dcc --- /dev/null +++ b/html/airlocksix/favicon.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/html/airlocksix/index.css b/html/airlocksix/index.css new file mode 100644 index 0000000..23c93c2 --- /dev/null +++ b/html/airlocksix/index.css @@ -0,0 +1,163 @@ +header,section{ + display:block; +} +body{ + font-size:16px; + margin:0 auto; + line-height:1.4; + background:#0b0c0d; + color:#d4d4d4; + font-family:"Noto Sans", Futura, Verdana, "Liberation Sans", sans-serif; +} +a{ + color:#c79908; + text-decoration:none; +} +a:hover{ + text-decoration:underline; +} +::selection { + color:#000; + background:#7a9e55; +} +h1{ + font-size:2em; + margin:.67em 0; +} +kbd { + border-radius: 3px; + padding: 1px 2px 0; + border: 1px solid #666666; +} +#page{ + position:relative; +} +#header{ + padding-top:50px; + transform:translate3d(0,0,0); +} +.title-wrapper{ + text-align:center; +} +.content{ + margin-left:auto; + margin-right:auto; + padding:1px 20px; + position:relative; + z-index:2; + min-width:270px; +} +.title-group.animate{ + animation:slide-fade-in .8s ease; +} +.title{ + font-size:42px; + line-height:1.2; + margin:40px 0 0; + word-wrap:break-word; +} +.title a:active{ + transform:translateY(1px); +} +.title a{ + color:#e4e4e4; + display:block; + text-decoration:none; +} +.description{ + color:#7a9e55; + margin:50px 0 0; + display:block; +} +.title+.description{ + margin-top:10px!important; +} +.footdesc{ + color:#666666; + margin:20px 0 0; + display:block; + font-size: 14px; +} +.footlink { + text-align: center; +} +.footlink.animate { + animation:slide-fade-in .8s ease; +} +.middle { + overflow: auto; + margin: auto; + display: inline; + text-align: center; + vertical-align: middle; +} +@media screen and (max-width:568px){ + .content{ + padding:1px 10px; + } + .title{ + font-size:36px; + margin-top:30px; + } + .description{ + margin-top:35px; + max-width:80%; + margin-left:auto; + margin-right:auto; + } + .title+.description{ + margin-top:4px!important; + } +} + +@keyframes slide-fade-in{ + 0%{ + opacity:0; + transform:translate3d(0,20px,0); + } + to{ + opacity:1; + transform:translate3d(0,0,0); + } +} + +.divTable { + font-size: 16px; + line-height: 2.0; + display: table; + margin: auto; + border: 1px solid #444; +} +.divTable.animate { + animation:slide-fade-in .8s ease; +} +.divTableRow { + display: table-row; +} +.divTableHeading { + display: table-header-group; + background-color: #ddd; +} +.divTableCell, .divTableHead { + vertical-align: middle; + display: table-cell; + padding: 5px 10px; + border: 1px solid #444; +} +.divTableHeading { + display: table-header-group; + background-color: #ddd; + font-weight: bold; +} +.divTableFoot { + display: table-footer-group; + font-weight: bold; + background-color: #ddd; +} +.divTableBody { + display: table-row-group; +} +.valign { + vertical-align: middle; +} + diff --git a/html/airlocksix/index.html b/html/airlocksix/index.html new file mode 100644 index 0000000..aba64ff --- /dev/null +++ b/html/airlocksix/index.html @@ -0,0 +1,41 @@ + + + + + + airlock six + + + + + + + + + + + +
+
+
+
+ + + + + + + diff --git a/html/airlocksix/robots.txt b/html/airlocksix/robots.txt new file mode 100644 index 0000000..8c3fe66 --- /dev/null +++ b/html/airlocksix/robots.txt @@ -0,0 +1,8 @@ +User-Agent: * + +# credit: jonty, asimov +Disallow: /harming/humans +Disallow: /ignoring/human/orders +Disallow: /harm/to/self + +Allow: /