add troyito
This commit is contained in:
parent
22060e1bf8
commit
d35dfe7800
12 changed files with 517 additions and 0 deletions
21
doc/09_troyito-com.txt
Normal file
21
doc/09_troyito-com.txt
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
|
||||
cp troyito.com.conf.bootstrap \
|
||||
/etc/nginx/sites-available/troyito.com.conf
|
||||
|
||||
cd /etc/nginx/sites-enabled
|
||||
ln -s /etc/nginx/sites-available/troyito.com.conf 09troyito.com.conf
|
||||
cd -
|
||||
|
||||
nginx -t
|
||||
systemctl restart nginx
|
||||
|
||||
certbot --nginx \
|
||||
-d troyito.com,www.troyito.com \
|
||||
--agree-tos -m "hostmaster@troyito.com" --no-eff-email \
|
||||
--deploy-hook "systemctl reload nginx"
|
||||
|
||||
cp troyito.com.conf /etc/nginx/sites-available/troyito.com.conf
|
||||
|
||||
nginx -t
|
||||
systemctl restart nginx
|
||||
|
||||
87
etc/nginx/sites-available/troyito.com.conf
Normal file
87
etc/nginx/sites-available/troyito.com.conf
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
# troyito.com
|
||||
# www.troyito.com
|
||||
|
||||
server {
|
||||
server_name troyito.com;
|
||||
root /var/xyzzy/html/troyito;
|
||||
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/troyito.com/fullchain.pem; # managed by Certbot
|
||||
ssl_certificate_key /etc/letsencrypt/live/troyito.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;
|
||||
|
||||
# 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.troyito.com;
|
||||
root /var/xyzzy/html/troyito;
|
||||
index index.html;
|
||||
|
||||
location ~ /\.well-known {
|
||||
allow all;
|
||||
}
|
||||
|
||||
location ~ / {
|
||||
return 301 $scheme://troyito.com$request_uri;
|
||||
}
|
||||
|
||||
listen [::]:443 ssl; # managed by Certbot
|
||||
listen 443 ssl; # managed by Certbot
|
||||
ssl_certificate /etc/letsencrypt/live/troyito.com/fullchain.pem; # managed by Certbot
|
||||
ssl_certificate_key /etc/letsencrypt/live/troyito.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;
|
||||
|
||||
# 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 = troyito.com) {
|
||||
return 301 https://$host$request_uri;
|
||||
} # managed by Certbot
|
||||
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
server_name troyito.com;
|
||||
root /var/xyzzy/html/troyito;
|
||||
index index.html;
|
||||
return 404; # managed by Certbot
|
||||
}
|
||||
|
||||
server {
|
||||
if ($host = www.troyito.com) {
|
||||
return 301 https://$host$request_uri;
|
||||
} # managed by Certbot
|
||||
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
server_name www.troyito.com;
|
||||
root /var/xyzzy/html/troyito;
|
||||
index index.html;
|
||||
return 404; # managed by Certbot
|
||||
}
|
||||
|
||||
30
etc/nginx/sites-available/troyito.com.conf.bootstrap
Normal file
30
etc/nginx/sites-available/troyito.com.conf.bootstrap
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
# troyito.com
|
||||
# www.troyito.com
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
server_name troyito.com;
|
||||
root /var/xyzzy/html/troyito;
|
||||
index index.html;
|
||||
|
||||
location / {
|
||||
try_files $uri $uri/ =404;
|
||||
}
|
||||
}
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
server_name www.troyito.com;
|
||||
root /var/xyzzy/html/troyito;
|
||||
index index.html;
|
||||
|
||||
location ~ /\.well-known {
|
||||
allow all;
|
||||
}
|
||||
|
||||
location ~ / {
|
||||
return 301 $scheme://troyito.com$request_uri;
|
||||
}
|
||||
}
|
||||
1
html/troyito/.well-known/security.txt
Normal file
1
html/troyito/.well-known/security.txt
Normal file
|
|
@ -0,0 +1 @@
|
|||
Contact: https://troyito.com
|
||||
35
html/troyito/divtable.css
Normal file
35
html/troyito/divtable.css
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
/*
|
||||
<div class="divTable">
|
||||
<div class="divTableBody">
|
||||
<div class="divTableRow">
|
||||
<div class="divTableCell">
|
||||
abcd1234
|
||||
*/
|
||||
.divTable {
|
||||
font-size: 16px;
|
||||
display: table;
|
||||
margin: auto;
|
||||
border: 1px solid #000;
|
||||
}
|
||||
.divTableRow {
|
||||
display: table-row;
|
||||
}
|
||||
.divTableHeading {
|
||||
display: table-header-group;
|
||||
}
|
||||
.divTableCell, .divTableHead {
|
||||
vertical-align: middle;
|
||||
display: table-cell;
|
||||
border: 1px solid #000;
|
||||
}
|
||||
.divTableHeading {
|
||||
display: table-header-group;
|
||||
font-weight: bold;
|
||||
}
|
||||
.divTableFoot {
|
||||
display: table-footer-group;
|
||||
font-weight: bold;
|
||||
}
|
||||
.divTableBody {
|
||||
display: table-row-group;
|
||||
}
|
||||
BIN
html/troyito/favicon.ico
Normal file
BIN
html/troyito/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 15 KiB |
BIN
html/troyito/favicon.png
Normal file
BIN
html/troyito/favicon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.8 KiB |
22
html/troyito/favicon.svg
Normal file
22
html/troyito/favicon.svg
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
||||
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
||||
width="512" height="512" viewBox="0 0 512 512"
|
||||
preserveAspectRatio="xMidYMid meet">
|
||||
|
||||
<g transform="translate(0,512) scale(0.1,-0.1)"
|
||||
fill="#929ab6" stroke="none">
|
||||
<path d="M2822 4576 c-532 -536 -676 -689 -669 -710 8 -25 47 -13 131 40 111
|
||||
70 232 128 311 149 36 10 101 17 165 17 169 0 256 -37 376 -163 74 -79 109
|
||||
-129 164 -239 113 -226 189 -561 220 -980 13 -174 13 -657 0 -870 -27 -443
|
||||
-101 -1047 -193 -1572 -14 -76 -20 -138 -16 -138 20 0 209 332 339 595 259
|
||||
526 437 1114 481 1590 8 82 13 275 13 465 0 354 -9 443 -74 752 -108 509 -325
|
||||
1024 -630 1496 -39 62 -73 112 -75 112 -1 0 -246 -245 -543 -544z"/>
|
||||
<path d="M1739 4898 c-392 -662 -615 -1238 -723 -1870 -34 -193 -46 -365 -46
|
||||
-628 0 -269 13 -446 45 -636 83 -485 239 -907 530 -1438 77 -139 185 -309 205
|
||||
-321 12 -8 1112 1088 1179 1174 33 42 39 56 30 67 -16 20 -40 11 -132 -48
|
||||
-409 -260 -718 -218 -944 129 -213 326 -304 840 -289 1628 10 576 60 1076 171
|
||||
1740 30 176 52 321 50 323 -1 2 -36 -52 -76 -120z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
136
html/troyito/index.css
Normal file
136
html/troyito/index.css
Normal file
|
|
@ -0,0 +1,136 @@
|
|||
:root {
|
||||
--nord:#1b212a;
|
||||
--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);
|
||||
}
|
||||
#main {
|
||||
padding-top:30px;
|
||||
}
|
||||
#footer {
|
||||
padding-top:30px;
|
||||
}
|
||||
.title-wrapper {
|
||||
text-align:center;
|
||||
}
|
||||
.content {
|
||||
margin-left:auto;
|
||||
margin-right:auto;
|
||||
padding:1px 20px;
|
||||
position:relative;
|
||||
}
|
||||
.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(--three);
|
||||
margin:20px 0 0;
|
||||
display:block;
|
||||
}
|
||||
.title + .description {
|
||||
margin-top:10px !important;
|
||||
}
|
||||
.footdesc {
|
||||
color:var(--six);
|
||||
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;
|
||||
}
|
||||
.squarethirty {
|
||||
height:30px;
|
||||
width:30px;
|
||||
}
|
||||
80
html/troyito/index.html
Normal file
80
html/troyito/index.html
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>¡troyito!</title>
|
||||
<meta name="description" content="uninvited cacophony">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" media="screen" href="index.css">
|
||||
<link rel="stylesheet" media="screen" href="razzledazzle.css" />
|
||||
<link rel="stylesheet" media="screen" href="divtable.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">¡troyito!</h1>
|
||||
<span class="description">
|
||||
<em>uninvited cacophony</em>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main id="main">
|
||||
|
||||
<!-- raaazzle...daaazzle -->
|
||||
<div class="divTable">
|
||||
<div class="divTableBody">
|
||||
|
||||
<div class="divTableRow">
|
||||
<div class="divTableCell squarethirty base-white" title="Base (white)"></div>
|
||||
<div class="divTableCell squarethirty thayer-blue" title="Thayer Blue"></div>
|
||||
<div class="divTableCell squarethirty pale-gray" title="Pale Gray"></div>
|
||||
<div class="divTableCell squarethirty standard-gray" title="Standard Gray"></div>
|
||||
<div class="divTableCell squarethirty light-gray-early" title="Light Gray (early)"></div>
|
||||
<div class="divTableCell squarethirty light-gray" title="Light Gray"></div>
|
||||
<div class="divTableCell squarethirty light-gray-late" title="Light Gray (late)"></div>
|
||||
<div class="divTableCell squarethirty haze-gray" title="Haze Gray"></div>
|
||||
</div>
|
||||
<div class="divTableRow">
|
||||
<div class="divTableCell squarethirty haze-gray-late" title="Haze Gray (late)"></div>
|
||||
<div class="divTableCell squarethirty ocean-gray-early" title="Ocean Gray (early)"></div>
|
||||
<div class="divTableCell squarethirty ocean-gray" title="Ocean Gray"></div>
|
||||
<div class="divTableCell squarethirty ocean-gray-late" title="Ocean Gray (late)"></div>
|
||||
<div class="divTableCell squarethirty sea-blue" title="Sea Blue"></div>
|
||||
<div class="divTableCell squarethirty navy-blue" title="Navy Blue"></div>
|
||||
<div class="divTableCell squarethirty navy-gray" title="Navy Gray"></div>
|
||||
<div class="divTableCell squarethirty dark-gray" title="Dark Gray"></div>
|
||||
</div>
|
||||
<div class="divTableRow">
|
||||
<div class="divTableCell squarethirty dark-gray-conv" title="Dark Gray (conversion)"></div>
|
||||
<div class="divTableCell squarethirty dull-black" title="Dull Black"></div>
|
||||
<div class="divTableCell squarethirty deck-blue" title="Deck Blue"></div>
|
||||
<div class="divTableCell squarethirty deck-gray" title="Deck Gray"></div>
|
||||
<div class="divTableCell squarethirty flight-deck-earl" title="Flight Deck Stain (early)"></div>
|
||||
<div class="divTableCell squarethirty flight-deck-mid" title="Flight Deck Stain (mid)"></div>
|
||||
<div class="divTableCell squarethirty flight-deck-late" title="Flight Deck Stain (late)"></div>
|
||||
<div class="divTableCell squarethirty" title="(unused cell)"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
|
||||
<footer id="footer">
|
||||
<div class="content middle">
|
||||
<span class="footdesc"></span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
97
html/troyito/razzledazzle.css
Normal file
97
html/troyito/razzledazzle.css
Normal file
|
|
@ -0,0 +1,97 @@
|
|||
/* https://en.wikipedia.org/wiki/Dazzle_camouflage */
|
||||
:root {
|
||||
--base-white:#ffffff;
|
||||
--thayer-blue:#b0c6cb;
|
||||
--pale-gray:#c6c9ce;
|
||||
--standard-gray:#a3a6ab;
|
||||
--light-gray-early:#a4a6a8;
|
||||
--light-gray:#a9afb9;
|
||||
--light-gray-late:#acacac;
|
||||
--haze-gray:#878d96;
|
||||
--haze-gray-late:#939393;
|
||||
--ocean-gray-early:#626971;
|
||||
--ocean-gray:#6e798d;
|
||||
--ocean-gray-late:#7a7a7a;
|
||||
--sea-blue:#52617c;
|
||||
--navy-blue:#455168;
|
||||
--navy-gray:#505050;
|
||||
--dark-gray:#3c3c3c;
|
||||
--dark-gray-conv:#363940;
|
||||
--dull-black:#262626;
|
||||
--deck-blue:#384864;
|
||||
--deck-grey:#484848;
|
||||
--flight-deck-early:#434a58;
|
||||
--flight-deck-mid:#626d81;
|
||||
--flight-deck-late:#384864;
|
||||
}
|
||||
|
||||
/* CSP "style-src 'self'" blocks inline style="" by design */
|
||||
.base-white {
|
||||
background-color:var(--base-white);
|
||||
}
|
||||
.thayer-blue {
|
||||
background-color:var(--thayer-blue);
|
||||
}
|
||||
.pale-gray {
|
||||
background-color:var(--pale-gray);
|
||||
}
|
||||
.standard-gray {
|
||||
background-color:var(--standard-gray);
|
||||
}
|
||||
.light-gray-early {
|
||||
background-color:var(--light-gray-early);
|
||||
}
|
||||
.light-gray {
|
||||
background-color:var(--light-gray);
|
||||
}
|
||||
.light-gray-late {
|
||||
background-color:var(--light-gray-late);
|
||||
}
|
||||
.haze-gray {
|
||||
background-color:var(--haze-gray);
|
||||
}
|
||||
.haze-gray-late {
|
||||
background-color:var(--haze-gray-late);
|
||||
}
|
||||
.ocean-gray-early {
|
||||
background-color:var(--ocean-gray-early);
|
||||
}
|
||||
.ocean-gray {
|
||||
background-color:var(--ocean-gray);
|
||||
}
|
||||
.ocean-gray-late {
|
||||
background-color:var(--ocean-gray-late);
|
||||
}
|
||||
.sea-blue {
|
||||
background-color:var(--sea-blue);
|
||||
}
|
||||
.navy-blue {
|
||||
background-color:var(--navy-blue);
|
||||
}
|
||||
.navy-gray {
|
||||
background-color:var(--navy-gray);
|
||||
}
|
||||
.dark-gray {
|
||||
background-color:var(--dark-gray);
|
||||
}
|
||||
.dark-gray-conv {
|
||||
background-color:var(--dark-gray-conv);
|
||||
}
|
||||
.dull-black {
|
||||
background-color:var(--dull-black);
|
||||
}
|
||||
.deck-blue {
|
||||
background-color:var(--deck-blue);
|
||||
}
|
||||
.deck-gray {
|
||||
background-color:var(--deck-gray);
|
||||
}
|
||||
.flight-deck-early {
|
||||
background-color:var(--flight-deck-early);
|
||||
}
|
||||
.flight-deck-mid {
|
||||
background-color:var(--flight-deck-mid);
|
||||
}
|
||||
.flight-deck-late {
|
||||
background-color:var(--flight-deck-late);
|
||||
}
|
||||
8
html/troyito/robots.txt
Normal file
8
html/troyito/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