Compare commits
3 Commits
ea52115b47
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 8b671291e7 | |||
| ed58de749c | |||
| d7b5585666 |
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
content/*
|
||||
@@ -1,18 +0,0 @@
|
||||
|
||||
# Pull changes
|
||||
git pull origin main
|
||||
|
||||
# Rebuild
|
||||
docker compose exec -it hugo hugo --cleanDestinationDir
|
||||
|
||||
# Add
|
||||
git add .
|
||||
|
||||
# commit
|
||||
git commit -m "Rebuild"
|
||||
|
||||
# Push
|
||||
git push origin main
|
||||
|
||||
# Rebuild
|
||||
docker compose exec -it hugo hugo --cleanDestinationDir
|
||||
23
assets/css/custom.css
Normal file
23
assets/css/custom.css
Normal file
@@ -0,0 +1,23 @@
|
||||
.footer {
|
||||
margin-top: 50px;
|
||||
padding: 20px 0;
|
||||
border-top: 1px solid var(--accent);
|
||||
}
|
||||
|
||||
.footer__inner {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.contact {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 15px;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.contact span {
|
||||
white-space: nowrap;
|
||||
}
|
||||
23
compose.yml
23
compose.yml
@@ -2,15 +2,34 @@ services:
|
||||
hugo:
|
||||
image: hugomods/hugo:0.135.0
|
||||
container_name: hugo
|
||||
user: 1000:1000
|
||||
restart: no
|
||||
volumes:
|
||||
- ./:/src
|
||||
- static-site:/src/public
|
||||
#ports:
|
||||
#- "1313:1313"
|
||||
command: server --bind 0.0.0.0
|
||||
command: ["hugo", "--cleanDestinationDir", "--baseURL", "https://blog.fuhlig.de/", "--ignoreCache"]
|
||||
#command: ["hugo"]
|
||||
networks:
|
||||
- net
|
||||
|
||||
nginx:
|
||||
image: nginx:alpine
|
||||
container_name: blog
|
||||
#ports:
|
||||
#- "80:80"
|
||||
volumes:
|
||||
- static-site:/usr/share/nginx/html:ro
|
||||
depends_on:
|
||||
- hugo
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- net
|
||||
|
||||
volumes:
|
||||
static-site:
|
||||
name: blog.data
|
||||
|
||||
networks:
|
||||
net:
|
||||
name: docker_public
|
||||
|
||||
12
config.toml
Normal file
12
config.toml
Normal file
@@ -0,0 +1,12 @@
|
||||
[params]
|
||||
themeColor = "pink"
|
||||
fullWidthTheme = false
|
||||
centerTheme = true
|
||||
|
||||
# Custom CSS
|
||||
customCSS = ["css/custom.css"]
|
||||
|
||||
# Your contact info (optional - for use in templates)
|
||||
email = "blog@fuhlig.de"
|
||||
github = "florianuhlig"
|
||||
linkedin = "yourprofile"
|
||||
@@ -6,10 +6,18 @@ weight: 1
|
||||
draft: false
|
||||
---
|
||||
|
||||
## Who am I
|
||||
My name is Florian and I'm 22 years old.
|
||||
I work as an IT Technican mainly with Linux Servers in Frankfurt, Germany.
|
||||
My company is midsized around 50 people working here.
|
||||
I mainly want to post about what I learned, what inspires me.
|
||||
## 👋 Who am I?
|
||||
|
||||
Well I dont really, this just seemed like a great idea to waste some time.
|
||||
My name is **Florian**, and I'm a 22-year-old IT Technician based in Frankfurt, Germany. I spend my days working with Linux servers at a mid-sized company of around 50 people, dealing with everything from Docker containers to network infrastructure.
|
||||
|
||||
## 💭 Why This Blog?
|
||||
|
||||
I created this space to document what I learn, share the things that inspire me, and maybe help someone else solve a problem they're stuck on. Sometimes the best way to understand something is to explain it to others.
|
||||
|
||||
## 🤷 The Real Reason
|
||||
|
||||
Well, if I'm being completely honest... this just seemed like a great idea to waste some time. But hey, if you're reading this, at least the time wasn't completely wasted, right?
|
||||
|
||||
---
|
||||
|
||||
*Feel free to reach out if you have questions about anything I post or just want to chat about infrastructure, Docker, or why your Hugo theme won't load properly.*
|
||||
|
||||
15
hugo.toml
15
hugo.toml
@@ -11,3 +11,18 @@ theme = "terminal"
|
||||
[params.logo]
|
||||
logoText = "TechnicalBlog"
|
||||
logoHomeLink = "/"
|
||||
|
||||
# Add footer info
|
||||
[params.footer]
|
||||
trademark = "© 2025 Florian"
|
||||
rss = true
|
||||
copyright = true
|
||||
author = true
|
||||
|
||||
[[params.social]]
|
||||
name = "email"
|
||||
url = "mailto:florian@example.com"
|
||||
|
||||
[[params.social]]
|
||||
name = "github"
|
||||
url = "https://github.com/yourusername"
|
||||
|
||||
14
layouts/partials/footer.html
Normal file
14
layouts/partials/footer.html
Normal file
@@ -0,0 +1,14 @@
|
||||
<footer class="footer">
|
||||
<div class="footer__inner">
|
||||
<div class="copyright">
|
||||
<span>© {{ now.Format "2006" }} {{ .Site.Title }}</span>
|
||||
<span>Made with <a href="https://gohugo.io">Hugo</a></span>
|
||||
</div>
|
||||
|
||||
<div class="contact">
|
||||
<span>📧 Contact: <a href="mailto:your.email@example.com">your.email@example.com</a></span>
|
||||
<span>🔗 <a href="https://github.com/florianuhlig" target="_blank">GitHub</a></span>
|
||||
<span>💼 <a href="https://linkedin.com/in/yourprofile" target="_blank">LinkedIn</a></span>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
160
public/404.html
160
public/404.html
@@ -1,160 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
|
||||
<title>404 Page not found :: TechnicalBlog</title>
|
||||
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="" />
|
||||
<meta name="keywords" content="" />
|
||||
|
||||
<meta name="robots" content="noodp" />
|
||||
|
||||
<link rel="canonical" href="https://blog.fuhlig.de/404.html" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/code.min.d529ea4b2fb8d34328d7d31afc5466d5f7bc2f0bc9abdd98b69385335d7baee4.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/main.min.36833afd348409fc6c3d09d0897c5833d9d5bf1ff31f5e60ea3ee42ce2b1268c.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="shortcut icon" href="https://blog.fuhlig.de/favicon.png">
|
||||
<link rel="apple-touch-icon" href="https://blog.fuhlig.de/apple-touch-icon.png">
|
||||
|
||||
|
||||
<meta name="twitter:card" content="summary" />
|
||||
|
||||
|
||||
|
||||
<meta property="og:locale" content="en" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:title" content="404 Page not found">
|
||||
<meta property="og:description" content="" />
|
||||
<meta property="og:url" content="https://blog.fuhlig.de/404.html" />
|
||||
<meta property="og:site_name" content="TechnicalBlog" />
|
||||
|
||||
<meta property="og:image" content="https://blog.fuhlig.de/og-image.png">
|
||||
|
||||
<meta property="og:image:width" content="1200">
|
||||
<meta property="og:image:height" content="627">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
<div class="container center">
|
||||
|
||||
<header class="header">
|
||||
<div class="header__inner">
|
||||
<div class="header__logo">
|
||||
<a href="/">
|
||||
<div class="logo">
|
||||
TechnicalBlog
|
||||
</div>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<div class="content">
|
||||
|
||||
<div class="post">
|
||||
<h1 class="post-title">404 — Page not found...</h1>
|
||||
|
||||
<div class="post-content">
|
||||
<a href="https://blog.fuhlig.de/">Back to home page →</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<footer class="footer">
|
||||
<div class="footer__inner">
|
||||
|
||||
<div class="copyright">
|
||||
<span>© 2025 Powered by <a href="https://gohugo.io">Hugo</a></span>
|
||||
|
||||
<span>:: <a href="https://github.com/panr/hugo-theme-terminal" target="_blank">Theme</a> made by <a href="https://github.com/panr" target="_blank">panr</a></span>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript" src="/bundle.min.js"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 190 B |
3
public/bundle.min.js
vendored
3
public/bundle.min.js
vendored
@@ -1,3 +0,0 @@
|
||||
(()=>{var t=document.querySelector(".container"),e=document.querySelectorAll(".menu");document.body.addEventListener("click",()=>{e.forEach(e=>{e.classList.contains("open")&&e.classList.remove("open")})}),window.addEventListener("resize",()=>{e.forEach(e=>{e.classList.remove("open")})}),e.forEach(n=>{const o=n.querySelector(".menu__trigger"),s=n.querySelector(".menu__dropdown");o.addEventListener("click",o=>{o.stopPropagation(),n.classList.contains("open")?n.classList.remove("open"):(e.forEach(e=>e.classList.remove("open")),n.classList.add("open")),s.getBoundingClientRect().right>t.getBoundingClientRect().right&&(s.style.left="auto",s.style.right=0)}),s.addEventListener("click",e=>e.stopPropagation())})})(),(()=>{var e=document.querySelectorAll(".chroma code[data-lang]");for(const n of e){const s=n.parentElement,o=n.innerText.split(`
|
||||
`).filter(Boolean).join(`
|
||||
`),t=document.createElement("div"),i=n.dataset.lang;if(t.classList.add("code-title"),t.innerText=i,navigator.clipboard!==void 0){const e=document.createElement("button");e.classList.add("copy-button"),e.innerText="Copy",e.addEventListener("click",()=>{e.innerText="Copied",setTimeout(()=>{e.innerText="Copy"},1e3),navigator.clipboard.writeText(o)}),t.append(e)}s.closest(".highlight").prepend(t)}})()
|
||||
@@ -1,170 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
|
||||
<title>Categories :: TechnicalBlog</title>
|
||||
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="" />
|
||||
<meta name="keywords" content="" />
|
||||
|
||||
<meta name="robots" content="noodp" />
|
||||
|
||||
<link rel="canonical" href="https://blog.fuhlig.de/categories/" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/code.min.d529ea4b2fb8d34328d7d31afc5466d5f7bc2f0bc9abdd98b69385335d7baee4.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/main.min.36833afd348409fc6c3d09d0897c5833d9d5bf1ff31f5e60ea3ee42ce2b1268c.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="shortcut icon" href="https://blog.fuhlig.de/favicon.png">
|
||||
<link rel="apple-touch-icon" href="https://blog.fuhlig.de/apple-touch-icon.png">
|
||||
|
||||
|
||||
<meta name="twitter:card" content="summary" />
|
||||
|
||||
|
||||
|
||||
<meta property="og:locale" content="en" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:title" content="Categories">
|
||||
<meta property="og:description" content="" />
|
||||
<meta property="og:url" content="https://blog.fuhlig.de/categories/" />
|
||||
<meta property="og:site_name" content="TechnicalBlog" />
|
||||
|
||||
<meta property="og:image" content="https://blog.fuhlig.de/og-image.png">
|
||||
|
||||
<meta property="og:image:width" content="1200">
|
||||
<meta property="og:image:height" content="627">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link href="/categories/index.xml" rel="alternate" type="application/rss+xml" title="TechnicalBlog" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
<div class="container center">
|
||||
|
||||
<header class="header">
|
||||
<div class="header__inner">
|
||||
<div class="header__logo">
|
||||
<a href="/">
|
||||
<div class="logo">
|
||||
TechnicalBlog
|
||||
</div>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<div class="content">
|
||||
|
||||
<div class="terms">
|
||||
<h1>Categories</h1>
|
||||
|
||||
<ul>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li>
|
||||
<a class="terms-title" href="https://blog.fuhlig.de/categories/webdev/">webdev [1]</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<footer class="footer">
|
||||
<div class="footer__inner">
|
||||
|
||||
<div class="copyright">
|
||||
<span>© 2025 Powered by <a href="https://gohugo.io">Hugo</a></span>
|
||||
|
||||
<span>:: <a href="https://github.com/panr/hugo-theme-terminal" target="_blank">Theme</a> made by <a href="https://github.com/panr" target="_blank">panr</a></span>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript" src="/bundle.min.js"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,19 +0,0 @@
|
||||
<?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 TechnicalBlog</title>
|
||||
<link>https://blog.fuhlig.de/categories/</link>
|
||||
<description>Recent content in Categories on TechnicalBlog</description>
|
||||
<generator>Hugo</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Wed, 03 Dec 2025 00:00:00 +0000</lastBuildDate>
|
||||
<atom:link href="https://blog.fuhlig.de/categories/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>Webdev</title>
|
||||
<link>https://blog.fuhlig.de/categories/webdev/</link>
|
||||
<pubDate>Wed, 03 Dec 2025 00:00:00 +0000</pubDate>
|
||||
<guid>https://blog.fuhlig.de/categories/webdev/</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
@@ -1,192 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
|
||||
<title>Webdev :: TechnicalBlog</title>
|
||||
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="" />
|
||||
<meta name="keywords" content="" />
|
||||
|
||||
<meta name="robots" content="noodp" />
|
||||
|
||||
<link rel="canonical" href="https://blog.fuhlig.de/categories/webdev/" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/code.min.d529ea4b2fb8d34328d7d31afc5466d5f7bc2f0bc9abdd98b69385335d7baee4.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/main.min.36833afd348409fc6c3d09d0897c5833d9d5bf1ff31f5e60ea3ee42ce2b1268c.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="shortcut icon" href="https://blog.fuhlig.de/favicon.png">
|
||||
<link rel="apple-touch-icon" href="https://blog.fuhlig.de/apple-touch-icon.png">
|
||||
|
||||
|
||||
<meta name="twitter:card" content="summary" />
|
||||
|
||||
|
||||
|
||||
<meta property="og:locale" content="en" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:title" content="Webdev">
|
||||
<meta property="og:description" content="" />
|
||||
<meta property="og:url" content="https://blog.fuhlig.de/categories/webdev/" />
|
||||
<meta property="og:site_name" content="TechnicalBlog" />
|
||||
|
||||
<meta property="og:image" content="https://blog.fuhlig.de/og-image.png">
|
||||
|
||||
<meta property="og:image:width" content="1200">
|
||||
<meta property="og:image:height" content="627">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link href="/categories/webdev/index.xml" rel="alternate" type="application/rss+xml" title="TechnicalBlog" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
<div class="container center">
|
||||
|
||||
<header class="header">
|
||||
<div class="header__inner">
|
||||
<div class="header__logo">
|
||||
<a href="/">
|
||||
<div class="logo">
|
||||
TechnicalBlog
|
||||
</div>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<div class="content">
|
||||
|
||||
<h1>Posts for: #Webdev</h1>
|
||||
|
||||
<div class="posts">
|
||||
|
||||
<article class="post on-list">
|
||||
<h1 class="post-title">
|
||||
<a href="https://blog.fuhlig.de/tags/">Tags</a>
|
||||
</h1>
|
||||
<div class="post-meta"><time class="post-date">2025-12-03</time></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="post-content">
|
||||
|
||||
Here you can find entry quicker thru my tags
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div>
|
||||
<a class="read-more button inline" href="/tags/">[]</a>
|
||||
</div>
|
||||
|
||||
</article>
|
||||
|
||||
|
||||
<div class="pagination">
|
||||
<div class="pagination__buttons">
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<footer class="footer">
|
||||
<div class="footer__inner">
|
||||
|
||||
<div class="copyright">
|
||||
<span>© 2025 Powered by <a href="https://gohugo.io">Hugo</a></span>
|
||||
|
||||
<span>:: <a href="https://github.com/panr/hugo-theme-terminal" target="_blank">Theme</a> made by <a href="https://github.com/panr" target="_blank">panr</a></span>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript" src="/bundle.min.js"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,19 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<title>Webdev on TechnicalBlog</title>
|
||||
<link>https://blog.fuhlig.de/categories/webdev/</link>
|
||||
<description>Recent content in Webdev on TechnicalBlog</description>
|
||||
<generator>Hugo</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Wed, 03 Dec 2025 00:00:00 +0000</lastBuildDate>
|
||||
<atom:link href="https://blog.fuhlig.de/categories/webdev/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>Tags</title>
|
||||
<link>https://blog.fuhlig.de/tags/</link>
|
||||
<pubDate>Wed, 03 Dec 2025 00:00:00 +0000</pubDate>
|
||||
<guid>https://blog.fuhlig.de/tags/</guid>
|
||||
<description>Here you can find entry quicker thru my tags</description>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
@@ -1,10 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<title>https://blog.fuhlig.de/categories/webdev/</title>
|
||||
<link rel="canonical" href="https://blog.fuhlig.de/categories/webdev/">
|
||||
<meta name="robots" content="noindex">
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="refresh" content="0; url=https://blog.fuhlig.de/categories/webdev/">
|
||||
</head>
|
||||
</html>
|
||||
@@ -1 +0,0 @@
|
||||
.button-container{display:table;margin-left:auto;margin-right:auto}button,.button,a.button{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:8px 18px;text-decoration:none;text-align:center;font:inherit;font-weight:700;appearance:none;cursor:pointer;outline:none}button.outline,.button.outline,a.button.outline{background:0 0;box-shadow:none;padding:8px 18px}button.outline :hover,.button.outline :hover,a.button.outline :hover{transform:none;box-shadow:none}button.link,.button.link,a.button.link{background:0 0;font-size:var(--font-size)}button.small,.button.small,a.button.small{font-size:calc(var(--font-size) * .8)}button.wide,.button.wide,a.button.wide{min-width:200px;padding:14px 24px}a.button.inline{background:0 0;color:var(--accent);padding:initial;margin:initial;border:initial;font-weight:initial;text-decoration:none}a.button.inline:active,a.button.inline:hover{background:0 0}a.read-more,a.read-more:hover,a.read-more:active{display:inline-flex;border:none;background:0 0;box-shadow:none;padding:0;max-width:100%;text-decoration:none}
|
||||
@@ -1 +0,0 @@
|
||||
:root{--code-border:color-mix(in srgb, var(--foreground) 10%, transparent)}pre:not(.chroma){padding:10px}pre.chroma{margin:0;padding:10px 0;color:var(--foreground)}pre code{color:var(--foreground);border:none}code{color:var(--accent);text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;-webkit-text-size-adjust:100%}.highlight{position:relative;margin:20px 0;border:1px solid var(--code-border)}.highlight pre{border:none}.code-title{display:flex;align-items:center;justify-content:space-between;background:color-mix(in srgb,var(--foreground) 5%,transparent);border-bottom:1px solid var(--code-border);color:var(--comment);text-transform:uppercase;font-size:calc(var(--font-size) * .8);padding:6px 10px;line-height:1}.copy-button{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:3px 8px;text-decoration:none;text-align:center;font-size:13px;font-weight:500;border:1px solid color-mix(in srgb,var(--accent) 15%,transparent);appearance:none;cursor:pointer;outline:none}.code-title .copy-button{z-index:1;background:color-mix(in srgb,var(--foreground) 5%,var(--background))}.code-title:hover .copy-button{display:inline-block}.code-title .copy-button:hover{background:color-mix(in srgb,var(--accent) 10%,var(--background))}.collapsable-code{position:relative;width:100%;margin:20px 0;border:1px solid var(--accent);.highlight { margin: 0; }}.collapsable-code__title{display:inline-flex;align-items:center;flex:1;color:var(--accent);padding:3px 10px;font-size:calc(var(--font-size) * .9);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.collapsable-code__language{color:var(--accent);border:1px solid var(--accent);border-bottom:none;text-transform:uppercase;padding:3px 10px}.collapsable-code summary{color:var(--accent);padding:0 10px;cursor:pointer}.collapsable-code summary:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}.collapsable-code pre{margin-top:0}.collapsable-code pre::first-line{line-height:0}
|
||||
@@ -1 +0,0 @@
|
||||
@font-face{font-family:fira code;font-style:normal;font-weight:300 700;font-display:swap;src:url(../fonts/FiraCode-LatinExt.woff2)format('woff2');unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:fira code;font-style:normal;font-weight:300 700;font-display:swap;src:url(../fonts/FiraCode-Latin.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
|
||||
@@ -1 +0,0 @@
|
||||
.footer{padding:40px 0;flex-grow:0;opacity:.65}.footer__inner{display:flex;align-items:center;justify-content:space-between;margin:0;max-width:100%}.footer a{color:inherit}.footer .copyright{display:flex;flex-flow:row wrap;flex:1;align-items:center;justify-content:center}.footer .copyright--user{margin:auto;text-align:center}.footer .copyright>*:first-child:not(:only-child){margin-right:10px}.footer .copyright span{white-space:nowrap}@media(max-width:900px){.footer__inner{flex-direction:column}}
|
||||
@@ -1 +0,0 @@
|
||||
body .gist .blob-num,body .gist .blob-code-inner{border:none}
|
||||
@@ -1 +0,0 @@
|
||||
.header{display:flex;flex-direction:column;position:relative}.header__inner{display:flex;align-items:center;justify-content:space-between}.header__logo{display:flex;flex:1}.header__logo::after{content:"";background:repeating-linear-gradient(90deg,var(--accent),var(--accent) 2px,transparent 0,transparent 10px);display:block;width:100%;right:10px}.header__logo a{flex:none;max-width:100%;text-decoration:none}.logo{display:flex;align-items:center;text-decoration:none;background:var(--accent);color:var(--background);font-weight:700;padding:5px 10px}@media print{.header{display:none}}
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
.navigation-menu{display:flex;align-items:flex-start;justify-content:space-between;margin:20px 1px}.navigation-menu__inner{display:flex;flex:1;flex-wrap:wrap;list-style:none;margin:0;padding:0}.navigation-menu__inner>li{flex:none;margin-bottom:10px;white-space:nowrap}.navigation-menu__inner>li:not(:last-of-type){margin-right:20px}.navigation-menu .spacer{flex-grow:1!important}.menu{display:flex;flex-direction:column;position:relative;list-style:none;padding:0;margin:0}.menu__trigger{margin-right:0!important;color:var(--accent);user-select:none;cursor:pointer}.menu__dropdown{display:none;flex-direction:column;position:absolute;background:var(--background);box-shadow:0 10px var(--background),-10px 10px var(--background),10px 10px var(--background);color:var(--accent);border:2px solid var(--accent);margin:0;padding:10px;top:10px;left:0;list-style:none;z-index:99}.open .menu__dropdown{display:flex}.menu__dropdown>li{flex:none}.menu__dropdown>li:not(:last-of-type){margin-bottom:10px}.menu__dropdown>li a{display:flex;padding:5px}.menu--mobile .menu__trigger{color:var(--accent);border:2px solid;margin-left:10px;height:100%;padding:3px 8px;margin-bottom:0!important;position:relative;cursor:pointer;display:none}.menu--mobile li{flex:none}.menu--mobile li:not(:last-of-type){margin-bottom:10px}.menu--language-selector .menu__trigger{color:var(--accent);border:2px solid;margin-left:5px;height:100%;padding:3px 8px;margin-bottom:0!important;position:relative;cursor:pointer}.menu--language-selector .menu__dropdown{left:auto;right:0}@media(max-width:684px){.navigation-menu{margin:0}.navigation-menu__inner{flex-direction:column;align-items:flex-start;padding:0}.navigation-menu__inner li{margin:0;padding:5px}.menu--desktop{display:none}.menu--mobile .menu__trigger{display:block}.menu--mobile .menu__dropdown{left:auto;right:0}.menu--language-selector .menu__trigger{display:none}}
|
||||
@@ -1 +0,0 @@
|
||||
.pagination{margin-top:50px}.pagination__title{display:flex;text-align:center;position:relative;margin:100px 0 20px}.pagination__title-h{text-align:center;margin:0 auto;padding:5px 10px;background:var(--background);color:color-mix(in srgb var(--foreground) 30%,transparent);font-size:calc(var(--font-size) * .8);text-transform:uppercase;text-decoration:none;letter-spacing:.1em;z-index:1}.pagination__title hr{position:absolute;left:0;right:0;width:100%;margin-top:15px;z-index:0}.pagination__buttons{display:flex;align-items:center;justify-content:center;flex-flow:row wrap;gap:10px}.pagination__buttons a{display:inline-flex;max-width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;text-decoration:none}.button{position:relative;display:inline-flex;align-items:center;justify-content:center;font-size:inherit;padding:0;appearance:none}.button a{display:flex;justify-content:center;flex:1;padding:8px 16px}.button__text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.next .button__icon{margin-left:8px}.prev .button__icon{margin-right:8px}@media print{.pagination{display:none}}
|
||||
@@ -1 +0,0 @@
|
||||
.index-content{margin:25px 0}.framed{border:1px solid var(--accent);padding:20px}.framed *:first-child{margin-top:0}.framed *:last-child{margin-bottom:0}.posts{width:100%}.post{width:100%;text-align:left;padding:30px 0}.post:not(:last-of-type){border-bottom:1px solid color-mix(in srgb,var(--foreground) 10%,transparent)}.post-meta{font-size:inherit;margin-bottom:10px;color:color-mix(in srgb,var(--foreground) 65%,transparent)}.post-meta>*:not(:first-child)::before{content:"::";display:inline-block;margin:0 8px}.post-title{position:relative;color:var(--accent);margin-top:0!important;margin-bottom:15px!important;padding-bottom:15px;border-bottom:3px dotted var(--accent);text-decoration:none!important}.post-title::after{content:"";position:absolute;bottom:2px;display:block;width:100%;border-bottom:3px dotted var(--accent)}.post-title a{text-decoration:none}.post-tags{display:block;margin-bottom:20px;font-size:inherit;color:var(--accent)}.table-of-contents{margin:40px 0}.post-content{margin-top:25px}.post-cover{margin:25px 0}.post ul{list-style:none}.post ul li:not(:empty)::before{content:"-";position:absolute;left:-20px;color:var(--accent)}.post--regulation h1{justify-content:center}.post--regulation h2{justify-content:center;margin-bottom:10px}.post--regulation h2+h2{margin-top:-10px;margin-bottom:20px}.hanchor{position:absolute;color:var(--accent);text-decoration:none;margin-left:10px;visibility:hidden}h1:hover .hanchor,h2:hover .hanchor,h3:hover .hanchor,h4:hover .hanchor,h5:hover .hanchor,h6:hover .hanchor{visibility:visible}.footnotes{color:color-mix(in srgb,var(--foreground) 50%,transparent)}.footnotes hr{background:color-mix(in srgb,var(--foreground) 50%,transparent)}@media(max-width:684px){.post-cover{padding:10px;border-width:10px}}
|
||||
@@ -1 +0,0 @@
|
||||
:root{--first-tone:var(--accent);--second-tone:color-mix(in srgb, var(--accent) 70%, transparent);--comment:color-mix(in srgb, var(--foreground) 50%, transparent)}.bg{}.chroma{overflow:auto}.chroma .x{}.chroma .err{}.chroma .cl{}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{width:100%;vertical-align:top;padding:0;margin:0;border:0}.chroma .lntd:first-child{width:auto}.chroma .lntd code{display:grid}.chroma .lntable{width:100%;border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:color-mix(in srgb,var(--foreground) 5%,transparent)!important}.chroma .lnt{color:var(--comment);white-space:pre;-webkit-user-select:none;user-select:none;padding:0 10px}.chroma .ln{color:var(--comment);white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.8em;padding:0 .4em 0 0}.chroma .line{display:flex;padding:0 10px}.chroma .k{color:var(--second-tone)}.chroma .kc{color:var(--second-tone)}.chroma .kd{color:var(--second-tone)}.chroma .kn{color:var(--second-tone)}.chroma .kp{color:var(--second-tone)}.chroma .kr{color:var(--second-tone)}.chroma .kt{color:var(--second-tone)}.chroma .n{color:var(--first-tone)}.chroma .na{color:var(--second-tone)}.chroma .nb{color:var(--first-tone)}.chroma .bp{color:var(--first-tone)}.chroma .nc{color:var(--foreground)}.chroma .no{color:var(--first-tone)}.chroma .nd{color:var(--first-tone)}.chroma .ni{color:var(--first-tone)}.chroma .ne{color:var(--first-tone)}.chroma .nf{color:var(--first-tone)}.chroma .fm{color:var(--first-tone)}.chroma .nl{color:var(--first-tone)}.chroma .nn{color:var(--first-tone)}.chroma .nx{color:var(--first-tone)}.chroma .py{color:var(--first-tone)}.chroma .nt{color:var(--first-tone)}.chroma .nv{color:var(--first-tone)}.chroma .vc{color:var(--first-tone)}.chroma .vg{color:var(--first-tone)}.chroma .vi{color:var(--first-tone)}.chroma .vm{color:var(--first-tone)}.chroma .l{}.chroma .ld{}.chroma .s{color:var(--foreground)}.chroma .sa{color:var(--foreground)}.chroma .sb{color:var(--foreground)}.chroma .sc{color:var(--foreground)}.chroma .dl{color:var(--foreground)}.chroma .sd{color:var(--foreground)}.chroma .s2{color:var(--foreground)}.chroma .se{color:var(--foreground)}.chroma .sh{color:var(--foreground)}.chroma .si{color:var(--foreground)}.chroma .sx{color:var(--foreground)}.chroma .sr{color:var(--foreground)}.chroma .s1{color:var(--foreground)}.chroma .ss{color:var(--foreground)}.chroma .m{color:var(--first-tone)}.chroma .mb{color:var(--first-tone)}.chroma .mf{color:var(--first-tone)}.chroma .mh{color:var(--first-tone)}.chroma .mi{color:var(--first-tone)}.chroma .il{color:var(--first-tone)}.chroma .mo{color:var(--first-tone)}.chroma .o{color:var(--foreground)}.chroma .ow{color:var(--foreground)}.chroma .p{color:var(--foreground)}.chroma .c{color:var(--comment)}.chroma .ch{color:var(--comment)}.chroma .cm{color:var(--comment)}.chroma .c1{color:var(--comment)}.chroma .cs{color:var(--comment)}.chroma .cp{color:var(--comment)}.chroma .cpf{color:var(--comment)}.chroma .g{}.chroma .gd{color:var(--first-tone)}.chroma .ge{}.chroma .gr{}.chroma .gh{}.chroma .gi{color:var(--second-tone)}.chroma .go{}.chroma .gp{}.chroma .gs{}.chroma .gu{}.chroma .gt{}.chroma .gl{}.chroma .w{}.chroma .language-php .cp{color:var(--foreground)}
|
||||
@@ -1,2 +0,0 @@
|
||||
/* Placeholder file for your custom settings. */
|
||||
/* You can get the color scheme variables from https://panr.github.io/terminal-css/ */
|
||||
@@ -1 +0,0 @@
|
||||
.terms h3{font-size:initial}.terms ul{list-style:none}.terms ul li a{color:var(--accent)}.terms ul li:not(:empty)::before{content:"-";position:absolute;left:-20px;color:var(--accent)}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 190 B |
Binary file not shown.
Binary file not shown.
@@ -1,262 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta name="generator" content="Hugo 0.135.0">
|
||||
|
||||
<title>TechnicalBlog</title>
|
||||
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="" />
|
||||
<meta name="keywords" content="" />
|
||||
|
||||
<meta name="robots" content="noodp" />
|
||||
|
||||
<link rel="canonical" href="https://blog.fuhlig.de/" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/code.min.d529ea4b2fb8d34328d7d31afc5466d5f7bc2f0bc9abdd98b69385335d7baee4.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/main.min.36833afd348409fc6c3d09d0897c5833d9d5bf1ff31f5e60ea3ee42ce2b1268c.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="shortcut icon" href="https://blog.fuhlig.de/favicon.png">
|
||||
<link rel="apple-touch-icon" href="https://blog.fuhlig.de/apple-touch-icon.png">
|
||||
|
||||
|
||||
<meta name="twitter:card" content="summary" />
|
||||
|
||||
|
||||
|
||||
<meta property="og:locale" content="en" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:title" content="TechnicalBlog">
|
||||
<meta property="og:description" content="" />
|
||||
<meta property="og:url" content="https://blog.fuhlig.de/" />
|
||||
<meta property="og:site_name" content="TechnicalBlog" />
|
||||
|
||||
<meta property="og:image" content="https://blog.fuhlig.de/og-image.png">
|
||||
|
||||
<meta property="og:image:width" content="1200">
|
||||
<meta property="og:image:height" content="627">
|
||||
|
||||
|
||||
<meta property="article:published_time" content="2025-12-02 00:00:00 +0000 UTC" />
|
||||
|
||||
|
||||
|
||||
|
||||
<link href="/index.xml" rel="alternate" type="application/rss+xml" title="TechnicalBlog" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
<div class="container center">
|
||||
|
||||
<header class="header">
|
||||
<div class="header__inner">
|
||||
<div class="header__logo">
|
||||
<a href="/">
|
||||
<div class="logo">
|
||||
TechnicalBlog
|
||||
</div>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<div class="content">
|
||||
|
||||
|
||||
<div class="index-content ">
|
||||
<h1 id="welcometomytechnicalblog">WelcomeToMyTechnicalBlog</h1>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="posts">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<article class="post on-list">
|
||||
<h2 class="post-title">
|
||||
<a href="https://blog.fuhlig.de/posts/aboutme/">About Me</a>
|
||||
</h2>
|
||||
|
||||
<div class="post-meta"><time class="post-date">2025-12-01</time></div>
|
||||
|
||||
|
||||
<span class="post-tags">
|
||||
|
||||
#<a href="https://blog.fuhlig.de/tags/blog/">blog</a>
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="post-content">
|
||||
|
||||
<h2 id="who-am-i">Who am I</h2>
|
||||
<p>My name is Florian and I’m 22 years old.
|
||||
I work as an IT Technican mainly with Linux Servers in Frankfurt, Germany.
|
||||
My company is midsized around 50 people working here.
|
||||
I mainly want to post about what I learned, what inspires me.</p>
|
||||
<p>Well I dont really, this just seemed like a great idea to waste some time.</p>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div>
|
||||
<a class="read-more button inline" href="/posts/aboutme/">[]</a>
|
||||
</div>
|
||||
|
||||
</article>
|
||||
|
||||
<article class="post on-list">
|
||||
<h2 class="post-title">
|
||||
<a href="https://blog.fuhlig.de/posts/whatimworkingoncurrently/">What am I currently working on</a>
|
||||
</h2>
|
||||
|
||||
<div class="post-meta"><time class="post-date">2025-12-03</time></div>
|
||||
|
||||
|
||||
<span class="post-tags">
|
||||
|
||||
#<a href="https://blog.fuhlig.de/tags/blog/">blog</a>
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="post-content">
|
||||
|
||||
<h1 id="building-a-self-sustaining-infrastructure-a-two-server-docker-setup">Building a Self-Sustaining Infrastructure: A Two-Server Docker Setup</h1>
|
||||
<h2 id="overview">Overview</h2>
|
||||
<p>Creating a resilient, self-sustaining infrastructure doesn’t require complex enterprise solutions. With two strategically configured servers and a well-thought-out backup strategy, you can achieve both reliability and security for your self-hosted applications.</p>
|
||||
<h2 id="the-architecture">The Architecture</h2>
|
||||
<h3 id="docker-host-server">Docker Host Server</h3>
|
||||
<p>The primary server runs all application workloads using Docker containers. This containerized approach provides:</p>
|
||||
<ul>
|
||||
<li><strong>Isolation</strong>: Each service runs in its own container with defined resources</li>
|
||||
<li><strong>Portability</strong>: Services can be easily migrated or replicated</li>
|
||||
<li><strong>Consistency</strong>: Docker Compose configurations ensure reproducible deployments</li>
|
||||
</ul>
|
||||
<p>The Docker host maintains minimal external exposure, with only essential ports opened to the internet. This reduces the attack surface while still providing necessary services.</p>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div>
|
||||
<a class="read-more button inline" href="/posts/whatimworkingoncurrently/">[]</a>
|
||||
</div>
|
||||
|
||||
</article>
|
||||
|
||||
|
||||
<div class="pagination">
|
||||
<div class="pagination__buttons">
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<footer class="footer">
|
||||
<div class="footer__inner">
|
||||
|
||||
<div class="copyright">
|
||||
<span>© 2025 Powered by <a href="https://gohugo.io">Hugo</a></span>
|
||||
|
||||
<span>:: <a href="https://github.com/panr/hugo-theme-terminal" target="_blank">Theme</a> made by <a href="https://github.com/panr" target="_blank">panr</a></span>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript" src="/bundle.min.js"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,26 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<title>WelcomeToMyTechnicalBlog on TechnicalBlog</title>
|
||||
<link>https://blog.fuhlig.de/</link>
|
||||
<description>Recent content in WelcomeToMyTechnicalBlog on TechnicalBlog</description>
|
||||
<generator>Hugo</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Wed, 03 Dec 2025 00:00:00 +0000</lastBuildDate>
|
||||
<atom:link href="https://blog.fuhlig.de/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>About Me</title>
|
||||
<link>https://blog.fuhlig.de/posts/aboutme/</link>
|
||||
<pubDate>Mon, 01 Dec 2025 00:00:00 +0000</pubDate>
|
||||
<guid>https://blog.fuhlig.de/posts/aboutme/</guid>
|
||||
<description><h2 id="who-am-i">Who am I</h2>
<p>My name is Florian and I&rsquo;m 22 years old.
I work as an IT Technican mainly with Linux Servers in Frankfurt, Germany.
My company is midsized around 50 people working here.
I mainly want to post about what I learned, what inspires me.</p>
<p>Well I dont really, this just seemed like a great idea to waste some time.</p></description>
|
||||
</item>
|
||||
<item>
|
||||
<title>What am I currently working on</title>
|
||||
<link>https://blog.fuhlig.de/posts/whatimworkingoncurrently/</link>
|
||||
<pubDate>Wed, 03 Dec 2025 00:00:00 +0000</pubDate>
|
||||
<guid>https://blog.fuhlig.de/posts/whatimworkingoncurrently/</guid>
|
||||
<description><h1 id="building-a-self-sustaining-infrastructure-a-two-server-docker-setup">Building a Self-Sustaining Infrastructure: A Two-Server Docker Setup</h1>
<h2 id="overview">Overview</h2>
<p>Creating a resilient, self-sustaining infrastructure doesn&rsquo;t require complex enterprise solutions. With two strategically configured servers and a well-thought-out backup strategy, you can achieve both reliability and security for your self-hosted applications.</p>
<h2 id="the-architecture">The Architecture</h2>
<h3 id="docker-host-server">Docker Host Server</h3>
<p>The primary server runs all application workloads using Docker containers. This containerized approach provides:</p>
<ul>
<li><strong>Isolation</strong>: Each service runs in its own container with defined resources</li>
<li><strong>Portability</strong>: Services can be easily migrated or replicated</li>
<li><strong>Consistency</strong>: Docker Compose configurations ensure reproducible deployments</li>
</ul>
<p>The Docker host maintains minimal external exposure, with only essential ports opened to the internet. This reduces the attack surface while still providing necessary services.</p></description>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 4.5 KiB |
@@ -1,10 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<title>https://blog.fuhlig.de/</title>
|
||||
<link rel="canonical" href="https://blog.fuhlig.de/">
|
||||
<meta name="robots" content="noindex">
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="refresh" content="0; url=https://blog.fuhlig.de/">
|
||||
</head>
|
||||
</html>
|
||||
@@ -1,193 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
|
||||
<title>About Me :: TechnicalBlog</title>
|
||||
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="Who am I My name is Florian and I’m 22 years old. I work as an IT Technican mainly with Linux Servers in Frankfurt, Germany. My company is midsized around 50 people working here. I mainly want to post about what I learned, what inspires me.
|
||||
Well I dont really, this just seemed like a great idea to waste some time.
|
||||
" />
|
||||
<meta name="keywords" content="" />
|
||||
|
||||
<meta name="robots" content="noodp" />
|
||||
|
||||
<link rel="canonical" href="https://blog.fuhlig.de/posts/aboutme/" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/code.min.d529ea4b2fb8d34328d7d31afc5466d5f7bc2f0bc9abdd98b69385335d7baee4.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/main.min.36833afd348409fc6c3d09d0897c5833d9d5bf1ff31f5e60ea3ee42ce2b1268c.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="shortcut icon" href="https://blog.fuhlig.de/favicon.png">
|
||||
<link rel="apple-touch-icon" href="https://blog.fuhlig.de/apple-touch-icon.png">
|
||||
|
||||
|
||||
<meta name="twitter:card" content="summary" />
|
||||
|
||||
|
||||
|
||||
<meta property="og:locale" content="en" />
|
||||
<meta property="og:type" content="article" />
|
||||
<meta property="og:title" content="About Me">
|
||||
<meta property="og:description" content="Who am I My name is Florian and I’m 22 years old. I work as an IT Technican mainly with Linux Servers in Frankfurt, Germany. My company is midsized around 50 people working here. I mainly want to post about what I learned, what inspires me.
|
||||
Well I dont really, this just seemed like a great idea to waste some time.
|
||||
" />
|
||||
<meta property="og:url" content="https://blog.fuhlig.de/posts/aboutme/" />
|
||||
<meta property="og:site_name" content="TechnicalBlog" />
|
||||
|
||||
<meta property="og:image" content="https://blog.fuhlig.de/og-image.png">
|
||||
|
||||
<meta property="og:image:width" content="1200">
|
||||
<meta property="og:image:height" content="627">
|
||||
|
||||
|
||||
<meta property="article:published_time" content="2025-12-01 00:00:00 +0000 UTC" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
<div class="container center">
|
||||
|
||||
<header class="header">
|
||||
<div class="header__inner">
|
||||
<div class="header__logo">
|
||||
<a href="/">
|
||||
<div class="logo">
|
||||
TechnicalBlog
|
||||
</div>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<div class="content">
|
||||
|
||||
<article class="post">
|
||||
<h1 class="post-title">
|
||||
<a href="https://blog.fuhlig.de/posts/aboutme/">About Me</a>
|
||||
</h1>
|
||||
<div class="post-meta"><time class="post-date">2025-12-01</time></div>
|
||||
|
||||
|
||||
<span class="post-tags">
|
||||
|
||||
#<a href="https://blog.fuhlig.de/tags/blog/">blog</a>
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="post-content"><div>
|
||||
<h2 id="who-am-i">Who am I<a href="#who-am-i" class="hanchor" ariaLabel="Anchor">#</a> </h2>
|
||||
<p>My name is Florian and I’m 22 years old.
|
||||
I work as an IT Technican mainly with Linux Servers in Frankfurt, Germany.
|
||||
My company is midsized around 50 people working here.
|
||||
I mainly want to post about what I learned, what inspires me.</p>
|
||||
<p>Well I dont really, this just seemed like a great idea to waste some time.</p>
|
||||
|
||||
</div></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<footer class="footer">
|
||||
<div class="footer__inner">
|
||||
|
||||
<div class="copyright">
|
||||
<span>© 2025 Powered by <a href="https://gohugo.io">Hugo</a></span>
|
||||
|
||||
<span>:: <a href="https://github.com/panr/hugo-theme-terminal" target="_blank">Theme</a> made by <a href="https://github.com/panr" target="_blank">panr</a></span>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript" src="/bundle.min.js"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,243 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
|
||||
<title>Posts :: TechnicalBlog</title>
|
||||
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="" />
|
||||
<meta name="keywords" content="" />
|
||||
|
||||
<meta name="robots" content="noodp" />
|
||||
|
||||
<link rel="canonical" href="https://blog.fuhlig.de/posts/" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/code.min.d529ea4b2fb8d34328d7d31afc5466d5f7bc2f0bc9abdd98b69385335d7baee4.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/main.min.36833afd348409fc6c3d09d0897c5833d9d5bf1ff31f5e60ea3ee42ce2b1268c.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="shortcut icon" href="https://blog.fuhlig.de/favicon.png">
|
||||
<link rel="apple-touch-icon" href="https://blog.fuhlig.de/apple-touch-icon.png">
|
||||
|
||||
|
||||
<meta name="twitter:card" content="summary" />
|
||||
|
||||
|
||||
|
||||
<meta property="og:locale" content="en" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:title" content="Posts">
|
||||
<meta property="og:description" content="" />
|
||||
<meta property="og:url" content="https://blog.fuhlig.de/posts/" />
|
||||
<meta property="og:site_name" content="TechnicalBlog" />
|
||||
|
||||
<meta property="og:image" content="https://blog.fuhlig.de/og-image.png">
|
||||
|
||||
<meta property="og:image:width" content="1200">
|
||||
<meta property="og:image:height" content="627">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link href="/posts/index.xml" rel="alternate" type="application/rss+xml" title="TechnicalBlog" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
<div class="container center">
|
||||
|
||||
<header class="header">
|
||||
<div class="header__inner">
|
||||
<div class="header__logo">
|
||||
<a href="/">
|
||||
<div class="logo">
|
||||
TechnicalBlog
|
||||
</div>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<div class="content">
|
||||
|
||||
|
||||
<div class="posts">
|
||||
|
||||
<article class="post on-list">
|
||||
<h2 class="post-title">
|
||||
<a href="https://blog.fuhlig.de/posts/aboutme/">About Me</a>
|
||||
</h2>
|
||||
<div class="post-meta"><time class="post-date">2025-12-01</time></div>
|
||||
|
||||
|
||||
<span class="post-tags">
|
||||
|
||||
#<a href="https://blog.fuhlig.de/tags/blog/">blog</a>
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="post-content">
|
||||
|
||||
<h2 id="who-am-i">Who am I</h2>
|
||||
<p>My name is Florian and I’m 22 years old.
|
||||
I work as an IT Technican mainly with Linux Servers in Frankfurt, Germany.
|
||||
My company is midsized around 50 people working here.
|
||||
I mainly want to post about what I learned, what inspires me.</p>
|
||||
<p>Well I dont really, this just seemed like a great idea to waste some time.</p>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div>
|
||||
<a class="read-more button inline" href="/posts/aboutme/">[]</a>
|
||||
</div>
|
||||
|
||||
</article>
|
||||
|
||||
<article class="post on-list">
|
||||
<h2 class="post-title">
|
||||
<a href="https://blog.fuhlig.de/posts/whatimworkingoncurrently/">What am I currently working on</a>
|
||||
</h2>
|
||||
<div class="post-meta"><time class="post-date">2025-12-03</time></div>
|
||||
|
||||
|
||||
<span class="post-tags">
|
||||
|
||||
#<a href="https://blog.fuhlig.de/tags/blog/">blog</a>
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="post-content">
|
||||
|
||||
<h1 id="building-a-self-sustaining-infrastructure-a-two-server-docker-setup">Building a Self-Sustaining Infrastructure: A Two-Server Docker Setup</h1>
|
||||
<h2 id="overview">Overview</h2>
|
||||
<p>Creating a resilient, self-sustaining infrastructure doesn’t require complex enterprise solutions. With two strategically configured servers and a well-thought-out backup strategy, you can achieve both reliability and security for your self-hosted applications.</p>
|
||||
<h2 id="the-architecture">The Architecture</h2>
|
||||
<h3 id="docker-host-server">Docker Host Server</h3>
|
||||
<p>The primary server runs all application workloads using Docker containers. This containerized approach provides:</p>
|
||||
<ul>
|
||||
<li><strong>Isolation</strong>: Each service runs in its own container with defined resources</li>
|
||||
<li><strong>Portability</strong>: Services can be easily migrated or replicated</li>
|
||||
<li><strong>Consistency</strong>: Docker Compose configurations ensure reproducible deployments</li>
|
||||
</ul>
|
||||
<p>The Docker host maintains minimal external exposure, with only essential ports opened to the internet. This reduces the attack surface while still providing necessary services.</p>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div>
|
||||
<a class="read-more button inline" href="/posts/whatimworkingoncurrently/">[]</a>
|
||||
</div>
|
||||
|
||||
</article>
|
||||
|
||||
|
||||
<div class="pagination">
|
||||
<div class="pagination__buttons">
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<footer class="footer">
|
||||
<div class="footer__inner">
|
||||
|
||||
<div class="copyright">
|
||||
<span>© 2025 Powered by <a href="https://gohugo.io">Hugo</a></span>
|
||||
|
||||
<span>:: <a href="https://github.com/panr/hugo-theme-terminal" target="_blank">Theme</a> made by <a href="https://github.com/panr" target="_blank">panr</a></span>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript" src="/bundle.min.js"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,26 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<title>Posts on TechnicalBlog</title>
|
||||
<link>https://blog.fuhlig.de/posts/</link>
|
||||
<description>Recent content in Posts on TechnicalBlog</description>
|
||||
<generator>Hugo</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Wed, 03 Dec 2025 00:00:00 +0000</lastBuildDate>
|
||||
<atom:link href="https://blog.fuhlig.de/posts/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>About Me</title>
|
||||
<link>https://blog.fuhlig.de/posts/aboutme/</link>
|
||||
<pubDate>Mon, 01 Dec 2025 00:00:00 +0000</pubDate>
|
||||
<guid>https://blog.fuhlig.de/posts/aboutme/</guid>
|
||||
<description><h2 id="who-am-i">Who am I</h2>
<p>My name is Florian and I&rsquo;m 22 years old.
I work as an IT Technican mainly with Linux Servers in Frankfurt, Germany.
My company is midsized around 50 people working here.
I mainly want to post about what I learned, what inspires me.</p>
<p>Well I dont really, this just seemed like a great idea to waste some time.</p></description>
|
||||
</item>
|
||||
<item>
|
||||
<title>What am I currently working on</title>
|
||||
<link>https://blog.fuhlig.de/posts/whatimworkingoncurrently/</link>
|
||||
<pubDate>Wed, 03 Dec 2025 00:00:00 +0000</pubDate>
|
||||
<guid>https://blog.fuhlig.de/posts/whatimworkingoncurrently/</guid>
|
||||
<description><h1 id="building-a-self-sustaining-infrastructure-a-two-server-docker-setup">Building a Self-Sustaining Infrastructure: A Two-Server Docker Setup</h1>
<h2 id="overview">Overview</h2>
<p>Creating a resilient, self-sustaining infrastructure doesn&rsquo;t require complex enterprise solutions. With two strategically configured servers and a well-thought-out backup strategy, you can achieve both reliability and security for your self-hosted applications.</p>
<h2 id="the-architecture">The Architecture</h2>
<h3 id="docker-host-server">Docker Host Server</h3>
<p>The primary server runs all application workloads using Docker containers. This containerized approach provides:</p>
<ul>
<li><strong>Isolation</strong>: Each service runs in its own container with defined resources</li>
<li><strong>Portability</strong>: Services can be easily migrated or replicated</li>
<li><strong>Consistency</strong>: Docker Compose configurations ensure reproducible deployments</li>
</ul>
<p>The Docker host maintains minimal external exposure, with only essential ports opened to the internet. This reduces the attack surface while still providing necessary services.</p></description>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
@@ -1,6 +0,0 @@
|
||||
---
|
||||
title: "About Me"
|
||||
date: 2025-12-01
|
||||
tags: ["blog"]
|
||||
draft: false
|
||||
---
|
||||
@@ -1,10 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<title>https://blog.fuhlig.de/posts/</title>
|
||||
<link rel="canonical" href="https://blog.fuhlig.de/posts/">
|
||||
<meta name="robots" content="noindex">
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="refresh" content="0; url=https://blog.fuhlig.de/posts/">
|
||||
</head>
|
||||
</html>
|
||||
@@ -1,236 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
|
||||
<title>What am I currently working on :: TechnicalBlog</title>
|
||||
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="Building a Self-Sustaining Infrastructure: A Two-Server Docker Setup Overview Creating a resilient, self-sustaining infrastructure doesn’t require complex enterprise solutions. With two strategically configured servers and a well-thought-out backup strategy, you can achieve both reliability and security for your self-hosted applications.
|
||||
The Architecture Docker Host Server The primary server runs all application workloads using Docker containers. This containerized approach provides:
|
||||
Isolation: Each service runs in its own container with defined resources Portability: Services can be easily migrated or replicated Consistency: Docker Compose configurations ensure reproducible deployments The Docker host maintains minimal external exposure, with only essential ports opened to the internet. This reduces the attack surface while still providing necessary services.
|
||||
" />
|
||||
<meta name="keywords" content="" />
|
||||
|
||||
<meta name="robots" content="noodp" />
|
||||
|
||||
<link rel="canonical" href="https://blog.fuhlig.de/posts/whatimworkingoncurrently/" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/code.min.d529ea4b2fb8d34328d7d31afc5466d5f7bc2f0bc9abdd98b69385335d7baee4.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/main.min.36833afd348409fc6c3d09d0897c5833d9d5bf1ff31f5e60ea3ee42ce2b1268c.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="shortcut icon" href="https://blog.fuhlig.de/favicon.png">
|
||||
<link rel="apple-touch-icon" href="https://blog.fuhlig.de/apple-touch-icon.png">
|
||||
|
||||
|
||||
<meta name="twitter:card" content="summary" />
|
||||
|
||||
|
||||
|
||||
<meta property="og:locale" content="en" />
|
||||
<meta property="og:type" content="article" />
|
||||
<meta property="og:title" content="What am I currently working on">
|
||||
<meta property="og:description" content="Building a Self-Sustaining Infrastructure: A Two-Server Docker Setup Overview Creating a resilient, self-sustaining infrastructure doesn’t require complex enterprise solutions. With two strategically configured servers and a well-thought-out backup strategy, you can achieve both reliability and security for your self-hosted applications.
|
||||
The Architecture Docker Host Server The primary server runs all application workloads using Docker containers. This containerized approach provides:
|
||||
Isolation: Each service runs in its own container with defined resources Portability: Services can be easily migrated or replicated Consistency: Docker Compose configurations ensure reproducible deployments The Docker host maintains minimal external exposure, with only essential ports opened to the internet. This reduces the attack surface while still providing necessary services.
|
||||
" />
|
||||
<meta property="og:url" content="https://blog.fuhlig.de/posts/whatimworkingoncurrently/" />
|
||||
<meta property="og:site_name" content="TechnicalBlog" />
|
||||
|
||||
<meta property="og:image" content="https://blog.fuhlig.de/og-image.png">
|
||||
|
||||
<meta property="og:image:width" content="1200">
|
||||
<meta property="og:image:height" content="627">
|
||||
|
||||
|
||||
<meta property="article:published_time" content="2025-12-03 00:00:00 +0000 UTC" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
<div class="container center">
|
||||
|
||||
<header class="header">
|
||||
<div class="header__inner">
|
||||
<div class="header__logo">
|
||||
<a href="/">
|
||||
<div class="logo">
|
||||
TechnicalBlog
|
||||
</div>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<div class="content">
|
||||
|
||||
<article class="post">
|
||||
<h1 class="post-title">
|
||||
<a href="https://blog.fuhlig.de/posts/whatimworkingoncurrently/">What am I currently working on</a>
|
||||
</h1>
|
||||
<div class="post-meta"><time class="post-date">2025-12-03</time></div>
|
||||
|
||||
|
||||
<span class="post-tags">
|
||||
|
||||
#<a href="https://blog.fuhlig.de/tags/blog/">blog</a>
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="post-content"><div>
|
||||
<h1 id="building-a-self-sustaining-infrastructure-a-two-server-docker-setup">Building a Self-Sustaining Infrastructure: A Two-Server Docker Setup<a href="#building-a-self-sustaining-infrastructure-a-two-server-docker-setup" class="hanchor" ariaLabel="Anchor">#</a> </h1>
|
||||
<h2 id="overview">Overview<a href="#overview" class="hanchor" ariaLabel="Anchor">#</a> </h2>
|
||||
<p>Creating a resilient, self-sustaining infrastructure doesn’t require complex enterprise solutions. With two strategically configured servers and a well-thought-out backup strategy, you can achieve both reliability and security for your self-hosted applications.</p>
|
||||
<h2 id="the-architecture">The Architecture<a href="#the-architecture" class="hanchor" ariaLabel="Anchor">#</a> </h2>
|
||||
<h3 id="docker-host-server">Docker Host Server<a href="#docker-host-server" class="hanchor" ariaLabel="Anchor">#</a> </h3>
|
||||
<p>The primary server runs all application workloads using Docker containers. This containerized approach provides:</p>
|
||||
<ul>
|
||||
<li><strong>Isolation</strong>: Each service runs in its own container with defined resources</li>
|
||||
<li><strong>Portability</strong>: Services can be easily migrated or replicated</li>
|
||||
<li><strong>Consistency</strong>: Docker Compose configurations ensure reproducible deployments</li>
|
||||
</ul>
|
||||
<p>The Docker host maintains minimal external exposure, with only essential ports opened to the internet. This reduces the attack surface while still providing necessary services.</p>
|
||||
<h3 id="backup-storage-server">Backup Storage Server<a href="#backup-storage-server" class="hanchor" ariaLabel="Anchor">#</a> </h3>
|
||||
<p>The secondary server serves as a dedicated backup repository with substantial storage capacity. This server is:</p>
|
||||
<ul>
|
||||
<li><strong>Isolated from the internet</strong>: No external access is permitted</li>
|
||||
<li><strong>Secured via iptables</strong>: Firewall rules prevent unauthorized connections</li>
|
||||
<li><strong>Connected via WireGuard VPN</strong>: Encrypted tunnel ensures secure communication between servers</li>
|
||||
</ul>
|
||||
<h2 id="security-through-network-segmentation">Security Through Network Segmentation<a href="#security-through-network-segmentation" class="hanchor" ariaLabel="Anchor">#</a> </h2>
|
||||
<p>The WireGuard VPN creates a secure, encrypted tunnel between the Docker host and backup server. This architecture provides several benefits:</p>
|
||||
<ul>
|
||||
<li>Private communication channel for backup operations</li>
|
||||
<li>Zero trust model for the backup server (completely isolated from public internet)</li>
|
||||
<li>Reduced risk of data exfiltration</li>
|
||||
<li>Encrypted data transfer between servers</li>
|
||||
</ul>
|
||||
<h2 id="automated-backup-strategy">Automated Backup Strategy<a href="#automated-backup-strategy" class="hanchor" ariaLabel="Anchor">#</a> </h2>
|
||||
<p>Daily automated backups capture the critical components:</p>
|
||||
<h3 id="database-backups">Database Backups<a href="#database-backups" class="hanchor" ariaLabel="Anchor">#</a> </h3>
|
||||
<p>All databases are exported and stored, ensuring data consistency and point-in-time recovery capabilities.</p>
|
||||
<h3 id="docker-volume-backups">Docker Volume Backups<a href="#docker-volume-backups" class="hanchor" ariaLabel="Anchor">#</a> </h3>
|
||||
<p>Persistent data from Docker volumes is systematically backed up, including:</p>
|
||||
<ul>
|
||||
<li>Application configuration files</li>
|
||||
<li>User-generated content</li>
|
||||
<li>Service-specific data stores</li>
|
||||
</ul>
|
||||
<p>This comprehensive approach ensures that the entire infrastructure can be restored from backups, making the system truly self-sustaining.</p>
|
||||
<h2 id="benefits-of-this-approach">Benefits of This Approach<a href="#benefits-of-this-approach" class="hanchor" ariaLabel="Anchor">#</a> </h2>
|
||||
<p><strong>Resilience</strong>: Hardware failure on the Docker host doesn’t result in data loss<br>
|
||||
<strong>Security</strong>: Multi-layered security with network segmentation and minimal exposure<br>
|
||||
<strong>Maintainability</strong>: Containerized services are easy to update and manage<br>
|
||||
<strong>Scalability</strong>: Additional Docker hosts can connect to the same backup server<br>
|
||||
<strong>Cost-effective</strong>: Self-hosted solution with predictable costs</p>
|
||||
<h2 id="conclusion">Conclusion<a href="#conclusion" class="hanchor" ariaLabel="Anchor">#</a> </h2>
|
||||
<p>This two-server architecture strikes an excellent balance between simplicity and robustness. By combining Docker containerization with a dedicated, secured backup server connected via WireGuard, you achieve enterprise-grade reliability without enterprise-level complexity. Daily automated backups provide peace of mind, while the security-first network design protects your data from external threats.</p>
|
||||
|
||||
</div></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<footer class="footer">
|
||||
<div class="footer__inner">
|
||||
|
||||
<div class="copyright">
|
||||
<span>© 2025 Powered by <a href="https://gohugo.io">Hugo</a></span>
|
||||
|
||||
<span>:: <a href="https://github.com/panr/hugo-theme-terminal" target="_blank">Theme</a> made by <a href="https://github.com/panr" target="_blank">panr</a></span>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript" src="/bundle.min.js"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,29 +0,0 @@
|
||||
<?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>https://blog.fuhlig.de/</loc>
|
||||
<lastmod>2025-12-02T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
<loc>https://blog.fuhlig.de/posts/aboutme/</loc>
|
||||
<lastmod>2025-12-01T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
<loc>https://blog.fuhlig.de/tags/blog/</loc>
|
||||
<lastmod>2025-12-03T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
<loc>https://blog.fuhlig.de/categories/</loc>
|
||||
<lastmod>2025-12-03T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
<loc>https://blog.fuhlig.de/posts/</loc>
|
||||
<lastmod>2025-12-03T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
<loc>https://blog.fuhlig.de/tags/</loc>
|
||||
<lastmod>2025-12-03T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
<loc>https://blog.fuhlig.de/categories/webdev/</loc>
|
||||
<lastmod>2025-12-03T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
<loc>https://blog.fuhlig.de/posts/whatimworkingoncurrently/</loc>
|
||||
<lastmod>2025-12-03T00:00:00+00:00</lastmod>
|
||||
</url>
|
||||
</urlset>
|
||||
@@ -1,244 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
|
||||
<title>Blog :: TechnicalBlog</title>
|
||||
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="" />
|
||||
<meta name="keywords" content="" />
|
||||
|
||||
<meta name="robots" content="noodp" />
|
||||
|
||||
<link rel="canonical" href="https://blog.fuhlig.de/tags/blog/" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/code.min.d529ea4b2fb8d34328d7d31afc5466d5f7bc2f0bc9abdd98b69385335d7baee4.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/main.min.36833afd348409fc6c3d09d0897c5833d9d5bf1ff31f5e60ea3ee42ce2b1268c.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="shortcut icon" href="https://blog.fuhlig.de/favicon.png">
|
||||
<link rel="apple-touch-icon" href="https://blog.fuhlig.de/apple-touch-icon.png">
|
||||
|
||||
|
||||
<meta name="twitter:card" content="summary" />
|
||||
|
||||
|
||||
|
||||
<meta property="og:locale" content="en" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:title" content="Blog">
|
||||
<meta property="og:description" content="" />
|
||||
<meta property="og:url" content="https://blog.fuhlig.de/tags/blog/" />
|
||||
<meta property="og:site_name" content="TechnicalBlog" />
|
||||
|
||||
<meta property="og:image" content="https://blog.fuhlig.de/og-image.png">
|
||||
|
||||
<meta property="og:image:width" content="1200">
|
||||
<meta property="og:image:height" content="627">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link href="/tags/blog/index.xml" rel="alternate" type="application/rss+xml" title="TechnicalBlog" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
<div class="container center">
|
||||
|
||||
<header class="header">
|
||||
<div class="header__inner">
|
||||
<div class="header__logo">
|
||||
<a href="/">
|
||||
<div class="logo">
|
||||
TechnicalBlog
|
||||
</div>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<div class="content">
|
||||
|
||||
<h1>Posts for: #Blog</h1>
|
||||
|
||||
<div class="posts">
|
||||
|
||||
<article class="post on-list">
|
||||
<h1 class="post-title">
|
||||
<a href="https://blog.fuhlig.de/posts/aboutme/">About Me</a>
|
||||
</h1>
|
||||
<div class="post-meta"><time class="post-date">2025-12-01</time></div>
|
||||
|
||||
|
||||
<span class="post-tags">
|
||||
|
||||
#<a href="https://blog.fuhlig.de/tags/blog/">blog</a>
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="post-content">
|
||||
|
||||
<h2 id="who-am-i">Who am I</h2>
|
||||
<p>My name is Florian and I’m 22 years old.
|
||||
I work as an IT Technican mainly with Linux Servers in Frankfurt, Germany.
|
||||
My company is midsized around 50 people working here.
|
||||
I mainly want to post about what I learned, what inspires me.</p>
|
||||
<p>Well I dont really, this just seemed like a great idea to waste some time.</p>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div>
|
||||
<a class="read-more button inline" href="/posts/aboutme/">[]</a>
|
||||
</div>
|
||||
|
||||
</article>
|
||||
|
||||
<article class="post on-list">
|
||||
<h1 class="post-title">
|
||||
<a href="https://blog.fuhlig.de/posts/whatimworkingoncurrently/">What am I currently working on</a>
|
||||
</h1>
|
||||
<div class="post-meta"><time class="post-date">2025-12-03</time></div>
|
||||
|
||||
|
||||
<span class="post-tags">
|
||||
|
||||
#<a href="https://blog.fuhlig.de/tags/blog/">blog</a>
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="post-content">
|
||||
|
||||
<h1 id="building-a-self-sustaining-infrastructure-a-two-server-docker-setup">Building a Self-Sustaining Infrastructure: A Two-Server Docker Setup</h1>
|
||||
<h2 id="overview">Overview</h2>
|
||||
<p>Creating a resilient, self-sustaining infrastructure doesn’t require complex enterprise solutions. With two strategically configured servers and a well-thought-out backup strategy, you can achieve both reliability and security for your self-hosted applications.</p>
|
||||
<h2 id="the-architecture">The Architecture</h2>
|
||||
<h3 id="docker-host-server">Docker Host Server</h3>
|
||||
<p>The primary server runs all application workloads using Docker containers. This containerized approach provides:</p>
|
||||
<ul>
|
||||
<li><strong>Isolation</strong>: Each service runs in its own container with defined resources</li>
|
||||
<li><strong>Portability</strong>: Services can be easily migrated or replicated</li>
|
||||
<li><strong>Consistency</strong>: Docker Compose configurations ensure reproducible deployments</li>
|
||||
</ul>
|
||||
<p>The Docker host maintains minimal external exposure, with only essential ports opened to the internet. This reduces the attack surface while still providing necessary services.</p>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div>
|
||||
<a class="read-more button inline" href="/posts/whatimworkingoncurrently/">[]</a>
|
||||
</div>
|
||||
|
||||
</article>
|
||||
|
||||
|
||||
<div class="pagination">
|
||||
<div class="pagination__buttons">
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<footer class="footer">
|
||||
<div class="footer__inner">
|
||||
|
||||
<div class="copyright">
|
||||
<span>© 2025 Powered by <a href="https://gohugo.io">Hugo</a></span>
|
||||
|
||||
<span>:: <a href="https://github.com/panr/hugo-theme-terminal" target="_blank">Theme</a> made by <a href="https://github.com/panr" target="_blank">panr</a></span>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript" src="/bundle.min.js"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,26 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<title>Blog on TechnicalBlog</title>
|
||||
<link>https://blog.fuhlig.de/tags/blog/</link>
|
||||
<description>Recent content in Blog on TechnicalBlog</description>
|
||||
<generator>Hugo</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Wed, 03 Dec 2025 00:00:00 +0000</lastBuildDate>
|
||||
<atom:link href="https://blog.fuhlig.de/tags/blog/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>About Me</title>
|
||||
<link>https://blog.fuhlig.de/posts/aboutme/</link>
|
||||
<pubDate>Mon, 01 Dec 2025 00:00:00 +0000</pubDate>
|
||||
<guid>https://blog.fuhlig.de/posts/aboutme/</guid>
|
||||
<description><h2 id="who-am-i">Who am I</h2>
<p>My name is Florian and I&rsquo;m 22 years old.
I work as an IT Technican mainly with Linux Servers in Frankfurt, Germany.
My company is midsized around 50 people working here.
I mainly want to post about what I learned, what inspires me.</p>
<p>Well I dont really, this just seemed like a great idea to waste some time.</p></description>
|
||||
</item>
|
||||
<item>
|
||||
<title>What am I currently working on</title>
|
||||
<link>https://blog.fuhlig.de/posts/whatimworkingoncurrently/</link>
|
||||
<pubDate>Wed, 03 Dec 2025 00:00:00 +0000</pubDate>
|
||||
<guid>https://blog.fuhlig.de/posts/whatimworkingoncurrently/</guid>
|
||||
<description><h1 id="building-a-self-sustaining-infrastructure-a-two-server-docker-setup">Building a Self-Sustaining Infrastructure: A Two-Server Docker Setup</h1>
<h2 id="overview">Overview</h2>
<p>Creating a resilient, self-sustaining infrastructure doesn&rsquo;t require complex enterprise solutions. With two strategically configured servers and a well-thought-out backup strategy, you can achieve both reliability and security for your self-hosted applications.</p>
<h2 id="the-architecture">The Architecture</h2>
<h3 id="docker-host-server">Docker Host Server</h3>
<p>The primary server runs all application workloads using Docker containers. This containerized approach provides:</p>
<ul>
<li><strong>Isolation</strong>: Each service runs in its own container with defined resources</li>
<li><strong>Portability</strong>: Services can be easily migrated or replicated</li>
<li><strong>Consistency</strong>: Docker Compose configurations ensure reproducible deployments</li>
</ul>
<p>The Docker host maintains minimal external exposure, with only essential ports opened to the internet. This reduces the attack surface while still providing necessary services.</p></description>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
@@ -1,10 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<title>https://blog.fuhlig.de/tags/blog/</title>
|
||||
<link rel="canonical" href="https://blog.fuhlig.de/tags/blog/">
|
||||
<meta name="robots" content="noindex">
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="refresh" content="0; url=https://blog.fuhlig.de/tags/blog/">
|
||||
</head>
|
||||
</html>
|
||||
@@ -1,180 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
|
||||
<title>Tags :: TechnicalBlog</title>
|
||||
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="Here you can find entry quicker thru my tags" />
|
||||
<meta name="keywords" content="" />
|
||||
|
||||
<meta name="robots" content="noodp" />
|
||||
|
||||
<link rel="canonical" href="https://blog.fuhlig.de/tags/" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/code.min.d529ea4b2fb8d34328d7d31afc5466d5f7bc2f0bc9abdd98b69385335d7baee4.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/main.min.36833afd348409fc6c3d09d0897c5833d9d5bf1ff31f5e60ea3ee42ce2b1268c.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="shortcut icon" href="https://blog.fuhlig.de/favicon.png">
|
||||
<link rel="apple-touch-icon" href="https://blog.fuhlig.de/apple-touch-icon.png">
|
||||
|
||||
|
||||
<meta name="twitter:card" content="summary" />
|
||||
|
||||
|
||||
|
||||
<meta property="og:locale" content="en" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:title" content="Tags">
|
||||
<meta property="og:description" content="Here you can find entry quicker thru my tags" />
|
||||
<meta property="og:url" content="https://blog.fuhlig.de/tags/" />
|
||||
<meta property="og:site_name" content="TechnicalBlog" />
|
||||
|
||||
<meta property="og:image" content="https://blog.fuhlig.de/og-image.png">
|
||||
|
||||
<meta property="og:image:width" content="1200">
|
||||
<meta property="og:image:height" content="627">
|
||||
|
||||
<meta property="article:section" content="webdev" />
|
||||
|
||||
|
||||
<meta property="article:published_time" content="2025-12-03 00:00:00 +0000 UTC" />
|
||||
|
||||
|
||||
|
||||
|
||||
<link href="/tags/index.xml" rel="alternate" type="application/rss+xml" title="TechnicalBlog" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
<div class="container center">
|
||||
|
||||
<header class="header">
|
||||
<div class="header__inner">
|
||||
<div class="header__logo">
|
||||
<a href="/">
|
||||
<div class="logo">
|
||||
TechnicalBlog
|
||||
</div>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<div class="content">
|
||||
|
||||
<div class="terms">
|
||||
<h1>Tags</h1>
|
||||
|
||||
<div class="index-content">
|
||||
|
||||
Here you can find entry quicker thru my tags
|
||||
|
||||
</div>
|
||||
|
||||
<ul>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li>
|
||||
<a class="terms-title" href="https://blog.fuhlig.de/tags/blog/">blog [2]</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<footer class="footer">
|
||||
<div class="footer__inner">
|
||||
|
||||
<div class="copyright">
|
||||
<span>© 2025 Powered by <a href="https://gohugo.io">Hugo</a></span>
|
||||
|
||||
<span>:: <a href="https://github.com/panr/hugo-theme-terminal" target="_blank">Theme</a> made by <a href="https://github.com/panr" target="_blank">panr</a></span>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript" src="/bundle.min.js"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,19 +0,0 @@
|
||||
<?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 TechnicalBlog</title>
|
||||
<link>https://blog.fuhlig.de/tags/</link>
|
||||
<description>Recent content in Tags on TechnicalBlog</description>
|
||||
<generator>Hugo</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Wed, 03 Dec 2025 00:00:00 +0000</lastBuildDate>
|
||||
<atom:link href="https://blog.fuhlig.de/tags/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>Blog</title>
|
||||
<link>https://blog.fuhlig.de/tags/blog/</link>
|
||||
<pubDate>Wed, 03 Dec 2025 00:00:00 +0000</pubDate>
|
||||
<guid>https://blog.fuhlig.de/tags/blog/</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
{"Target":"/ananke/css/main.min.css","MediaType":"text/css","Data":{}}
|
||||
Reference in New Issue
Block a user