feat: add index.html to send people to
Deploy Website / build-and-deploy (push) Failing after 6m19s

This commit is contained in:
Andrew Rioux
2026-05-30 22:32:02 -04:00
parent a346f06d49
commit 47226ecad4
6 changed files with 367 additions and 3 deletions
+3 -1
View File
@@ -21,7 +21,9 @@ jobs:
chmod 400 ssh-key chmod 400 ssh-key
export NIX_PATH=nixpkgs=flake:nixpkgs:/nix/var/nix/profiles/per-user/root/channels/nixos export NIX_PATH=nixpkgs=flake:nixpkgs:/nix/var/nix/profiles/per-user/root/channels/nixos
/run/current-system/sw/bin/nix-shell -p rsync openssh --run \ /run/current-system/sw/bin/nix-shell -p rsync openssh --run \
'rsync -avz -e "ssh -oStrictHostKeyChecking=accept-new -i ssh-key" result/* deploy@andrew.riouxs.co:/srv/site' 'rsync -avz -e "ssh -oStrictHostKeyChecking=accept-new -i ssh-key" result/{build,index.html,resources} deploy@andrew.riouxs.co:/srv/site'
/run/current-system/sw/bin/nix-shell -p rsync openssh --run \
'rsync -avz -e "ssh -oStrictHostKeyChecking=accept-new -i ssh-key" --ignore-existing result/articles/* deploy@andrew.riouxs.co:/srv/site/articles'
- name: Remove SSH key - name: Remove SSH key
if: always() if: always()
+22
View File
@@ -0,0 +1,22 @@
#!/usr/bin/env bash
LINKS="$(ls articles/*.org | tac | head -n 10 | while read -r article; do
TITLE="$(grep -E '^#\+TITLE:' "$article" | sed -e 's/^#+TITLE:\s*//')"
DATE="$(git show --no-patch --no-notes --pretty='%as' `git rev-list -1 HEAD -- $article`)"
echo '<li>'
echo '<a href="'"${article/.org/}.html"'">'"<date>$DATE</date> - $TITLE"'</a>'
echo '<p>'
awk '/^\*\*+/ { found_header = 0; found_first_header = 1 } /.+/ { if (found_header) { print } } /^\* / { if (!found_first_header) { found_header = 1 } }' < "$article"
echo '</p>'
echo '</li>'
done)"
if [ -f index.html.in ]; then
FILE=index.html.in
else
FILE=index.html
fi
awk '/LINK_INSERT/ { at_stop = 1 } { if (!at_stop) { print } }' < $FILE
echo "$LINKS"
awk '{ if (at_start) { print } } /LINK_INSERT/ { at_start = 1 }' < $FILE
+10 -2
View File
@@ -6,17 +6,25 @@ let
text = builtins.readFile ./build/build-article.sh; text = builtins.readFile ./build/build-article.sh;
}; };
build-index = pkgs.writeShellApplication {
name = "build-index";
text = builtins.readFile ./build/build-index.sh;
};
articles = pkgs.stdenv.mkDerivation { articles = pkgs.stdenv.mkDerivation {
name = "articles"; name = "articles";
src = builtins.filterSource src = builtins.filterSource
(path: type: !(pkgs.lib.strings.hasPrefix "result" (baseNameOf path))) (path: type: !(pkgs.lib.strings.hasPrefix "result" (baseNameOf path)))
./.; ./.;
buildInputs = with pkgs; [ emacs git build-article ]; buildInputs = with pkgs; [ emacs git build-article build-index ];
buildPhase = '' buildPhase = ''
cp -a . $out cp -a . $out
cd $out cd $out
find . -name '*.org' -exec build-article {} \; mv index.html index.html.in
find . -name 'articles/*.org' -exec build-article {} \;
build-index > index.html
''; '';
}; };
in { inherit build-article articles; } in { inherit build-article articles; }
+85
View File
@@ -0,0 +1,85 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Andrew Rioux</title>
<link rel="stylesheet" href="/resources/index.css" />
</head>
<body>
<header class="hero">
<div class="container">
<h1>Andrew Rioux</h1>
<p class="subtitle">
Software Engineer &amp; Security Researcher
</p>
<nav class="links">
<a href="https://github.com/r-a303931">GitHub</a>
<a href="https://gitea.riouxs.co/">Gitea</a>
</nav>
</div>
</header>
<main class="container">
<section>
<h2>Projects</h2>
<div class="project-grid">
<article class="project-card">
<h3>Sparse</h3>
<p>Bind shell and C2 beacon/server implementations using direct network access to evade firewalls and auditing</p>
<ul class="tech-tags">
<li>Rust</li>
</ul>
<div class="project-links">
<a href="https://gitea.riouxs.co/andrew.rioux/sparse">Sparse</a>
<a href="https://gitea.riouxs.co/andrew.rioux/sparse-v2">Sparse v2</a>
</div>
</article>
<article class="project-card">
<h3>Jiujitsu</h3>
<p>System security and enumeration tool designed to run on systems plagued with adversaries</p>
<ul class="tech-tags">
<li>Rust</li>
<li>Nix</li>
<li>ELK</li>
<li>Wazuh</li>
</ul>
<div class="project-links">
<a href="https://github.com/luccdc/jj-rs">Source Code</a>
</div>
</article>
<article class="project-card">
<h3>CAP Event Manager</h3>
<p>Event management and reporting system for Civil Air Patrol units</p>
<ul class="tech-tags">
<li>TypeScript</li>
<li>Docker</li>
</ul>
<div class="project-links">
<a href="https://github.com/cap-md089/evmplus-v6">Source Code</a>
</div>
</article>
</div>
</section>
<section>
<h2>Recent Articles</h2>
<ul class="article-list">
LINK_INSERT
</ul>
</section>
</main>
<footer>
<div class="container">
<p>
&copy; 2026 Andrew Rioux
</p>
</div>
</footer>
</body>
</html>
+157
View File
@@ -0,0 +1,157 @@
:root {
--bg: #1e1e2e;
--bg-alt: #2a2a3a;
--bg-alt-2: #4a4a5a;
--fg: #e0e0e0;
--accent: #8aadf4;
--muted: #a0a0a0;
--border: #3a3a4a;
}
* {
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
}
body {
margin: 0;
background: var(--bg);
color: var(--fg);
font-family: "Inter", "Segoe UI", system-ui, sans-serif;
line-height: 1.7;
}
.container {
width: min(70rem, calc(100% - 2rem));
margin: 0 auto;
}
.hero {
border-bottom: 1px solid var(--border);
padding: 5rem 0 4rem;
}
.hero h1 {
margin: 0;
font-size: clamp(2.5rem, 6vw, 4rem);
font-weight: 700;
color: var(--accent);
}
.subtitle {
margin-top: 0.5rem;
color: var(--muted);
font-size: 1.1rem;
}
.intro {
max-width: 42rem;
margin-top: 2rem;
font-size: 1.05rem;
}
.links {
display: flex;
flex-wrap: wrap;
gap: 1rem;
margin-top: 2rem;
}
main {
padding: 3rem 0;
}
section + section {
margin-top: 4rem;
}
h2 {
margin-bottom: 1.5rem;
color: var(--accent);
font-size: 1.8rem;
}
.project-grid {
display: grid;
gap: 1.5rem;
grid-template-columns: repeat(
auto-fit,
minmax(18rem, 1fr)
);
}
.project-card {
background: var(--bg-alt);
border: 1px solid var(--border);
border-radius: 10px;
padding: 1.5rem;
}
.project-card h3 {
margin-top: 0;
margin-bottom: 0.75rem;
}
.project-card p {
margin-bottom: 1.25rem;
}
.project-links {
display: flex;
gap: 1rem;
}
.article-list {
list-style: none;
padding: 0;
margin: 0;
}
.article-list li {
background: var(--bg-alt);
border: 1px solid var(--border);
border-radius: 10px;
padding: 1.25rem;
}
.article-list li + li {
margin-top: 1rem;
}
.article-list p {
margin-bottom: 0;
color: var(--muted);
}
a,
a:visited {
color: var(--accent);
text-decoration: none;
border-bottom: 1px dashed var(--accent);
}
a:hover {
border-bottom-style: solid;
}
footer {
border-top: 1px solid var(--border);
margin-top: 4rem;
padding: 2rem 0;
color: var(--muted);
}
@media (max-width: 700px) {
.hero {
padding-top: 3rem;
}
.links {
flex-direction: column;
align-items: flex-start;
}
}
+90
View File
@@ -0,0 +1,90 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Andrew Rioux</title>
<link rel="stylesheet" href="/resources/index.css" />
</head>
<body>
<header class="hero">
<div class="container">
<h1>Andrew Rioux</h1>
<p class="subtitle">
Software Engineer &amp; Security Researcher
</p>
<nav class="links">
<a href="https://github.com/r-a303931">GitHub</a>
<a href="https://gitea.riouxs.co/">Gitea</a>
</nav>
</div>
</header>
<main class="container">
<section>
<h2>Projects</h2>
<div class="project-grid">
<article class="project-card">
<h3>Sparse</h3>
<p>Bind shell and C2 beacon/server implementations using direct network access</p>
<ul class="tech-tags">
<li>Rust</li>
</ul>
<div class="project-links">
<a href="https://gitea.riouxs.co/andrew.rioux/sparse">Sparse</a>
<a href="https://gitea.riouxs.co/andrew.rioux/sparse-v2">Sparse v2</a>
</div>
</article>
<article class="project-card">
<h3>Jiujitsu</h3>
<p>System security and enumeration tool designed to run on systems plagued with adversaries</p>
<ul class="tech-tags">
<li>Rust</li>
<li>Nix</li>
<li>ELK</li>
<li>Wazuh</li>
</ul>
<div class="project-links">
<a href="https://github.com/luccdc/jj-rs">Source Code</a>
</div>
</article>
<article class="project-card">
<h3>CAP Event Manager</h3>
<p>Event management and reporting system for Civil Air Patrol units</p>
<ul class="tech-tags">
<li>TypeScript</li>
<li>Docker</li>
</ul>
<div class="project-links">
<a href="https://github.com/cap-md089/evmplus-v6">Source Code</a>
</div>
</article>
</div>
</section>
<section>
<h2>Recent Articles</h2>
<ul class="article-list">
<li>
<a href="articles/20251017-direct-network-access.html"><date>2025-10-17</date> - Direct Network Access and Market Applications</a>
<p>
Direct network access is a technique that can be used to decrease the likelihood of detecting malicious network traffic on an endpoint. It can be seen as an extension of the MITRE ATT&CK technique T1205 Traffic Signaling, as it allows a threat actor to either respond to signaled traffic or to initiate traffic.
</p>
</li>
</ul>
</section>
</main>
<footer>
<div class="container">
<p>
&copy; 2026 Andrew Rioux
</p>
</div>
</footer>
</body>
</html>