Initial commit of simple php site.
This commit is contained in:
@@ -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."
|
||||
@@ -0,0 +1,3 @@
|
||||
<?php
|
||||
define('ROOT', __DIR__);
|
||||
require __DIR__ . '/src/router.php';
|
||||
@@ -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';
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
body {
|
||||
background-color: #191919;
|
||||
color: #ffffff;
|
||||
}
|
||||
@@ -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') ?>
|
||||
@@ -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') ?>
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
</body>
|
||||
<footer>
|
||||
</footer>
|
||||
</html
|
||||
@@ -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>
|
||||
@@ -465,3 +465,7 @@ label input {
|
||||
.debug-toggle-label {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* ADDITIONAL */
|
||||
.main-title { margin-bottom:0px !important; }
|
||||
.sub-title { margin-top:10px !important; }
|
||||
Reference in New Issue
Block a user