Initial commit of simple php site.

This commit is contained in:
2026-05-22 13:02:57 +02:00
parent 96419b9f81
commit b2b00df260
11 changed files with 129 additions and 7 deletions
Executable
+20
View File
@@ -0,0 +1,20 @@
#!/bin/bash
set -e
REMOTE_PATH="/home/admin/www/jasonhilder.dev/"
echo "Deploying to server..."
# Sync local project to server over SSH, only transferring changed files.
# -a = archive mode (preserves permissions, timestamps etc)
# -v = verbose output
# -z = compress data during transfer
# --delete = remove files on server that no longer exist locally
# --exclude = skip these files/dirs, they don't belong on the server
rsync -avz --delete \
--exclude='.git' \
--exclude='README.md' \
--exclude='deploy.sh' \
./ "server:$REMOTE_PATH"
echo "Deploy complete."
+3
View File
@@ -0,0 +1,3 @@
<?php
define('ROOT', __DIR__);
require __DIR__ . '/src/router.php';
+43
View File
@@ -0,0 +1,43 @@
<?php
declare(strict_types=1);
// --- Security headers ---
header_remove('X-Powered-By');
header('X-Frame-Options: DENY');
header('X-Content-Type-Options: nosniff');
header('Referrer-Policy: strict-origin-when-cross-origin');
header('Content-Security-Policy: default-src \'self\'');
// --- Routing ---
$uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
if ($uri === false || $uri === null) {
http_response_code(400);
exit;
}
$routes = [
'/' => 'web/pages/home.php',
'/about' => 'web/pages/about.php',
];
$base = realpath(ROOT . '/web/pages');
if ($base === false) {
http_response_code(500);
exit;
}
if (array_key_exists($uri, $routes)) {
$real = realpath(ROOT . '/' . $routes[$uri]);
if ($real !== false && str_starts_with($real, $base . DIRECTORY_SEPARATOR)) {
require $real;
} else {
http_response_code(403);
exit;
}
} else {
http_response_code(404);
require ROOT . '/web/pages/404.php';
}
-4
View File
@@ -1,4 +0,0 @@
body {
background-color: #191919;
color: #ffffff;
}
+6
View File
@@ -0,0 +1,6 @@
<?php include_once(ROOT . '/web/partials/head.php'); ?>
<h1>404</h1>
<p>Seems this is not what you are looking for...</p>
<?php include_once(ROOT . '/web/partials/footer.php') ?>
+33
View File
@@ -0,0 +1,33 @@
<?php include_once(ROOT . '/web/partials/head.php'); ?>
<section>
<h2 class="main-title">Hi, I'm Jason</h2>
<h1 class="sub-title">Software engineer.</h1>
<p>
I build backend systems, data pipelines, and internal tooling. I have a bias toward simplicity and the shortest path
to something solid — built to last, not just to ship. I'd rather understand a system deeply than paper over it with abstractions.
</p>
<p>
When I'm not working, I'm either in the water surfing, spending time with my girlfriend, playing games, or digging into systems programming
— CPU simulators, indie game experiments, and the custom tooling that tends to grow around them. I run Linux, daily-drive a
Happy Hacking Keyboard, and have strong opinions about my desktop setup — some might call it a problem, I call it a hobby.
</p>
<div>
<p>Values I hold in work and life</p><br>
<span>Simplicity.</span><br>
<span>Pragmatism.</span><br>
<span>Minimalism.</span><br>
<span>Right tool for the job.</span><br>
<span>Unix philosophy</span><br>
</div>
<p> ---------------------------------------------- </p>
<div>
<a target="_blank" href="https://codeberg.org/jasonhilder">Codeberg</a>
<a target="_blank" href="https://github.com/jasonhilder">Github</a>
<a target="_blank" href="https://www.linkedin.com/in/jason-hilder/">LinkedIn</a>
<p><small>Active work lives on Codeberg — GitHub is kept as an archive of older projects.</small></p>
</div>
</section>
<?php include_once(ROOT . '/web/partials/footer.php') ?>
+4
View File
@@ -0,0 +1,4 @@
</body>
<footer>
</footer>
</html
+13
View File
@@ -0,0 +1,13 @@
<!DOCTYPE html>
<html>
<head>
<title>Jason Hilder</title>
<link rel="apple-touch-icon" sizes="180x180" href="/web/static/favicon/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/web/static/favicon/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/web/static/favicon/favicon-16x16.png">
<link rel="manifest" href="/web/static/favicon/site.webmanifest">
<link rel="stylesheet" href="/web/static/css/reset.css">
<link rel="stylesheet" href="/web/static/css/index.css">
<script src="/web/static/js/index.js" defer></script>
</head>
<body>
@@ -148,7 +148,7 @@ table {
th, td { th, td {
border: var(--border-thickness) solid var(--text-color); border: var(--border-thickness) solid var(--text-color);
padding: padding:
calc((var(--line-height) / 2)) calc((var(--line-height) / 2))
calc(1ch - var(--border-thickness) / 2) calc(1ch - var(--border-thickness) / 2)
calc((var(--line-height) / 2) - (var(--border-thickness))) calc((var(--line-height) / 2) - (var(--border-thickness)))
@@ -277,7 +277,7 @@ ul ul {
padding: 0 0 0 3ch; padding: 0 0 0 3ch;
margin: 0; margin: 0;
} }
ol li:before { ol li:before {
content: counters(item, ".") ". "; content: counters(item, ".") ". ";
counter-increment: item; counter-increment: item;
font-weight: var(--font-weight-medium); font-weight: var(--font-weight-medium);
@@ -298,7 +298,7 @@ li::marker {
input, button, textarea { input, button, textarea {
border: var(--border-thickness) solid var(--text-color); border: var(--border-thickness) solid var(--text-color);
padding: padding:
calc(var(--line-height) / 2 - var(--border-thickness)) calc(var(--line-height) / 2 - var(--border-thickness))
calc(1ch - var(--border-thickness)); calc(1ch - var(--border-thickness));
margin: 0; margin: 0;
@@ -465,3 +465,7 @@ label input {
.debug-toggle-label { .debug-toggle-label {
text-align: right; text-align: right;
} }
/* ADDITIONAL */
.main-title { margin-bottom:0px !important; }
.sub-title { margin-top:10px !important; }