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