feat: store the nginx conf file with the rest of the site code
Site was setup ad hoc, and not in a way that is trivally reproducible. With this, at least we can trivally copy and paste to a new server.
This commit is contained in:
parent
fd51454e86
commit
8002a0a472
12 changed files with 3821 additions and 0 deletions
3
.vscode/settings.json
vendored
Normal file
3
.vscode/settings.json
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"rust-analyzer.cargo.target": "wasm32-unknown-unknown"
|
||||
}
|
||||
BIN
crates/pages/home/dist/favicon.ico
vendored
Normal file
BIN
crates/pages/home/dist/favicon.ico
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 15 KiB |
138
crates/pages/home/dist/index.html
vendored
Normal file
138
crates/pages/home/dist/index.html
vendored
Normal file
|
|
@ -0,0 +1,138 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<!-- Disable zooming: -->
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
|
||||
|
||||
<head>
|
||||
<title>Zach's page</title>
|
||||
|
||||
|
||||
<script type="module">
|
||||
import init, * as bindings from '/zachery-lol-home.js';
|
||||
const wasm = await init({ module_or_path: '/zachery-lol-home_bg.wasm' });
|
||||
|
||||
|
||||
window.wasmBindings = bindings;
|
||||
|
||||
|
||||
dispatchEvent(new CustomEvent("TrunkApplicationStarted", {detail: {wasm}}));
|
||||
|
||||
</script>
|
||||
<!-- this is the base url relative to which other urls will be constructed. trunk will insert this from the public-url option -->
|
||||
<base href="/" />
|
||||
|
||||
<link rel="icon" href="/favicon.ico" integrity="sha384-adiTkY7A3YEZdWqpY38nCsSmMtfCj6yG/HGAO0rbRDnX6McWyhWtZea4+aOgM5lx"/>
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="manifest" href="manifest.json">
|
||||
<meta name="theme-color" media="(prefers-color-scheme: light)" content="white">
|
||||
<meta name="theme-color" media="(prefers-color-scheme: dark)" content="#404040">
|
||||
|
||||
<style>
|
||||
html {
|
||||
/* Remove touch delay: */
|
||||
touch-action: manipulation;
|
||||
}
|
||||
|
||||
body {
|
||||
/* Light mode background color for what is not covered by the egui canvas,
|
||||
or where the egui canvas is translucent. */
|
||||
background: #909090;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body {
|
||||
/* Dark mode background color for what is not covered by the egui canvas,
|
||||
or where the egui canvas is translucent. */
|
||||
background: #404040;
|
||||
}
|
||||
}
|
||||
|
||||
/* Allow canvas to fill entire web page: */
|
||||
html,
|
||||
body {
|
||||
overflow: hidden;
|
||||
margin: 0 !important;
|
||||
padding: 0 !important;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* Make canvas fill entire document: */
|
||||
canvas {
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.centered {
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
color: #f0f0f0;
|
||||
font-size: 24px;
|
||||
font-family: Ubuntu-Light, Helvetica, sans-serif;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------- */
|
||||
/* Loading animation from https://loading.io/css/ */
|
||||
.lds-dual-ring {
|
||||
display: inline-block;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.lds-dual-ring:after {
|
||||
content: " ";
|
||||
display: block;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
margin: 0px;
|
||||
border-radius: 50%;
|
||||
border: 3px solid #fff;
|
||||
border-color: #fff transparent #fff transparent;
|
||||
animation: lds-dual-ring 1.2s linear infinite;
|
||||
}
|
||||
|
||||
@keyframes lds-dual-ring {
|
||||
0% {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<link rel="modulepreload" href="/zachery-lol-home.js" crossorigin="anonymous" integrity="sha384-8l+agPMa6sxMLq/oMk4ui9JdJ1uWqLuXx22BPK4ckKmpWjYvdpJTDKCD9JlBkEPX"><link rel="preload" href="/zachery-lol-home_bg.wasm" crossorigin="anonymous" integrity="sha384-Tr7jPArmwH8Ix8cl6VQj0aBum93N36PdKLjpLsZmTi6Tvw17EfVSm/tCVgFnw+Y3" as="fetch" type="application/wasm"></head>
|
||||
|
||||
<body>
|
||||
<!-- The WASM code will resize the canvas dynamically -->
|
||||
<!-- the id is hardcoded in main.rs . so, make sure both match. -->
|
||||
<canvas id="the_canvas_id"></canvas>
|
||||
|
||||
<!-- the loading spinner will be removed in main.rs -->
|
||||
<div class="centered" id="loading_text">
|
||||
<noscript>You need javascript to use this website</noscript>
|
||||
<p style="font-size:16px">
|
||||
Loading…
|
||||
</p>
|
||||
<div class="lds-dual-ring"></div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
11
crates/pages/home/dist/manifest.json
vendored
Normal file
11
crates/pages/home/dist/manifest.json
vendored
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"name": "zachery.lol home",
|
||||
"short_name": "zachery-lol-home",
|
||||
"icons": [],
|
||||
"lang": "en-US",
|
||||
"id": "/index.html",
|
||||
"start_url": "./index.html",
|
||||
"display": "standalone",
|
||||
"background_color": "white",
|
||||
"theme_color": "white"
|
||||
}
|
||||
1686
crates/pages/home/dist/zachery-lol-home.js
vendored
Normal file
1686
crates/pages/home/dist/zachery-lol-home.js
vendored
Normal file
File diff suppressed because it is too large
Load diff
BIN
crates/pages/home/dist/zachery-lol-home_bg.wasm
vendored
Normal file
BIN
crates/pages/home/dist/zachery-lol-home_bg.wasm
vendored
Normal file
Binary file not shown.
BIN
crates/pages/message-box/dist/favicon-977e402a1f85b7b3.ico
vendored
Normal file
BIN
crates/pages/message-box/dist/favicon-977e402a1f85b7b3.ico
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 15 KiB |
138
crates/pages/message-box/dist/index.html
vendored
Normal file
138
crates/pages/message-box/dist/index.html
vendored
Normal file
|
|
@ -0,0 +1,138 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<!-- Disable zooming: -->
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
|
||||
|
||||
<head>
|
||||
<title>Zach's Message Box</title>
|
||||
|
||||
|
||||
<script type="module">
|
||||
import init, * as bindings from '/contact/message-box-81c3b0730baaa65a.js';
|
||||
const wasm = await init({ module_or_path: '/contact/message-box-81c3b0730baaa65a_bg.wasm' });
|
||||
|
||||
|
||||
window.wasmBindings = bindings;
|
||||
|
||||
|
||||
dispatchEvent(new CustomEvent("TrunkApplicationStarted", {detail: {wasm}}));
|
||||
|
||||
</script>
|
||||
<!-- this is the base url relative to which other urls will be constructed. trunk will insert this from the public-url option -->
|
||||
<base href="/contact/" />
|
||||
|
||||
<link rel="icon" href="/contact/favicon-977e402a1f85b7b3.ico" integrity="sha384-adiTkY7A3YEZdWqpY38nCsSmMtfCj6yG/HGAO0rbRDnX6McWyhWtZea4+aOgM5lx"/>
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="manifest" href="manifest.json">
|
||||
<meta name="theme-color" media="(prefers-color-scheme: light)" content="white">
|
||||
<meta name="theme-color" media="(prefers-color-scheme: dark)" content="#404040">
|
||||
|
||||
<style>
|
||||
html {
|
||||
/* Remove touch delay: */
|
||||
touch-action: manipulation;
|
||||
}
|
||||
|
||||
body {
|
||||
/* Light mode background color for what is not covered by the egui canvas,
|
||||
or where the egui canvas is translucent. */
|
||||
background: #909090;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body {
|
||||
/* Dark mode background color for what is not covered by the egui canvas,
|
||||
or where the egui canvas is translucent. */
|
||||
background: #404040;
|
||||
}
|
||||
}
|
||||
|
||||
/* Allow canvas to fill entire web page: */
|
||||
html,
|
||||
body {
|
||||
overflow: hidden;
|
||||
margin: 0 !important;
|
||||
padding: 0 !important;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* Make canvas fill entire document: */
|
||||
canvas {
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.centered {
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
color: #f0f0f0;
|
||||
font-size: 24px;
|
||||
font-family: Ubuntu-Light, Helvetica, sans-serif;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------- */
|
||||
/* Loading animation from https://loading.io/css/ */
|
||||
.lds-dual-ring {
|
||||
display: inline-block;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.lds-dual-ring:after {
|
||||
content: " ";
|
||||
display: block;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
margin: 0px;
|
||||
border-radius: 50%;
|
||||
border: 3px solid #fff;
|
||||
border-color: #fff transparent #fff transparent;
|
||||
animation: lds-dual-ring 1.2s linear infinite;
|
||||
}
|
||||
|
||||
@keyframes lds-dual-ring {
|
||||
0% {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<link rel="modulepreload" href="/contact/message-box-81c3b0730baaa65a.js" crossorigin="anonymous" integrity="sha384-vm9LKVk1ImDC2qelN33GPA2icdCFzt9ems3lW6+/pvzinI1qEIojH5niV2mp1xEf"><link rel="preload" href="/contact/message-box-81c3b0730baaa65a_bg.wasm" crossorigin="anonymous" integrity="sha384-Fx451G7JvK+TUne33FqaswCa3UrCNzbE9P6TMYEinx32/DBE49W7G9lj6Sx4ktky" as="fetch" type="application/wasm"></head>
|
||||
|
||||
<body>
|
||||
<!-- The WASM code will resize the canvas dynamically -->
|
||||
<!-- the id is hardcoded in main.rs . so, make sure both match. -->
|
||||
<canvas id="the_canvas_id"></canvas>
|
||||
|
||||
<!-- the loading spinner will be removed in main.rs -->
|
||||
<div class="centered" id="loading_text">
|
||||
<noscript>You need javascript to use this website</noscript>
|
||||
<p style="font-size:16px">
|
||||
Loading…
|
||||
</p>
|
||||
<div class="lds-dual-ring"></div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
11
crates/pages/message-box/dist/manifest.json
vendored
Normal file
11
crates/pages/message-box/dist/manifest.json
vendored
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"name": "Message Box",
|
||||
"short_name": "message-box",
|
||||
"icons": [],
|
||||
"lang": "en-US",
|
||||
"id": "/index.html",
|
||||
"start_url": "./index.html",
|
||||
"display": "standalone",
|
||||
"background_color": "white",
|
||||
"theme_color": "white"
|
||||
}
|
||||
1779
crates/pages/message-box/dist/message-box-81c3b0730baaa65a.js
vendored
Normal file
1779
crates/pages/message-box/dist/message-box-81c3b0730baaa65a.js
vendored
Normal file
File diff suppressed because it is too large
Load diff
BIN
crates/pages/message-box/dist/message-box-81c3b0730baaa65a_bg.wasm
vendored
Normal file
BIN
crates/pages/message-box/dist/message-box-81c3b0730baaa65a_bg.wasm
vendored
Normal file
Binary file not shown.
55
nginx-setup/zachery.lol
Normal file
55
nginx-setup/zachery.lol
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
server {
|
||||
server_name zachery.lol www.zachery.lol;
|
||||
|
||||
error_log /var/log/nginx/zachery.lol.error.log;
|
||||
access_log /var/log/nginx/zachery.lol.access.log;
|
||||
|
||||
location /code/ {
|
||||
proxy_pass http://localhost:3001/;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection 'upgrade';
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_cache_bypass $http_upgrade;
|
||||
}
|
||||
|
||||
location / {
|
||||
proxy_pass http://localhost:3000;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection 'upgrade';
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_cache_bypass $http_upgrade;
|
||||
}
|
||||
|
||||
# Optional: hide NGINX version
|
||||
server_tokens off;
|
||||
|
||||
listen 443 ssl; # managed by Certbot
|
||||
listen [::]:443 ssl ipv6only=on; # managed by Certbot
|
||||
ssl_certificate /etc/letsencrypt/live/zachery.lol/fullchain.pem; # managed by Certbot
|
||||
ssl_certificate_key /etc/letsencrypt/live/zachery.lol/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
|
||||
}
|
||||
|
||||
server {
|
||||
if ($host = www.zachery.lol) {
|
||||
return 301 https://$host$request_uri;
|
||||
} # managed by Certbot
|
||||
|
||||
if ($host = zachery.lol) {
|
||||
return 301 https://$host$request_uri;
|
||||
} # managed by Certbot
|
||||
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
server_name zachery.lol www.zachery.lol;
|
||||
return 404; # managed by Certbot
|
||||
}
|
||||
Loading…
Reference in a new issue