adding tenno
This commit is contained in:
parent
476637c576
commit
7c82395b47
9 changed files with 366 additions and 0 deletions
21
doc/07_tenno-nz.txt
Normal file
21
doc/07_tenno-nz.txt
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
|
||||||
|
cp tenno.nz.conf.bootstrap \
|
||||||
|
/etc/nginx/sites-available/tenno.nz.conf
|
||||||
|
|
||||||
|
cd /etc/nginx/sites-enabled
|
||||||
|
ln -s /etc/nginx/sites-available/tenno.nz.conf 07tenno.nz.conf
|
||||||
|
cd -
|
||||||
|
|
||||||
|
nginx -t
|
||||||
|
systemctl restart nginx
|
||||||
|
|
||||||
|
certbot --nginx \
|
||||||
|
-d tenno.nz,www.tenno.nz \
|
||||||
|
--agree-tos -m "hostmaster@tenno.nz" --no-eff-email \
|
||||||
|
--deploy-hook "systemctl reload nginx"
|
||||||
|
|
||||||
|
cp tenno.nz.conf /etc/nginx/sites-available/tenno.nz.conf
|
||||||
|
|
||||||
|
nginx -t
|
||||||
|
systemctl restart nginx
|
||||||
|
|
||||||
101
etc/nginx/sites-available/tenno.nz.conf
Normal file
101
etc/nginx/sites-available/tenno.nz.conf
Normal file
|
|
@ -0,0 +1,101 @@
|
||||||
|
# tenno.nz
|
||||||
|
# www.tenno.nz
|
||||||
|
|
||||||
|
server {
|
||||||
|
server_name tenno.nz;
|
||||||
|
root /var/xyzzy/html/tenno;
|
||||||
|
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/tenno.nz/fullchain.pem; # managed by Certbot
|
||||||
|
ssl_certificate_key /etc/letsencrypt/live/tenno.nz/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/tenno.nz/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.tenno.nz;
|
||||||
|
root /var/xyzzy/html/tenno;
|
||||||
|
index index.html;
|
||||||
|
|
||||||
|
location ~ /\.well-known {
|
||||||
|
allow all;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ / {
|
||||||
|
return 301 $scheme://tenno.nz$request_uri;
|
||||||
|
}
|
||||||
|
|
||||||
|
listen [::]:443 ssl; # managed by Certbot
|
||||||
|
listen 443 ssl; # managed by Certbot
|
||||||
|
ssl_certificate /etc/letsencrypt/live/tenno.nz/fullchain.pem; # managed by Certbot
|
||||||
|
ssl_certificate_key /etc/letsencrypt/live/tenno.nz/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/tenno.nz/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 = tenno.nz) {
|
||||||
|
return 301 https://$host$request_uri;
|
||||||
|
} # managed by Certbot
|
||||||
|
|
||||||
|
listen 80;
|
||||||
|
listen [::]:80;
|
||||||
|
server_name tenno.nz;
|
||||||
|
root /var/xyzzy/html/tenno;
|
||||||
|
index index.html;
|
||||||
|
return 404; # managed by Certbot
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
if ($host = www.tenno.nz) {
|
||||||
|
return 301 https://$host$request_uri;
|
||||||
|
} # managed by Certbot
|
||||||
|
|
||||||
|
listen 80;
|
||||||
|
listen [::]:80;
|
||||||
|
server_name www.tenno.nz;
|
||||||
|
root /var/xyzzy/html/tenno;
|
||||||
|
index index.html;
|
||||||
|
return 404; # managed by Certbot
|
||||||
|
}
|
||||||
|
|
||||||
30
etc/nginx/sites-available/tenno.nz.conf.bootstrap
Normal file
30
etc/nginx/sites-available/tenno.nz.conf.bootstrap
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
# tenno.nz
|
||||||
|
# www.tenno.nz
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
listen [::]:80;
|
||||||
|
server_name tenno.nz;
|
||||||
|
root /var/xyzzy/html/tenno;
|
||||||
|
index index.html;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
try_files $uri $uri/ =404;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
listen [::]:80;
|
||||||
|
server_name www.tenno.nz;
|
||||||
|
root /var/xyzzy/html/tenno;
|
||||||
|
index index.html;
|
||||||
|
|
||||||
|
location ~ /\.well-known {
|
||||||
|
allow all;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ / {
|
||||||
|
return 301 $scheme://tenno.nz$request_uri;
|
||||||
|
}
|
||||||
|
}
|
||||||
1
html/tenno/.well-known/security.txt
Normal file
1
html/tenno/.well-known/security.txt
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
Contact: https://tenno.nz
|
||||||
BIN
html/tenno/favicon.png
Normal file
BIN
html/tenno/favicon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
4
html/tenno/favicon.svg
Normal file
4
html/tenno/favicon.svg
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<svg width="800px" height="800px" viewBox="0 0 36 36" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--twemoji" preserveAspectRatio="xMidYMid meet">
|
||||||
|
<path fill="#929ab6" d="M15.676 11.203h-3.38c-1.488 0-2.108-1.085-2.108-2.139c0-1.085.775-2.14 2.108-2.14h11.411c1.332 0 2.108 1.054 2.108 2.14c0 1.054-.619 2.139-2.108 2.139h-3.381v15.565c0 1.551-.992 2.418-2.325 2.418c-1.333 0-2.325-.867-2.325-2.418V11.203z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 547 B |
160
html/tenno/index.css
Normal file
160
html/tenno/index.css
Normal file
|
|
@ -0,0 +1,160 @@
|
||||||
|
:root {
|
||||||
|
--nord:#1e252f;
|
||||||
|
--snow:#ccd2dc;
|
||||||
|
--one:#b8c0e0;
|
||||||
|
--two:#a5adcb;
|
||||||
|
--three:#929ab6;
|
||||||
|
--four:#7f87a1;
|
||||||
|
--five:#6c748c;
|
||||||
|
--six:#596177;
|
||||||
|
--seven:#464e62;
|
||||||
|
--eight:#333b4d;
|
||||||
|
--nine:#202838;
|
||||||
|
--ten:#0d1523;
|
||||||
|
--code:#1e2030;
|
||||||
|
--grey:#757575;
|
||||||
|
}
|
||||||
|
header,section {
|
||||||
|
display:block;
|
||||||
|
}
|
||||||
|
body {
|
||||||
|
font-size:16px;
|
||||||
|
margin:0 auto;
|
||||||
|
line-height:1.4;
|
||||||
|
background:var(--nord);
|
||||||
|
color:var(--two);
|
||||||
|
font-family:"Noto Sans", Futura, Verdana, "Liberation Sans", sans-serif;
|
||||||
|
}
|
||||||
|
a {
|
||||||
|
color:var(--two);
|
||||||
|
text-decoration:none;
|
||||||
|
}
|
||||||
|
a:hover {
|
||||||
|
color:var(--snow);
|
||||||
|
text-decoration:underline;
|
||||||
|
}
|
||||||
|
h1, h2, h3, h4, h5, h6 {
|
||||||
|
color:var(--snow);
|
||||||
|
}
|
||||||
|
a code {
|
||||||
|
box-shadow:0 -1px 0 var(--one) inset;
|
||||||
|
}
|
||||||
|
pre, code {
|
||||||
|
display:block;
|
||||||
|
margin:auto 0;
|
||||||
|
padding:5px;
|
||||||
|
overflow-x:auto;
|
||||||
|
word-break:break-all;
|
||||||
|
background:var(--code);
|
||||||
|
}
|
||||||
|
blockquote {
|
||||||
|
margin:15px;
|
||||||
|
padding:0 10px;
|
||||||
|
border-inline-start:3px solid var(--three);
|
||||||
|
}
|
||||||
|
hr {
|
||||||
|
background:var(--three);
|
||||||
|
}
|
||||||
|
::selection {
|
||||||
|
color:var(--nord);
|
||||||
|
background:var(--one);
|
||||||
|
}
|
||||||
|
h1 {
|
||||||
|
font-size:2em;
|
||||||
|
margin:.67em 0;
|
||||||
|
}
|
||||||
|
#page {
|
||||||
|
position:relative;
|
||||||
|
}
|
||||||
|
#header {
|
||||||
|
padding-top:30px;
|
||||||
|
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 {
|
||||||
|
font-size:42px;
|
||||||
|
line-height:1.2;
|
||||||
|
margin:40px 0 0;
|
||||||
|
word-wrap:break-word;
|
||||||
|
}
|
||||||
|
.title a:active {
|
||||||
|
transform:translateY(1px);
|
||||||
|
}
|
||||||
|
.title a {
|
||||||
|
display:block;
|
||||||
|
text-decoration:none;
|
||||||
|
}
|
||||||
|
.description {
|
||||||
|
color:var(--four);
|
||||||
|
margin:20px 0 0;
|
||||||
|
display:block;
|
||||||
|
}
|
||||||
|
.title + .description {
|
||||||
|
margin-top:10px !important;
|
||||||
|
}
|
||||||
|
.footdesc {
|
||||||
|
color:var(--six);
|
||||||
|
margin:20px 0 0;
|
||||||
|
display:block;
|
||||||
|
font-size:14px;
|
||||||
|
}
|
||||||
|
.footdesc a {
|
||||||
|
color:var(--six);
|
||||||
|
}
|
||||||
|
.footdesc a:hover {
|
||||||
|
color:var(--four);
|
||||||
|
}
|
||||||
|
.footlink {
|
||||||
|
text-align:center;
|
||||||
|
}
|
||||||
|
.middle {
|
||||||
|
overflow:auto;
|
||||||
|
margin:auto;
|
||||||
|
display:inline;
|
||||||
|
text-align:center;
|
||||||
|
vertical-align:middle;
|
||||||
|
}
|
||||||
|
.valign {
|
||||||
|
vertical-align:middle;
|
||||||
|
}
|
||||||
|
.divTable {
|
||||||
|
font-size:16px;
|
||||||
|
line-height:2.0;
|
||||||
|
display:table;
|
||||||
|
margin:auto;
|
||||||
|
border:1px solid var(--seven);
|
||||||
|
}
|
||||||
|
.divTableRow {
|
||||||
|
display:table-row;
|
||||||
|
}
|
||||||
|
.divTableHeading {
|
||||||
|
display:table-header-group;
|
||||||
|
}
|
||||||
|
.divTableCell, .divTableHead {
|
||||||
|
vertical-align:middle;
|
||||||
|
display:table-cell;
|
||||||
|
padding:5px 10px;
|
||||||
|
border:1px solid var(--seven);
|
||||||
|
}
|
||||||
|
.divTableHeading {
|
||||||
|
display:table-header-group;
|
||||||
|
font-weight:bold;
|
||||||
|
}
|
||||||
|
.divTableFoot {
|
||||||
|
display:table-footer-group;
|
||||||
|
font-weight:bold;
|
||||||
|
}
|
||||||
|
.divTableBody {
|
||||||
|
display:table-row-group;
|
||||||
|
}
|
||||||
|
|
||||||
41
html/tenno/index.html
Normal file
41
html/tenno/index.html
Normal file
|
|
@ -0,0 +1,41 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>tenno</title>
|
||||||
|
<meta name="description" content="tenno">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<link rel="stylesheet" media="screen" href="index.css">
|
||||||
|
<link rel="icon" href="favicon.svg" type="image/svg+xml">
|
||||||
|
<link rel="alternate icon" href="favicon.png" type="image/png">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<header id="header">
|
||||||
|
<div class="title-wrapper content">
|
||||||
|
<div class="title-group">
|
||||||
|
<h1 class="title">tenno</h1>
|
||||||
|
<span class="description">
|
||||||
|
<em>a personal domain</em>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main id="main">
|
||||||
|
<div class="content middle">
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer id="footer">
|
||||||
|
<div class="content middle">
|
||||||
|
<span class="footdesc">[ xyzzy ]</span>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
|
|
||||||
8
html/tenno/robots.txt
Normal file
8
html/tenno/robots.txt
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
User-Agent: *
|
||||||
|
|
||||||
|
# credit: jonty, asimov
|
||||||
|
Disallow: /harming/humans
|
||||||
|
Disallow: /ignoring/human/orders
|
||||||
|
Disallow: /harm/to/self
|
||||||
|
|
||||||
|
Allow: /
|
||||||
Loading…
Add table
Add a link
Reference in a new issue