From d35dfe7800910cc849e0115e610eb88024d117a1 Mon Sep 17 00:00:00 2001 From: tengel Date: Wed, 2 Jul 2025 06:11:29 -0500 Subject: [PATCH] add troyito --- doc/09_troyito-com.txt | 21 +++ etc/nginx/sites-available/troyito.com.conf | 87 +++++++++++ .../troyito.com.conf.bootstrap | 30 ++++ html/troyito/.well-known/security.txt | 1 + html/troyito/divtable.css | 35 +++++ html/troyito/favicon.ico | Bin 0 -> 15086 bytes html/troyito/favicon.png | Bin 0 -> 4886 bytes html/troyito/favicon.svg | 22 +++ html/troyito/index.css | 136 ++++++++++++++++++ html/troyito/index.html | 80 +++++++++++ html/troyito/razzledazzle.css | 97 +++++++++++++ html/troyito/robots.txt | 8 ++ 12 files changed, 517 insertions(+) create mode 100644 doc/09_troyito-com.txt create mode 100644 etc/nginx/sites-available/troyito.com.conf create mode 100644 etc/nginx/sites-available/troyito.com.conf.bootstrap create mode 100644 html/troyito/.well-known/security.txt create mode 100644 html/troyito/divtable.css create mode 100644 html/troyito/favicon.ico create mode 100644 html/troyito/favicon.png create mode 100644 html/troyito/favicon.svg create mode 100644 html/troyito/index.css create mode 100644 html/troyito/index.html create mode 100644 html/troyito/razzledazzle.css create mode 100644 html/troyito/robots.txt diff --git a/doc/09_troyito-com.txt b/doc/09_troyito-com.txt new file mode 100644 index 0000000..d25fd47 --- /dev/null +++ b/doc/09_troyito-com.txt @@ -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 + diff --git a/etc/nginx/sites-available/troyito.com.conf b/etc/nginx/sites-available/troyito.com.conf new file mode 100644 index 0000000..710600e --- /dev/null +++ b/etc/nginx/sites-available/troyito.com.conf @@ -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 +} + diff --git a/etc/nginx/sites-available/troyito.com.conf.bootstrap b/etc/nginx/sites-available/troyito.com.conf.bootstrap new file mode 100644 index 0000000..6d25059 --- /dev/null +++ b/etc/nginx/sites-available/troyito.com.conf.bootstrap @@ -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; + } +} diff --git a/html/troyito/.well-known/security.txt b/html/troyito/.well-known/security.txt new file mode 100644 index 0000000..358e363 --- /dev/null +++ b/html/troyito/.well-known/security.txt @@ -0,0 +1 @@ +Contact: https://troyito.com diff --git a/html/troyito/divtable.css b/html/troyito/divtable.css new file mode 100644 index 0000000..1e16b77 --- /dev/null +++ b/html/troyito/divtable.css @@ -0,0 +1,35 @@ +/* +
+
+
+
+ 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; +} diff --git a/html/troyito/favicon.ico b/html/troyito/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..8b0bac74717253b3089f0b890fafe5659c9243e7 GIT binary patch literal 15086 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 literal 0 HcmV?d00001 diff --git a/html/troyito/favicon.png b/html/troyito/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..8af2043b760bece59c0288cc77bb1b5c48bbaa2c GIT binary patch literal 4886 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 literal 0 HcmV?d00001 diff --git a/html/troyito/favicon.svg b/html/troyito/favicon.svg new file mode 100644 index 0000000..deaa624 --- /dev/null +++ b/html/troyito/favicon.svg @@ -0,0 +1,22 @@ + + + + + + + + + diff --git a/html/troyito/index.css b/html/troyito/index.css new file mode 100644 index 0000000..46ce7a1 --- /dev/null +++ b/html/troyito/index.css @@ -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; +} diff --git a/html/troyito/index.html b/html/troyito/index.html new file mode 100644 index 0000000..7795faf --- /dev/null +++ b/html/troyito/index.html @@ -0,0 +1,80 @@ + + + + + + ¡troyito! + + + + + + + + + + + + + +
+ + +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+ + + + + + + diff --git a/html/troyito/razzledazzle.css b/html/troyito/razzledazzle.css new file mode 100644 index 0000000..faab623 --- /dev/null +++ b/html/troyito/razzledazzle.css @@ -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); +} diff --git a/html/troyito/robots.txt b/html/troyito/robots.txt new file mode 100644 index 0000000..8c3fe66 --- /dev/null +++ b/html/troyito/robots.txt @@ -0,0 +1,8 @@ +User-Agent: * + +# credit: jonty, asimov +Disallow: /harming/humans +Disallow: /ignoring/human/orders +Disallow: /harm/to/self + +Allow: /