first commit

This commit is contained in:
Stephan Hadan 2025-01-05 21:09:10 +01:00
commit c0ff390c19
26 changed files with 688 additions and 0 deletions

40
.github/workflows/deploy.yml vendored Normal file
View file

@ -0,0 +1,40 @@
name: Build,test and deploy iamstephan.info
run-name: ${{ gitea.actor }} is building, testing and deploying the static page
on:
push:
branches:
- prod
jobs:
deploy-prod:
runs-on: ubuntu-latest
steps:
- run: echo "The job was automatically triggered by a ${{ gitea.event_name }} event."
- run: echo "The name of your branch is ${{ gitea.ref }} and your repository is ${{ gitea.repository }}."
- name: Check out repository code
uses: actions/checkout@v4
with:
submodules: 'true'
github-server-url: 'https:/github.com/'
- name: Install apt packages
run: apt update && apt install -y jq rsync
- name: Get latest Hugo version
run: |
url=$(curl --silent "https://api.github.com/repos/gohugoio/hugo/releases/latest" | jq -r '.assets[] | select(.name | contains("linux-amd64.tar.gz")) | .browser_download_url' | grep -E 'hugo_[0-9]+\.[0-9]+\.[0-9]+_linux-amd64.tar.gz')
wget -P /tmp/hugo/ "$url"
version=$(echo "$url" | grep -oP 'hugo_\K[0-9]+\.[0-9]+\.[0-9]+')
echo "Downloaded Hugo version: $version"
- name: Unpack Hugo
run: tar -xf /tmp/hugo/* -C ${{ gitea.workspace }}/bin
- name: Build the static webpage
run: ${{ gitea.workspace }}/bin/hugo --minify
- name: Test static page
run: bash ${{ gitea.workspace }}/bin/test_static_page.sh
- name: Create private key
run: |
echo "${{ secrets.ACT_RUNNER_KEY }}" > /tmp/act_runner_key
chmod 600 /tmp/act_runner_key
- name: rsync public directory
run: |
/usr/bin/rsync -avz --delete -e "ssh -i /tmp/act_runner_key -o StrictHostKeyChecking=no" ${{ gitea.workspace }}/public/* root@vps03.hadan-it.com:/opt/npm/webspace/iamstephan.info/
- run: echo "This job's status is ${{ job.status }}."

3
.gitmodules vendored Normal file
View file

@ -0,0 +1,3 @@
[submodule "themes/hugo-goa"]
path = themes/hugo-goa
url = https://github.com/shenoydotme/hugo-goa.git

0
.hugo_build.lock Normal file
View file

5
archetypes/default.md Normal file
View file

@ -0,0 +1,5 @@
+++
date = '{{ .Date }}'
draft = true
title = '{{ replace .File.ContentBaseName "-" " " | title }}'
+++

26
bin/test_static_page.sh Executable file
View file

@ -0,0 +1,26 @@
#!/bin/bash
PORT=8080
python3 -m http.server $PORT --directory public/ &
SERVER_PID=$!
# Give it a moment to start
sleep 2
# Check if the server is running
if ! ps -p $SERVER_PID > /dev/null; then
echo "HTTP server failed to start."
exit 1
fi
# Check HTTP status
status_code=$(curl -o /dev/null -s -w "%{http_code}" http://localhost:$PORT)
# Kill the http server
kill $SERVER_PID
# Check if status code is 200
if [ "$status_code" -ne 200 ]; then
echo "Website returned a non-200 status code: $status_code"
exit 1
fi

4
hugo.toml Normal file
View file

@ -0,0 +1,4 @@
baseURL = 'https://iamstephan.info/'
languageCode = 'en-us'
title = 'Hi, I am Stephan'
theme = 'hugo-goa'

60
public/404.html Normal file
View file

@ -0,0 +1,60 @@
<!DOCTYPE html>
<html lang="en-us">
<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>
My New Hugo Site - 404 Page not found
</title>
<meta name="generator" content="Hugo 0.140.2">
<link rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Lato:wght@300;400&family=Roboto+Slab:wght@400;700&family=Roboto:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700" />
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC"
crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
<link rel="stylesheet" href="http://localhost:1313/css/main.css">
<link rel="stylesheet" href="http://localhost:1313/css/custom.css">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/site.webmanifest">
<meta name="theme-color" content="#ffffff"></head>
<body lang="en-us">
<div class="container my-auto">
<section id="error-pane" class="text-center error">
<h1 class="text-center">404</h1>
<p>Sorry! That page does not exist. It may have been removed or moved to a new section on the site. Click <a
href="/">here</a> go back to the home page.</p>
</section>
<footer class="text-center footer">
<hr />
</footer>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"
integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
<script src="/js/custom.js"></script>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
public/apple-touch-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

View file

@ -0,0 +1,68 @@
<!DOCTYPE html>
<html lang="en-us">
<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>
My New Hugo Site - Categories
</title>
<meta name="generator" content="Hugo 0.140.2">
<link rel="alternate" type="application/rss&#43;xml" href="http://localhost:1313/categories/index.xml">
<link rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Lato:wght@300;400&family=Roboto+Slab:wght@400;700&family=Roboto:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700" />
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC"
crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
<link rel="stylesheet" href="http://localhost:1313/css/main.css">
<link rel="stylesheet" href="http://localhost:1313/css/custom.css">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/site.webmanifest">
<meta name="theme-color" content="#ffffff"><link rel="alternate" type="application/rss+xml" title="My New Hugo Site" href="/categories/index.xml" />
<link rel="alternate" type="application/json" title="My New Hugo Site" href="http://localhost:1313/feed.json" />
<link rel="EditURI" type="application/rsd+xml" href="http://localhost:1313/rsd.xml" /></head>
<body lang="en-us">
<div class="container my-auto">
<section id="list-pane" class="list">
<ul class="list-unstyled">
</ul>
</section>
<section id="menu-pane" class="menu text-center">
<h4 class="text-center mt-3"><a class="menu-item" href="http://localhost:1313/">home</a></h4>
</section>
<footer class="text-center footer">
<hr />
</footer>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"
integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
<script src="/js/custom.js"></script>
</body>
</html>

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Categories on My New Hugo Site</title>
<link>http://localhost:1313/categories/</link>
<description>Recent content in Categories on My New Hugo Site</description>
<generator>Hugo</generator>
<language>en-us</language>
<atom:link href="http://localhost:1313/categories/index.xml" rel="self" type="application/rss+xml" />
</channel>
</rss>

1
public/css/custom.css Normal file
View file

@ -0,0 +1 @@
/* Add custom CSS here. */

229
public/css/main.css Normal file
View file

@ -0,0 +1,229 @@
@-ms-viewport {
width: device-width;
}
@-o-viewport {
width: device-width;
}
@viewport {
width: device-width;
}
a,
a:hover,
a:visited,
a:link {
text-decoration: none;
color: rgb(24 24 27);
}
body {
font-family: "Roboto Slab", "Roboto", "Lato", sans-serif;
font-size: 20px;
font-weight: 400;
width: auto;
height: 100%;
min-height: 100%;
margin: 0;
background-color: #fcfcfc;
}
html {
position: relative;
height: 100%;
min-height: 100%;
margin: 0;
}
li {
text-align: left;
}
.author {
color: #444;
}
.author h1,
.author h2,
.author h3,
.author h4,
.author h5,
.author h6,
.author p {
font-family: "Roboto Slab", serif;
}
.category {
color: #966 !important;
}
.container {
overflow: auto;
max-width: 800px;
padding: 0 15px;
}
.content {
margin-top: 20px;
margin-bottom: 20px;
}
.content a {
text-decoration: none;
color: rgb(153 27 27);
}
div.content {
font-family: "Roboto", sans-serif;
font-size: 18px;
font-weight: 300;
color: #777;
}
.copyright {
font-family: "Roboto", sans-serif;
font-size: 12px;
font-weight: 200;
}
.description {
font-family: "Roboto", sans-serif;
font-weight: 200;
color: rgb(161 161 170);
font-size: 16px;
}
.error {
font-family: "Roboto", sans-serif;
font-weight: 300;
margin-top: 100px;
}
.error a {
color: rgb(153 27 27);
}
.error h1 {
font-size: 80px;
color: #8b8b8b;
}
.error p {
margin-top: 150px;
color: #777;
}
.excerpt {
font-family: "Lato", sans-serif;
font-size: 18px;
font-weight: 200;
color: #555;
margin-bottom: 20px;
}
.footer {
margin-top: 10px;
color: #8b8b8b;
}
.header {
margin-top: 60px;
margin-bottom: 20px;
}
.headshot {
width: 180px;
height: 180px;
object-fit: cover;
}
.info {
margin-top: 10px;
margin-bottom: 20px;
}
.intro {
font-family: "Roboto Slab", serif;
font-weight: 300;
font-size: 20px;
color: rgb(82 82 91);
}
h3.intro {
margin-top: 0px;
}
.list {
font-family: "Roboto", sans-serif;
margin-top: 50px;
}
.list li {
list-style: none;
}
.list-entry {
font-family: "Roboto Slab", serif;
font-size: 25px;
font-weight: 400;
margin-top: 10px;
margin-bottom: 20px;
}
.list-entry-link {
padding: 0;
}
.main-menu {
margin-top: 10px;
margin-bottom: 20px;
}
.menu {
margin-top: 10px;
margin-bottom: 20px;
}
.menu-item {
font-family: "Lato", sans-serif;
font-size: 20px;
font-weight: 300;
text-decoration: none;
color: rgb(153 27 27) !important;
}
.meta {
font-family: "Roboto", sans-serif;
font-size: 12px;
font-weight: 200;
color: rgb(113 113 122);
}
a.meta {
color: rgb(153 27 27);
}
h6.meta {
font-family: "Roboto", sans-serif;
font-size: 12px;
font-weight: 200;
color: rgb(113 113 122);
}
section.meta {
margin-top: ;
}
.powered {
font-family: "Roboto", sans-serif;
font-size: 12px;
font-weight: 300;
}
.social {
margin: 20px 10px;
}
.social a {
color: #526d7a;
margin: 5px;
}
.title {
font-family: "Roboto Slab", serif;
font-weight: 400;
rgb(24 24 27);
}
header.title {
margin-top: 50px;
padding: 0px;
}
@media (max-width: 991px) {
.header {
margin-top: 50px;
margin-bottom: 20px;
}
.list {
font-family: "Roboto", sans-serif;
margin-top: 30px;
}
}
pre > code {
white-space: pre;
word-wrap: initial;
word-break: initial;
}

BIN
public/favicon-16x16.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 430 B

BIN
public/favicon-32x32.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

BIN
public/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

118
public/index.html Normal file
View file

@ -0,0 +1,118 @@
<!DOCTYPE html>
<html lang="en-us">
<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>
My New Hugo Site
</title>
<meta name="generator" content="Hugo 0.140.2">
<link rel="alternate" type="application/rss&#43;xml" href="http://localhost:1313/index.xml">
<link rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Lato:wght@300;400&family=Roboto+Slab:wght@400;700&family=Roboto:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700" />
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC"
crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
<link rel="stylesheet" href="http://localhost:1313/css/main.css">
<link rel="stylesheet" href="http://localhost:1313/css/custom.css">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/site.webmanifest">
<meta name="theme-color" content="#ffffff"><link rel="alternate" type="application/rss+xml" title="My New Hugo Site" href="/index.xml" />
<link rel="alternate" type="application/json" title="My New Hugo Site" href="http://localhost:1313/feed.json" />
<link rel="EditURI" type="application/rsd+xml" href="http://localhost:1313/rsd.xml" /></head>
<body lang="en-us">
<div class="container my-auto">
<header class="text-center header">
<h1 class="author mt-3"></h1>
</header>
<section id="info-pane" class="text-center info">
</section>
<section id="social-pane" class="text-center social">
</section>
<footer class="text-center footer">
<hr />
</footer>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"
integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
<script src="/js/custom.js"></script>
</body>
</html>

11
public/index.xml Normal file
View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>My New Hugo Site</title>
<link>http://localhost:1313/</link>
<description>Recent content on My New Hugo Site</description>
<generator>Hugo</generator>
<language>en-us</language>
<atom:link href="http://localhost:1313/index.xml" rel="self" type="application/rss+xml" />
</channel>
</rss>

1
public/js/custom.js Normal file
View file

@ -0,0 +1 @@
// Insert custom javascript here.

1
public/manifest.json Normal file
View file

@ -0,0 +1 @@
{"name":"hugo-goa","short_name":"goa","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}

19
public/site.webmanifest Normal file
View file

@ -0,0 +1,19 @@
{
"name": "hugo-goa",
"short_name": "goa",
"icons": [
{
"src": "/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/android-chrome-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
],
"theme_color": "#ffffff",
"background_color": "#ffffff",
"display": "standalone"
}

11
public/sitemap.xml Normal file
View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>http://localhost:1313/categories/</loc>
</url><url>
<loc>http://localhost:1313/</loc>
</url><url>
<loc>http://localhost:1313/tags/</loc>
</url>
</urlset>

68
public/tags/index.html Normal file
View file

@ -0,0 +1,68 @@
<!DOCTYPE html>
<html lang="en-us">
<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>
My New Hugo Site - Tags
</title>
<meta name="generator" content="Hugo 0.140.2">
<link rel="alternate" type="application/rss&#43;xml" href="http://localhost:1313/tags/index.xml">
<link rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Lato:wght@300;400&family=Roboto+Slab:wght@400;700&family=Roboto:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700" />
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC"
crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
<link rel="stylesheet" href="http://localhost:1313/css/main.css">
<link rel="stylesheet" href="http://localhost:1313/css/custom.css">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/site.webmanifest">
<meta name="theme-color" content="#ffffff"><link rel="alternate" type="application/rss+xml" title="My New Hugo Site" href="/tags/index.xml" />
<link rel="alternate" type="application/json" title="My New Hugo Site" href="http://localhost:1313/feed.json" />
<link rel="EditURI" type="application/rsd+xml" href="http://localhost:1313/rsd.xml" /></head>
<body lang="en-us">
<div class="container my-auto">
<section id="list-pane" class="list">
<ul class="list-unstyled">
</ul>
</section>
<section id="menu-pane" class="menu text-center">
<h4 class="text-center mt-3"><a class="menu-item" href="http://localhost:1313/">home</a></h4>
</section>
<footer class="text-center footer">
<hr />
</footer>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"
integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
<script src="/js/custom.js"></script>
</body>
</html>

11
public/tags/index.xml Normal file
View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Tags on My New Hugo Site</title>
<link>http://localhost:1313/tags/</link>
<description>Recent content in Tags on My New Hugo Site</description>
<generator>Hugo</generator>
<language>en-us</language>
<atom:link href="http://localhost:1313/tags/index.xml" rel="self" type="application/rss+xml" />
</channel>
</rss>

1
themes/hugo-goa Submodule

@ -0,0 +1 @@
Subproject commit adbc3cba5130578c8500da640a05063d7a74215c