add initial scaffolding
All checks were successful
ci/woodpecker/push/deploy-netlify Pipeline was successful
All checks were successful
ci/woodpecker/push/deploy-netlify Pipeline was successful
This commit is contained in:
parent
edf7ffa4e7
commit
5afcbeb202
13 changed files with 418 additions and 0 deletions
34
.woodpecker/deploy-netlify.yaml
Normal file
34
.woodpecker/deploy-netlify.yaml
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
steps:
|
||||||
|
build:
|
||||||
|
image: golang:1.20-bookworm
|
||||||
|
when:
|
||||||
|
- event: push
|
||||||
|
branch: [main, staging]
|
||||||
|
commands:
|
||||||
|
- wget https://github.com/gohugoio/hugo/releases/download/v0.116.0/hugo_extended_0.116.0_linux-amd64.deb && apt install ./hugo_extended_0.116.0_linux-amd64.deb && rm -f hugo_extended_0.116.0_linux-amd64.deb
|
||||||
|
- hugo --minify --destination ./public
|
||||||
|
|
||||||
|
deploy-staging:
|
||||||
|
image: node:alpine
|
||||||
|
when:
|
||||||
|
- event: push
|
||||||
|
branch: staging
|
||||||
|
secrets:
|
||||||
|
- NETLIFY_AUTH_TOKEN
|
||||||
|
- NETLIFY_SITE_ID
|
||||||
|
commands:
|
||||||
|
- npm install netlify-cli -g
|
||||||
|
- netlify deploy --alias stage --dir ./public
|
||||||
|
|
||||||
|
|
||||||
|
deploy-production:
|
||||||
|
image: node:alpine
|
||||||
|
when:
|
||||||
|
- event: push
|
||||||
|
branch: main
|
||||||
|
secrets:
|
||||||
|
- NETLIFY_AUTH_TOKEN
|
||||||
|
- NETLIFY_SITE_ID
|
||||||
|
commands:
|
||||||
|
- npm install netlify-cli -g
|
||||||
|
- netlify deploy --prod --dir ./public
|
6
archetypes/default.md
Normal file
6
archetypes/default.md
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
title: "{{ replace .Name "-" " " | title }}"
|
||||||
|
date: {{ .Date }}
|
||||||
|
draft: true
|
||||||
|
---
|
||||||
|
|
166
assets/scss/style.scss
Normal file
166
assets/scss/style.scss
Normal file
|
@ -0,0 +1,166 @@
|
||||||
|
$body-font-color: #c1c1c1;
|
||||||
|
$link-font-color: #00cccc;
|
||||||
|
$heading-font-color: #d66388;
|
||||||
|
$code-font-color: cornflowerblue;
|
||||||
|
$special-font-color: #c2f486;
|
||||||
|
$main-font-family: Consolas, monaco, monospace;
|
||||||
|
|
||||||
|
a {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
|
font: inherit;
|
||||||
|
vertical-align: baseline;
|
||||||
|
text-decoration: none;
|
||||||
|
color: $link-font-color;
|
||||||
|
&:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
|
font: inherit;
|
||||||
|
vertical-align: baseline;
|
||||||
|
font-family: $main-font-family;
|
||||||
|
font-size: 130%;
|
||||||
|
line-height: 1.4;
|
||||||
|
margin: 3% 5%;
|
||||||
|
max-width: 50em;
|
||||||
|
background: #303030;
|
||||||
|
color: $body-font-color;
|
||||||
|
}
|
||||||
|
h1 {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
|
font: inherit;
|
||||||
|
vertical-align: baseline;
|
||||||
|
line-height: 100%;
|
||||||
|
margin-top: 2rem;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
color: $heading-font-color;
|
||||||
|
&:before {
|
||||||
|
content: "# ";
|
||||||
|
content: "# "/ "";
|
||||||
|
}
|
||||||
|
&:after {
|
||||||
|
content: "-----";
|
||||||
|
content: "-----" / "";
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
h2 {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
|
font: inherit;
|
||||||
|
vertical-align: baseline;
|
||||||
|
line-height: 100%;
|
||||||
|
margin-top: 2rem;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
color: $heading-font-color;
|
||||||
|
&:before {
|
||||||
|
content: "## ";
|
||||||
|
content: "## "/ "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
h3 {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
|
font: inherit;
|
||||||
|
vertical-align: baseline;
|
||||||
|
line-height: 100%;
|
||||||
|
margin-top: 2rem;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
color: $heading-font-color;
|
||||||
|
&:before {
|
||||||
|
content: "### ";
|
||||||
|
content: "### "/ "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
html {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
|
font: inherit;
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
li {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
|
font: inherit;
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
p {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
|
font: inherit;
|
||||||
|
vertical-align: baseline;
|
||||||
|
margin-bottom: .75rem;
|
||||||
|
>code {
|
||||||
|
font: unset;
|
||||||
|
font-family: $main-font-family;
|
||||||
|
color: $code-font-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
span {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
|
font: inherit;
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
strong {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
|
font: inherit;
|
||||||
|
vertical-align: baseline;
|
||||||
|
font-weight: 700;
|
||||||
|
color: $heading-font-color;
|
||||||
|
&:before {
|
||||||
|
content: "*";
|
||||||
|
content: "*" / "";
|
||||||
|
}
|
||||||
|
&:after {
|
||||||
|
content: "*";
|
||||||
|
content: "*" / "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
u {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
|
font: inherit;
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
ul {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
|
font: inherit;
|
||||||
|
vertical-align: baseline;
|
||||||
|
list-style-type: none;
|
||||||
|
margin-left: 1rem;
|
||||||
|
>li {
|
||||||
|
&:before {
|
||||||
|
content: "-";
|
||||||
|
position: absolute;
|
||||||
|
margin-left: -1.1rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
code {
|
||||||
|
font: unset;
|
||||||
|
font-family: $main-font-family;
|
||||||
|
color: $code-font-color;
|
||||||
|
}
|
||||||
|
.special {
|
||||||
|
color: $special-font-color;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
55
content/_index.md
Normal file
55
content/_index.md
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
---
|
||||||
|
date: 2023-08-07T08:58:15+02:00
|
||||||
|
---
|
||||||
|
|
||||||
|
Hi, my name is `Laura Kalb` and I (literally) do things on the internet.
|
||||||
|
|
||||||
|
## About me
|
||||||
|
I'm a network engineer, with a pretty mixed technical background. I started my career in software development, and then
|
||||||
|
moved on to be a sysadmin with main emphasis on linux environments. Afterwards, I was a mix of network engineer and site
|
||||||
|
reliability engineer. Now I'm responsible for the network infrastructure at a big datacenter provider. Currently I'm
|
||||||
|
primarily working on network automation and our internal network infrastructure, and I'm playing a lot with the Golang
|
||||||
|
programming language =).
|
||||||
|
|
||||||
|
|
||||||
|
## Some nice stuff
|
||||||
|
A list of **tools**, **projects** and **fun stuff** that I already
|
||||||
|
have worked on or that I want to work on in the future.
|
||||||
|
|
||||||
|
- [A list of awesome stuff curated by me!](/interesting-stuff)
|
||||||
|
- building my own IPAM with [Go](https://go.dev/). Source: [https://codeberg.org/lauralani/ipam](https://codeberg.org/lauralani/ipam)
|
||||||
|
- My own URL Shortener with Go. Source: [https://codeberg.org/lauralani/go-urlsh](https://codeberg.org/lauralani/go-urlsh)
|
||||||
|
- hosting my own mail with [mailcow](https://mailcow.email/)
|
||||||
|
- managing my public domains via Infrastructure as Code with Git, CI/CD and [OctoDNS](https://github.com/octodns/octodns)
|
||||||
|
- wrote my own [DynDNS-Tool](https://codeberg.org/lauralani/dyndns-script) in Python (supports Azure DNS and OVH)
|
||||||
|
- Automated my home WIFI with radius assigned VLANs via Freeradius and custom frontend (Will be open sourced soon)
|
||||||
|
- Some minor other projects:
|
||||||
|
- [OVH ApiKey Manager](https://codeberg.org/lauralani/ovh-apikey-manager)
|
||||||
|
|
||||||
|
|
||||||
|
Notepad
|
||||||
|
My list of awesome technologies I want to implement soon:
|
||||||
|
- [Garage](https://garagehq.deuxfleurs.fr/): A S3-compatible storage (for selfhosting static websites like this one)
|
||||||
|
|
||||||
|
## Books
|
||||||
|
I always loved to read as many books as I can. So here I'm listing the books I've read since I started this webpage,
|
||||||
|
including a rating and short description. These are the last few books I've rated:
|
||||||
|
|
||||||
|
Soon
|
||||||
|
|
||||||
|
## Contact
|
||||||
|
Some ways to contact me:
|
||||||
|
- <a rel="me" href="https://social.lila.network/@lauralani">@lauralani@lila.network</a>
|
||||||
|
- mail (at) (this domain) [(PGP and S/MIME Keys)](/encryption)
|
||||||
|
- matrix: @lauralani:matrix.org or @lauralani:lila.network
|
||||||
|
- [LinkedIn](https://www.linkedin.com/in/laura-kalb/)
|
||||||
|
- [XING](https://www.xing.com/profile/Laura_Kalb3/)
|
||||||
|
|
||||||
|
## About this website
|
||||||
|
This website is open source and hosted at [Codeberg e.V.](https://codeberg.org/lauralani/www-lauka-net). It's an entirely static webpage generated with [{{< hugo-version >}}](https://gohugo.io/) and hosted with Netlify.
|
||||||
|
|
||||||
|
This page makes due without any cookies, frontend javascript, tracking and databases in the effort to make the web quick and usable again :)
|
||||||
|
|
||||||
|
This page was last updated at {{< last-updated >}}
|
||||||
|
|
||||||
|
Copyright (c) Laura Kalb 2021-{{< copyright-date >}} - [Impressum und Datenschutzerklärung](/impressum.html)
|
3
hugo.yaml
Normal file
3
hugo.yaml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
baseURL: http://example.org/
|
||||||
|
languageCode: en-us
|
||||||
|
title: Lauras Website <3
|
91
layouts/404.html
Normal file
91
layouts/404.html
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
---
|
||||||
|
permalink: 404.html
|
||||||
|
---
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta http-equiv=X-UA-Compatible content="IE=edge">
|
||||||
|
<meta name=viewport
|
||||||
|
content="shrink-to-fit=no,width=device-width,height=device-height,initial-scale=1,user-scalable=1">
|
||||||
|
<meta name="description" content="My little cozy place on the web.">
|
||||||
|
<title>404 Not Found - lauka.net</title>
|
||||||
|
<link rel="author" href="humans.txt" />
|
||||||
|
<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">
|
||||||
|
<!--<link rel='stylesheet' type='text/css' media='screen' href="css/style.css" />-->
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
font-family: Consolas, monaco, monospace;
|
||||||
|
font-size: 130%;
|
||||||
|
line-height: 1.4;
|
||||||
|
background: #303030;
|
||||||
|
color: #c1c1c1;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.code-area {
|
||||||
|
position: absolute;
|
||||||
|
width: 320px;
|
||||||
|
min-width: 320px;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
-webkit-transform: translate(-50%, -50%);
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.code-area > span {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 320px) {
|
||||||
|
.code-area {
|
||||||
|
font-size: 5vw;
|
||||||
|
min-width: auto;
|
||||||
|
width: 95%;
|
||||||
|
margin: auto;
|
||||||
|
padding: 5px;
|
||||||
|
padding-left: 10px;
|
||||||
|
line-height: 6.5vw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="code-area">
|
||||||
|
<span style="color: #777;font-style:italic;">
|
||||||
|
// 404 page not found.
|
||||||
|
</span>
|
||||||
|
<span>
|
||||||
|
<span style="color:#d65562;">
|
||||||
|
if
|
||||||
|
</span>
|
||||||
|
(<span style="color:#4ca8ef;">!</span><span style="font-style: italic;color:#bdbdbd;">found</span>)
|
||||||
|
{
|
||||||
|
</span>
|
||||||
|
<span>
|
||||||
|
<span style="padding-left: 15px;color:#2796ec">
|
||||||
|
<i style="width: 10px;display:inline-block"></i>throw
|
||||||
|
</span>
|
||||||
|
<span>
|
||||||
|
(<span style="color: #a6a61f">"404 Not Found"</span>);
|
||||||
|
<!--
|
||||||
|
(<span style="color: #a6a61f">"(╯°□°)╯︵ ┻━┻"</span>);
|
||||||
|
-->
|
||||||
|
</span>
|
||||||
|
<span style="display:block">}</span>
|
||||||
|
<span style="color: #777;font-style:italic;">
|
||||||
|
// <a href="/">Go home!</a>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
13
layouts/_default/baseof.html
Normal file
13
layouts/_default/baseof.html
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<!doctype html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<title>{{ or .Title .Site.Title }}{{ if ne .Kind "home" }} | {{ .CurrentSection.Title }}{{ end }}</title>
|
||||||
|
{{ $style := resources.Get "scss/style.scss" | toCSS | minify }}
|
||||||
|
<link rel="stylesheet" href="{{ $style.RelPermalink }}">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
{{ block "page" . }}{{ end }}
|
||||||
|
</body>
|
||||||
|
</html>
|
26
layouts/_default/list.html
Normal file
26
layouts/_default/list.html
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
{{ define "page" }}
|
||||||
|
<article class="container">
|
||||||
|
{{ if ne .Kind "home" }}
|
||||||
|
<a href="{{ .Site.Home.RelPermalink }}">Home</a>
|
||||||
|
{{ end }}
|
||||||
|
<h1>{{ .Title }}</h1>
|
||||||
|
{{ range .Sections }}
|
||||||
|
<h2><a href="{{ .RelPermalink }}">{{ .Title }}</a></h2>
|
||||||
|
<ul>
|
||||||
|
{{ range .Pages }}
|
||||||
|
<li>
|
||||||
|
<a href="{{ .RelPermalink }}">{{ or .Title .RelPermalink }}</a>
|
||||||
|
</li>
|
||||||
|
{{ end }}
|
||||||
|
</ul>
|
||||||
|
{{ end }}
|
||||||
|
<h2>Other</h2>
|
||||||
|
<ul>
|
||||||
|
{{ range .RegularPages }}
|
||||||
|
<li>
|
||||||
|
<a href="{{ .RelPermalink }}">{{ or .Title .RelPermalink }}</a>
|
||||||
|
</li>
|
||||||
|
{{ end }}
|
||||||
|
</ul>
|
||||||
|
</article>
|
||||||
|
{{ end }}
|
7
layouts/_default/single.html
Normal file
7
layouts/_default/single.html
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{{ define "page" }}
|
||||||
|
<article class="container">
|
||||||
|
<a href="{{ .CurrentSection.RelPermalink }}">Back to {{ .CurrentSection.Title }}</a>
|
||||||
|
<h1>{{ .Title }}</h1>
|
||||||
|
{{ .Content }}
|
||||||
|
</article>
|
||||||
|
{{ end }}
|
14
layouts/home.html
Normal file
14
layouts/home.html
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
<!doctype html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<title>{{ or .Title .Site.Title }}</title>
|
||||||
|
{{ $style := resources.Get "scss/style.scss" | toCSS | minify }}
|
||||||
|
<link rel="stylesheet" href="{{ $style.RelPermalink }}">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>{{ .Site.Title }}</h1>
|
||||||
|
{{ .Content }}
|
||||||
|
</body>
|
||||||
|
</html>
|
1
layouts/shortcodes/copyright-date.html
Normal file
1
layouts/shortcodes/copyright-date.html
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{{ now.Format "2006" }}
|
1
layouts/shortcodes/hugo-version.html
Normal file
1
layouts/shortcodes/hugo-version.html
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Hugo {{ .Site.Hugo.Version }}
|
1
layouts/shortcodes/last-updated.html
Normal file
1
layouts/shortcodes/last-updated.html
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{{ .Page.Date }}
|
Loading…
Reference in a new issue