Compare commits

..
Author SHA1 Message Date
JustinandClaude Sonnet 5 6cea0312d2 Add local static-server launch config for browser preview
Lets the site be served on localhost for testing (e.g. verifying
font/CSP fixes) without needing a separate dev setup.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-31 14:14:15 -05:00
JustinandClaude Sonnet 5 f45dfaa232 Fix CSP blocking Cloudflare Insights beacon and inline scripts
index.html carried two Content-Security-Policy meta tags that were
never reconciled, so browsers enforced their intersection: the
Cloudflare beacon script/connect endpoints, the profile photo from
ki5bhv.com, and the page's own inline script/onerror handler all got
silently blocked depending on which policy line was checked.

Collapse index.html down to a single correct policy, and add the
same static.cloudflareinsights.com / cloudflareinsights.com
allowances to _headers (the actual Cloudflare Pages response header)
and to k5bss.html's policy, since Cloudflare injects that beacon
site-wide.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-31 14:13:19 -05:00
JustinandClaude Sonnet 5 435f56e0cc Fix 404 on self-hosted IBM Plex Mono font
Download the actual woff2 file so it exists at the path style.css
already references, instead of relying on the unused Google Fonts
preconnect hints.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-31 14:09:38 -05:00
Justin 5d6eae87bf fixing issues with cloudflare 2026-08-30 16:17:44 -05:00
Justin a3b77de5aa added font to css 2026-08-30 16:06:07 -05:00
Justin ae21ab1be9 added the font into the html 2026-08-30 15:44:27 -05:00
Justin 1d9ec33761 added the font 2026-08-30 15:40:56 -05:00
Justin c74589555b header 2026-08-30 15:11:28 -05:00
Justin 2f244ea46d added PDQ Connent to job 2026-08-30 09:15:18 -05:00
Justin d89065ca4d added skilles that was was missing 2026-08-30 09:05:20 -05:00
Justin af7db894b3 fixed some spelling issues 2026-08-29 18:54:46 -05:00
Justin 617838a1e1 test 2026-08-29 09:57:26 -05:00
Justin Frasier 89063938d7 test 2026-08-29 09:52:07 -05:00
Justin 5ad5fd720d fix title change 2026-08-27 20:48:25 -05:00
Justin 24ad1a1097 change the title 2026-08-27 20:45:45 -05:00
Justin 1927c1e85f moved the date and local 2026-08-27 20:27:14 -05:00
Justin 5029d3ca76 move the dates 2026-08-27 20:23:29 -05:00
Justin 8ff376324c added Infrastructure Admin job 2026-08-27 20:12:01 -05:00
8 changed files with 104 additions and 13 deletions

No files matched your search

+11
View File
@@ -0,0 +1,11 @@
{
"version": "0.0.1",
"configurations": [
{
"name": "static-site",
"runtimeExecutable": "python",
"runtimeArgs": ["-m", "http.server", "8123"],
"port": 8123
}
]
}
+9
View File
@@ -0,0 +1,9 @@
/*
Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline' https://static.cloudflareinsights.com; style-src 'self' https://fonts.googleapis.com 'unsafe-inline'; font-src 'self' https://fonts.gstatic.com; img-src 'self' https://ki5bhv.com data:; connect-src 'self' https://cloudflareinsights.com; object-src 'none'; base-uri 'none'; frame-ancestors 'none'; form-action 'self'; upgrade-insecure-requests
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
Referrer-Policy: strict-origin-when-cross-origin
Permissions-Policy: accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Resource-Policy: same-origin
X-Permitted-Cross-Domain-Policies: none
+8
View File
@@ -1,5 +1,13 @@
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
@font-face {
font-family: 'IBM Plex Mono';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('/fonts/ibm-plex-mono-400.woff2') format('woff2');
}
:root {
--bg: #0a0c10;
--bg2: #0f1218;
@@ -0,0 +1,52 @@
@font-face {
font-family: 'IBM Plex Mono';
font-style: normal;
font-weight: 300;
font-display: swap;
src: url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3oQI8lc.ttf) format('truetype');
}
@font-face {
font-family: 'IBM Plex Mono';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F63fjptAgt5VM-kVkqdyU8n5ig.ttf) format('truetype');
}
@font-face {
font-family: 'IBM Plex Mono';
font-style: normal;
font-weight: 500;
font-display: swap;
src: url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3twJ8lc.ttf) format('truetype');
}
@font-face {
font-family: 'IBM Plex Mono';
font-style: normal;
font-weight: 600;
font-display: swap;
src: url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3vAO8lc.ttf) format('truetype');
}
@font-face {
font-family: 'IBM Plex Sans';
font-style: normal;
font-weight: 300;
font-stretch: normal;
font-display: swap;
src: url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXGKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1swZSAXcomDVmadSDtFlzAA.ttf) format('truetype');
}
@font-face {
font-family: 'IBM Plex Sans';
font-style: normal;
font-weight: 400;
font-stretch: normal;
font-display: swap;
src: url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXGKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1swZSAXcomDVmadSD6llzAA.ttf) format('truetype');
}
@font-face {
font-family: 'IBM Plex Sans';
font-style: normal;
font-weight: 500;
font-stretch: normal;
font-display: swap;
src: url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXGKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1swZSAXcomDVmadSD2FlzAA.ttf) format('truetype');
}
Binary file not shown.
+19 -12
View File
@@ -6,8 +6,9 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="referrer" content="strict-origin-when-cross-origin" />
<meta http-equiv="Content-Security-Policy" content="default-src 'none'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' https://ki5bhv.com data:; connect-src 'none'; frame-src 'none'; object-src 'none'; base-uri 'self'; form-action 'none'; upgrade-insecure-requests" />
<title>Justin Frasier | IT Support Analyst</title>
<meta http-equiv="Content-Security-Policy"
content="default-src 'self'; script-src 'self' 'unsafe-inline' https://static.cloudflareinsights.com; style-src 'self' 'unsafe-inline'; font-src 'self'; img-src 'self' https://ki5bhv.com data:; connect-src 'self' https://cloudflareinsights.com; frame-src 'none'; object-src 'none'; base-uri 'self'; form-action 'none'; upgrade-insecure-requests" />
<title>Justin Frasier | Infrastructure Administrator</title>
<link rel="sitemap" type="application/xml" href="/sitemap.xml" />
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect width='32' height='32' rx='4' fill='%230f1218'/%3E%3Ctext x='3' y='11' font-family='IBM Plex Mono,Courier New,monospace' font-size='6' fill='%234a5568'%3E~$%3C/text%3E%3Ctext x='2' y='27' font-family='IBM Plex Mono,Courier New,monospace' font-size='19' font-weight='600' fill='%2322c55e'%3Ejf%3C/text%3E%3C/svg%3E" />
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
@@ -16,9 +17,6 @@
<link rel="icon" type="image/png" sizes="256x256" href="/favicon-256x256.png" />
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link
href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@300;400;500;600&family=IBM+Plex+Sans:wght@300;400;500&display=swap"
rel="stylesheet">
<link rel="stylesheet" href="css/style.css">
</head>
@@ -31,7 +29,7 @@
<img class="profile-photo" src="https://ki5bhv.com/photo/justin1.jpg" alt="Justin Frasier"
onerror="this.style.display='none'">
<div class="profile-name">Justin Frasier</div>
<div class="profile-title">IT Support Analyst</div>
<div class="profile-title">Infrastructure Administrator</div>
<div class="profile-loc">📍 Bossier City, LA</div>
<hr class="divider">
@@ -65,7 +63,7 @@
<div class="prompt"><span>~/k5bss</span> $ whoami</div>
<h1>Justin<br>Frasier<span class="cursor"></span></h1>
<p class="hero-sub">
<strong>IT Support Analyst</strong> with a background in computer systems, infrastructure, and security.
<strong>Infrastructure Administrator</strong> with a background in computer systems, infrastructure, and security.
CompTIA A+ certified with hands-on experience in <strong>Azure Active Directory</strong>,
Windows Server, networking, and self-hosted services.
Amateur radio operator <strong>(K5BSS — General Class)</strong>.
@@ -87,9 +85,12 @@
<h2><span class="hash">#</span>experience</h2>
<div class="exp-item">
<div class="exp-role">Infrastructure Administrator</div>
<div class="exp-meta">Aug 2026 — Present</div>
<div class="exp-role">IT Support Analyst</div>
<div class="exp-meta">Mar 2023 — Aug 2026</div>
<div class="exp-company">Margaritaville Resort &amp; Casino</div>
<div class="exp-meta">Mar 2023 — Present &nbsp;·&nbsp; Bossier City, LA</div>
<div class="exp-meta">Bossier City, LA</div>
<ul class="exp-list">
<li>Provide comprehensive Tier 1 and Tier 2 technical support across a large-scale resort and casino environment, diagnosing and resolving hardware, software, and network issues to minimize downtime and maintain seamless business operations.</li>
<li>Deploy, configure, and maintain Windows 10 and Windows 11 workstations, managing domain enrollment through Active Directory to uphold a secure, well-organized network infrastructure.</li>
@@ -102,6 +103,7 @@
<li>Manage the full help desk ticket lifecycle — logging, prioritizing, tracking, and resolving requests — ensuring timely support delivery and adherence to service-level expectations.</li>
<li>Utilize PDQ Inventory to maintain up-to-date hardware and software asset tracking across all endpoints, enabling informed decision-making for procurement, audits, and lifecycle management.</li>
<li>Leverage PDQ Deploy to automate software deployments and updates across the organization, reducing manual effort and ensuring consistent, timely rollouts enterprise wide.</li>
<li>Converting PDQ Deploy & Invertory to PDQ Connent. Using PDQ Connent to manage and push packages and update to workstations and laptopps.</li>
<li>Administer VMware vSphere environments, managing virtual machine provisioning, configuration, and maintenance to support reliable and scalable infrastructure operations.</li>
<li>Manage and support the Cisco phone system, handling configuration, provisioning, and troubleshooting of IP phones to ensure reliable communication across the organization.</li>
<li>Utilize TeamViewer to provide remote technical support, enabling efficient diagnosis and resolution of end-user issues without requiring an on-site visit.</li>
@@ -199,13 +201,18 @@
<div class="skill-cell"><span class="skill-icon">▸</span>Help Desk Ticketing Systems</div>
<div class="skill-cell"><span class="skill-icon">▸</span>PDQ Deploy</div>
<div class="skill-cell"><span class="skill-icon">▸</span>PDQ Inventory</div>
<div class="skill-cell"><span class="skill-icon">▸</span>Cisco Phone Systems</div>
<div class="skill-cell"><span class="skill-icon">▸</span>PDQ Connent</div>
<div class="skill-cell"><span class="skill-icon">▸</span>Cisco Systems</div>
<div class="skill-cell"><span class="skill-icon">▸</span>TeamViewer</div>
<div class="skill-cell"><span class="skill-icon">▸</span>PRTG Network Monitor</div>
<div class="skill-cell"><span class="skill-icon">▸</span>Web Hosting</div>
<div class="skill-cell"><span class="skill-icon">▸</span>Docker & Container Management</div>
<div class="skill-cell"><span class="skill-icon">▸</span>Ansible</div>
<div class="skill-cell"><span class="skill-icon">▸</span>Proxmox VE</div>
<div class="skill-cell"><span class="skill-icon">▸</span>Rubrik Backup</div>
<div class="skill-cell"><span class="skill-icon">▸</span>Proxmox Backup Server</div>
<div class="skill-cell"><span class="skill-icon">▸</span>Nginx Proxy Manager</div>
<div class="skill-cell"><span class="skill-icon">▸</span>Nginx Web Server</div>
<div class="skill-cell"><span class="skill-icon">▸</span>Windows server DNS</div>
<div class="skill-cell"><span class="skill-icon">▸</span>Windows server DHCP</div>
</div>
<div class="skills-subheading">Development IDEs</div>
@@ -382,4 +389,4 @@
</body>
</html>
</html>
+1 -1
View File
@@ -5,7 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="referrer" content="strict-origin-when-cross-origin">
<meta http-equiv="Content-Security-Policy" content="default-src 'none'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' data:; connect-src 'none'; frame-src 'none'; object-src 'none'; base-uri 'self'; form-action 'none'; upgrade-insecure-requests">
<meta http-equiv="Content-Security-Policy" content="default-src 'none'; script-src 'self' 'unsafe-inline' https://static.cloudflareinsights.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' data:; connect-src 'self' https://cloudflareinsights.com; frame-src 'none'; object-src 'none'; base-uri 'self'; form-action 'none'; upgrade-insecure-requests">
<title>K5BSS — Justin Frasier · Ham Radio Station</title>
<link rel="sitemap" type="application/xml" href="/sitemap.xml">
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect width='32' height='32' rx='4' fill='%230f1218'/%3E%3Ctext x='3' y='11' font-family='IBM Plex Mono,Courier New,monospace' font-size='6' fill='%234a5568'%3E~$%3C/text%3E%3Ctext x='2' y='27' font-family='IBM Plex Mono,Courier New,monospace' font-size='19' font-weight='600' fill='%2322c55e'%3Ejf%3C/text%3E%3C/svg%3E">
+4
View File
@@ -0,0 +1,4 @@
User-agent: *
Allow: /
Sitemap: https://k5bss.com/sitemap.xml