Rebuild
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script>
|
||||
<head>
|
||||
|
||||
<title>404 Page not found :: TechnicalBlog</title>
|
||||
|
||||
@@ -11,50 +11,50 @@
|
||||
|
||||
<meta name="robots" content="noodp" />
|
||||
|
||||
<link rel="canonical" href="http://localhost:1313/404.html" />
|
||||
<link rel="canonical" href="https://blog.fuhlig.de/404.html" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/code.min.d529ea4b2fb8d34328d7d31afc5466d5f7bc2f0bc9abdd98b69385335d7baee4.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/code.min.d529ea4b2fb8d34328d7d31afc5466d5f7bc2f0bc9abdd98b69385335d7baee4.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/main.min.36833afd348409fc6c3d09d0897c5833d9d5bf1ff31f5e60ea3ee42ce2b1268c.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/main.min.36833afd348409fc6c3d09d0897c5833d9d5bf1ff31f5e60ea3ee42ce2b1268c.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css">
|
||||
|
||||
|
||||
|
||||
@@ -62,8 +62,8 @@
|
||||
|
||||
|
||||
|
||||
<link rel="shortcut icon" href="http://localhost:1313/favicon.png">
|
||||
<link rel="apple-touch-icon" href="http://localhost:1313/apple-touch-icon.png">
|
||||
<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" />
|
||||
@@ -74,10 +74,10 @@
|
||||
<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="http://localhost:1313/404.html" />
|
||||
<meta property="og:url" content="https://blog.fuhlig.de/404.html" />
|
||||
<meta property="og:site_name" content="TechnicalBlog" />
|
||||
|
||||
<meta property="og:image" content="http://localhost:1313/og-image.png">
|
||||
<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">
|
||||
@@ -123,7 +123,7 @@
|
||||
<h1 class="post-title">404 — Page not found...</h1>
|
||||
|
||||
<div class="post-content">
|
||||
<a href="http://localhost:1313/">Back to home page →</a>
|
||||
<a href="https://blog.fuhlig.de/">Back to home page →</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script>
|
||||
<head>
|
||||
|
||||
<title>Categories :: TechnicalBlog</title>
|
||||
|
||||
@@ -11,50 +11,50 @@
|
||||
|
||||
<meta name="robots" content="noodp" />
|
||||
|
||||
<link rel="canonical" href="http://localhost:1313/categories/" />
|
||||
<link rel="canonical" href="https://blog.fuhlig.de/categories/" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/code.min.d529ea4b2fb8d34328d7d31afc5466d5f7bc2f0bc9abdd98b69385335d7baee4.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/code.min.d529ea4b2fb8d34328d7d31afc5466d5f7bc2f0bc9abdd98b69385335d7baee4.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/main.min.36833afd348409fc6c3d09d0897c5833d9d5bf1ff31f5e60ea3ee42ce2b1268c.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/main.min.36833afd348409fc6c3d09d0897c5833d9d5bf1ff31f5e60ea3ee42ce2b1268c.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css">
|
||||
|
||||
|
||||
|
||||
@@ -62,8 +62,8 @@
|
||||
|
||||
|
||||
|
||||
<link rel="shortcut icon" href="http://localhost:1313/favicon.png">
|
||||
<link rel="apple-touch-icon" href="http://localhost:1313/apple-touch-icon.png">
|
||||
<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" />
|
||||
@@ -74,10 +74,10 @@
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:title" content="Categories">
|
||||
<meta property="og:description" content="" />
|
||||
<meta property="og:url" content="http://localhost:1313/categories/" />
|
||||
<meta property="og:url" content="https://blog.fuhlig.de/categories/" />
|
||||
<meta property="og:site_name" content="TechnicalBlog" />
|
||||
|
||||
<meta property="og:image" content="http://localhost:1313/og-image.png">
|
||||
<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">
|
||||
@@ -131,7 +131,7 @@
|
||||
|
||||
|
||||
<li>
|
||||
<a class="terms-title" href="http://localhost:1313/categories/webdev/">webdev [1]</a>
|
||||
<a class="terms-title" href="https://blog.fuhlig.de/categories/webdev/">webdev [1]</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
@@ -2,17 +2,17 @@
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<title>Categories on TechnicalBlog</title>
|
||||
<link>http://localhost:1313/categories/</link>
|
||||
<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="http://localhost:1313/categories/index.xml" rel="self" type="application/rss+xml" />
|
||||
<atom:link href="https://blog.fuhlig.de/categories/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>Webdev</title>
|
||||
<link>http://localhost:1313/categories/webdev/</link>
|
||||
<link>https://blog.fuhlig.de/categories/webdev/</link>
|
||||
<pubDate>Wed, 03 Dec 2025 00:00:00 +0000</pubDate>
|
||||
<guid>http://localhost:1313/categories/webdev/</guid>
|
||||
<guid>https://blog.fuhlig.de/categories/webdev/</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
</channel>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta name="generator" content="Hugo 0.135.0"><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script>
|
||||
<meta name="generator" content="Hugo 0.135.0">
|
||||
|
||||
<title>TechnicalBlog</title>
|
||||
|
||||
@@ -12,50 +12,50 @@
|
||||
|
||||
<meta name="robots" content="noodp" />
|
||||
|
||||
<link rel="canonical" href="http://localhost:1313/" />
|
||||
<link rel="canonical" href="https://blog.fuhlig.de/" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/code.min.d529ea4b2fb8d34328d7d31afc5466d5f7bc2f0bc9abdd98b69385335d7baee4.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/code.min.d529ea4b2fb8d34328d7d31afc5466d5f7bc2f0bc9abdd98b69385335d7baee4.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/main.min.36833afd348409fc6c3d09d0897c5833d9d5bf1ff31f5e60ea3ee42ce2b1268c.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/main.min.36833afd348409fc6c3d09d0897c5833d9d5bf1ff31f5e60ea3ee42ce2b1268c.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css">
|
||||
|
||||
|
||||
|
||||
@@ -63,8 +63,8 @@
|
||||
|
||||
|
||||
|
||||
<link rel="shortcut icon" href="http://localhost:1313/favicon.png">
|
||||
<link rel="apple-touch-icon" href="http://localhost:1313/apple-touch-icon.png">
|
||||
<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" />
|
||||
@@ -75,10 +75,10 @@
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:title" content="TechnicalBlog">
|
||||
<meta property="og:description" content="" />
|
||||
<meta property="og:url" content="http://localhost:1313/" />
|
||||
<meta property="og:url" content="https://blog.fuhlig.de/" />
|
||||
<meta property="og:site_name" content="TechnicalBlog" />
|
||||
|
||||
<meta property="og:image" content="http://localhost:1313/og-image.png">
|
||||
<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">
|
||||
@@ -143,7 +143,7 @@
|
||||
|
||||
<article class="post on-list">
|
||||
<h2 class="post-title">
|
||||
<a href="http://localhost:1313/posts/aboutme/">About Me</a>
|
||||
<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>
|
||||
@@ -151,7 +151,7 @@
|
||||
|
||||
<span class="post-tags">
|
||||
|
||||
#<a href="http://localhost:1313/tags/blog/">blog</a>
|
||||
#<a href="https://blog.fuhlig.de/tags/blog/">blog</a>
|
||||
|
||||
</span>
|
||||
|
||||
@@ -179,7 +179,7 @@ I mainly want to post about what I learned, what inspires me.</p>
|
||||
|
||||
<article class="post on-list">
|
||||
<h2 class="post-title">
|
||||
<a href="http://localhost:1313/posts/whatimworkingoncurrently/">What am I currently working on</a>
|
||||
<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>
|
||||
@@ -187,7 +187,7 @@ I mainly want to post about what I learned, what inspires me.</p>
|
||||
|
||||
<span class="post-tags">
|
||||
|
||||
#<a href="http://localhost:1313/tags/blog/">blog</a>
|
||||
#<a href="https://blog.fuhlig.de/tags/blog/">blog</a>
|
||||
|
||||
</span>
|
||||
|
||||
@@ -197,13 +197,18 @@ I mainly want to post about what I learned, what inspires me.</p>
|
||||
|
||||
<div class="post-content">
|
||||
|
||||
<p>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.</p>
|
||||
<p>The Architecture
|
||||
Docker Host Server
|
||||
The primary server runs all application workloads using Docker containers. This containerized approach provides:</p>
|
||||
<p>Isolation: Each service runs in its own container with defined resources</p>
|
||||
<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>
|
||||
|
||||
|
||||
@@ -2,25 +2,25 @@
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<title>WelcomeToMyTechnicalBlog on TechnicalBlog</title>
|
||||
<link>http://localhost:1313/</link>
|
||||
<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="http://localhost:1313/index.xml" rel="self" type="application/rss+xml" />
|
||||
<atom:link href="https://blog.fuhlig.de/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>About Me</title>
|
||||
<link>http://localhost:1313/posts/aboutme/</link>
|
||||
<link>https://blog.fuhlig.de/posts/aboutme/</link>
|
||||
<pubDate>Mon, 01 Dec 2025 00:00:00 +0000</pubDate>
|
||||
<guid>http://localhost:1313/posts/aboutme/</guid>
|
||||
<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>http://localhost:1313/posts/whatimworkingoncurrently/</link>
|
||||
<link>https://blog.fuhlig.de/posts/whatimworkingoncurrently/</link>
|
||||
<pubDate>Wed, 03 Dec 2025 00:00:00 +0000</pubDate>
|
||||
<guid>http://localhost:1313/posts/whatimworkingoncurrently/</guid>
|
||||
<description><p>Building a Self-Sustaining Infrastructure: A Two-Server Docker Setup
Overview
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>
<p>The Architecture
Docker Host Server
The primary server runs all application workloads using Docker containers. This containerized approach provides:</p>
<p>Isolation: Each service runs in its own container with defined resources</p></description>
|
||||
<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 +1,10 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<title>http://localhost:1313/</title>
|
||||
<link rel="canonical" href="http://localhost:1313/">
|
||||
<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=http://localhost:1313/">
|
||||
<meta http-equiv="refresh" content="0; url=https://blog.fuhlig.de/">
|
||||
</head>
|
||||
</html>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script>
|
||||
<head>
|
||||
|
||||
<title>About Me :: TechnicalBlog</title>
|
||||
|
||||
@@ -13,50 +13,50 @@ Well I dont really, this just seemed like a great idea to waste some time.
|
||||
|
||||
<meta name="robots" content="noodp" />
|
||||
|
||||
<link rel="canonical" href="http://localhost:1313/posts/aboutme/" />
|
||||
<link rel="canonical" href="https://blog.fuhlig.de/posts/aboutme/" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/code.min.d529ea4b2fb8d34328d7d31afc5466d5f7bc2f0bc9abdd98b69385335d7baee4.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/code.min.d529ea4b2fb8d34328d7d31afc5466d5f7bc2f0bc9abdd98b69385335d7baee4.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/main.min.36833afd348409fc6c3d09d0897c5833d9d5bf1ff31f5e60ea3ee42ce2b1268c.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/main.min.36833afd348409fc6c3d09d0897c5833d9d5bf1ff31f5e60ea3ee42ce2b1268c.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css">
|
||||
|
||||
|
||||
|
||||
@@ -64,8 +64,8 @@ Well I dont really, this just seemed like a great idea to waste some time.
|
||||
|
||||
|
||||
|
||||
<link rel="shortcut icon" href="http://localhost:1313/favicon.png">
|
||||
<link rel="apple-touch-icon" href="http://localhost:1313/apple-touch-icon.png">
|
||||
<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" />
|
||||
@@ -78,10 +78,10 @@ Well I dont really, this just seemed like a great idea to waste some time.
|
||||
<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="http://localhost:1313/posts/aboutme/" />
|
||||
<meta property="og:url" content="https://blog.fuhlig.de/posts/aboutme/" />
|
||||
<meta property="og:site_name" content="TechnicalBlog" />
|
||||
|
||||
<meta property="og:image" content="http://localhost:1313/og-image.png">
|
||||
<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">
|
||||
@@ -127,14 +127,14 @@ Well I dont really, this just seemed like a great idea to waste some time.
|
||||
|
||||
<article class="post">
|
||||
<h1 class="post-title">
|
||||
<a href="http://localhost:1313/posts/aboutme/">About Me</a>
|
||||
<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="http://localhost:1313/tags/blog/">blog</a>
|
||||
#<a href="https://blog.fuhlig.de/tags/blog/">blog</a>
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script>
|
||||
<head>
|
||||
|
||||
<title>Posts :: TechnicalBlog</title>
|
||||
|
||||
@@ -11,50 +11,50 @@
|
||||
|
||||
<meta name="robots" content="noodp" />
|
||||
|
||||
<link rel="canonical" href="http://localhost:1313/posts/" />
|
||||
<link rel="canonical" href="https://blog.fuhlig.de/posts/" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/code.min.d529ea4b2fb8d34328d7d31afc5466d5f7bc2f0bc9abdd98b69385335d7baee4.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/code.min.d529ea4b2fb8d34328d7d31afc5466d5f7bc2f0bc9abdd98b69385335d7baee4.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/main.min.36833afd348409fc6c3d09d0897c5833d9d5bf1ff31f5e60ea3ee42ce2b1268c.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/main.min.36833afd348409fc6c3d09d0897c5833d9d5bf1ff31f5e60ea3ee42ce2b1268c.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css">
|
||||
|
||||
|
||||
|
||||
@@ -62,8 +62,8 @@
|
||||
|
||||
|
||||
|
||||
<link rel="shortcut icon" href="http://localhost:1313/favicon.png">
|
||||
<link rel="apple-touch-icon" href="http://localhost:1313/apple-touch-icon.png">
|
||||
<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" />
|
||||
@@ -74,10 +74,10 @@
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:title" content="Posts">
|
||||
<meta property="og:description" content="" />
|
||||
<meta property="og:url" content="http://localhost:1313/posts/" />
|
||||
<meta property="og:url" content="https://blog.fuhlig.de/posts/" />
|
||||
<meta property="og:site_name" content="TechnicalBlog" />
|
||||
|
||||
<meta property="og:image" content="http://localhost:1313/og-image.png">
|
||||
<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">
|
||||
@@ -126,14 +126,14 @@
|
||||
|
||||
<article class="post on-list">
|
||||
<h2 class="post-title">
|
||||
<a href="http://localhost:1313/posts/aboutme/">About Me</a>
|
||||
<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="http://localhost:1313/tags/blog/">blog</a>
|
||||
#<a href="https://blog.fuhlig.de/tags/blog/">blog</a>
|
||||
|
||||
</span>
|
||||
|
||||
@@ -161,14 +161,14 @@ I mainly want to post about what I learned, what inspires me.</p>
|
||||
|
||||
<article class="post on-list">
|
||||
<h2 class="post-title">
|
||||
<a href="http://localhost:1313/posts/whatimworkingoncurrently/">What am I currently working on</a>
|
||||
<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="http://localhost:1313/tags/blog/">blog</a>
|
||||
#<a href="https://blog.fuhlig.de/tags/blog/">blog</a>
|
||||
|
||||
</span>
|
||||
|
||||
@@ -178,13 +178,18 @@ I mainly want to post about what I learned, what inspires me.</p>
|
||||
|
||||
<div class="post-content">
|
||||
|
||||
<p>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.</p>
|
||||
<p>The Architecture
|
||||
Docker Host Server
|
||||
The primary server runs all application workloads using Docker containers. This containerized approach provides:</p>
|
||||
<p>Isolation: Each service runs in its own container with defined resources</p>
|
||||
<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>
|
||||
|
||||
|
||||
@@ -2,25 +2,25 @@
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<title>Posts on TechnicalBlog</title>
|
||||
<link>http://localhost:1313/posts/</link>
|
||||
<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="http://localhost:1313/posts/index.xml" rel="self" type="application/rss+xml" />
|
||||
<atom:link href="https://blog.fuhlig.de/posts/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>About Me</title>
|
||||
<link>http://localhost:1313/posts/aboutme/</link>
|
||||
<link>https://blog.fuhlig.de/posts/aboutme/</link>
|
||||
<pubDate>Mon, 01 Dec 2025 00:00:00 +0000</pubDate>
|
||||
<guid>http://localhost:1313/posts/aboutme/</guid>
|
||||
<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>http://localhost:1313/posts/whatimworkingoncurrently/</link>
|
||||
<link>https://blog.fuhlig.de/posts/whatimworkingoncurrently/</link>
|
||||
<pubDate>Wed, 03 Dec 2025 00:00:00 +0000</pubDate>
|
||||
<guid>http://localhost:1313/posts/whatimworkingoncurrently/</guid>
|
||||
<description><p>Building a Self-Sustaining Infrastructure: A Two-Server Docker Setup
Overview
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>
<p>The Architecture
Docker Host Server
The primary server runs all application workloads using Docker containers. This containerized approach provides:</p>
<p>Isolation: Each service runs in its own container with defined resources</p></description>
|
||||
<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 +1,10 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<title>http://localhost:1313/posts/</title>
|
||||
<link rel="canonical" href="http://localhost:1313/posts/">
|
||||
<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=http://localhost:1313/posts/">
|
||||
<meta http-equiv="refresh" content="0; url=https://blog.fuhlig.de/posts/">
|
||||
</head>
|
||||
</html>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script>
|
||||
<head>
|
||||
|
||||
<title>What am I currently working on :: TechnicalBlog</title>
|
||||
|
||||
@@ -8,56 +8,56 @@
|
||||
<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
|
||||
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="http://localhost:1313/posts/whatimworkingoncurrently/" />
|
||||
<link rel="canonical" href="https://blog.fuhlig.de/posts/whatimworkingoncurrently/" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/code.min.d529ea4b2fb8d34328d7d31afc5466d5f7bc2f0bc9abdd98b69385335d7baee4.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/code.min.d529ea4b2fb8d34328d7d31afc5466d5f7bc2f0bc9abdd98b69385335d7baee4.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/main.min.36833afd348409fc6c3d09d0897c5833d9d5bf1ff31f5e60ea3ee42ce2b1268c.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/main.min.36833afd348409fc6c3d09d0897c5833d9d5bf1ff31f5e60ea3ee42ce2b1268c.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css">
|
||||
|
||||
|
||||
|
||||
@@ -65,8 +65,8 @@ Isolation: Each service runs in its own container with defined resources
|
||||
|
||||
|
||||
|
||||
<link rel="shortcut icon" href="http://localhost:1313/favicon.png">
|
||||
<link rel="apple-touch-icon" href="http://localhost:1313/apple-touch-icon.png">
|
||||
<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" />
|
||||
@@ -78,12 +78,12 @@ Isolation: Each service runs in its own container with defined resources
|
||||
<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
|
||||
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="http://localhost:1313/posts/whatimworkingoncurrently/" />
|
||||
<meta property="og:url" content="https://blog.fuhlig.de/posts/whatimworkingoncurrently/" />
|
||||
<meta property="og:site_name" content="TechnicalBlog" />
|
||||
|
||||
<meta property="og:image" content="http://localhost:1313/og-image.png">
|
||||
<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">
|
||||
@@ -129,14 +129,14 @@ Isolation: Each service runs in its own container with defined resources
|
||||
|
||||
<article class="post">
|
||||
<h1 class="post-title">
|
||||
<a href="http://localhost:1313/posts/whatimworkingoncurrently/">What am I currently working on</a>
|
||||
<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="http://localhost:1313/tags/blog/">blog</a>
|
||||
#<a href="https://blog.fuhlig.de/tags/blog/">blog</a>
|
||||
|
||||
</span>
|
||||
|
||||
@@ -146,45 +146,55 @@ Isolation: Each service runs in its own container with defined resources
|
||||
|
||||
|
||||
<div class="post-content"><div>
|
||||
<p>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.</p>
|
||||
<p>The Architecture
|
||||
Docker Host Server
|
||||
The primary server runs all application workloads using Docker containers. This containerized approach provides:</p>
|
||||
<p>Isolation: Each service runs in its own container with defined resources</p>
|
||||
<p>Portability: Services can be easily migrated or replicated</p>
|
||||
<p>Consistency: Docker Compose configurations ensure reproducible deployments</p>
|
||||
<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>
|
||||
<p>Backup Storage Server
|
||||
The secondary server serves as a dedicated backup repository with substantial storage capacity. This server is:</p>
|
||||
<p>Isolated from the internet: No external access is permitted</p>
|
||||
<p>Secured via iptables: Firewall rules prevent unauthorized connections</p>
|
||||
<p>Connected via WireGuard VPN: Encrypted tunnel ensures secure communication between servers</p>
|
||||
<p>Security Through Network Segmentation
|
||||
The WireGuard VPN creates a secure, encrypted tunnel between the Docker host and backup server. This architecture provides several benefits:</p>
|
||||
<p>Private communication channel for backup operations</p>
|
||||
<p>Zero trust model for the backup server (completely isolated from public internet)</p>
|
||||
<p>Reduced risk of data exfiltration</p>
|
||||
<p>Encrypted data transfer between servers</p>
|
||||
<p>Automated Backup Strategy
|
||||
Daily automated backups capture the critical components:</p>
|
||||
<p>Database Backups
|
||||
All databases are exported and stored, ensuring data consistency and point-in-time recovery capabilities.</p>
|
||||
<p>Docker Volume Backups
|
||||
Persistent data from Docker volumes is systematically backed up, including:</p>
|
||||
<p>Application configuration files</p>
|
||||
<p>User-generated content</p>
|
||||
<p>Service-specific data stores</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>
|
||||
<p>Benefits of This Approach
|
||||
Resilience: Hardware failure on the Docker host doesn’t result in data loss
|
||||
Security: Multi-layered security with network segmentation and minimal exposure
|
||||
Maintainability: Containerized services are easy to update and manage
|
||||
Scalability: Additional Docker hosts can connect to the same backup server
|
||||
Cost-effective: Self-hosted solution with predictable costs</p>
|
||||
<p>Conclusion
|
||||
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>
|
||||
<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>
|
||||
<hr>
|
||||
<p><em>This setup demonstrates that effective infrastructure doesn’t require massive cloud budgets—just thoughtful design and consistent execution.</em></p>
|
||||
|
||||
</div></div>
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
|
||||
xmlns:xhtml="http://www.w3.org/1999/xhtml">
|
||||
<url>
|
||||
<loc>http://localhost:1313/</loc>
|
||||
<loc>https://blog.fuhlig.de/</loc>
|
||||
<lastmod>2025-12-02T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
<loc>http://localhost:1313/posts/aboutme/</loc>
|
||||
<loc>https://blog.fuhlig.de/posts/aboutme/</loc>
|
||||
<lastmod>2025-12-01T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
<loc>http://localhost:1313/tags/blog/</loc>
|
||||
<loc>https://blog.fuhlig.de/tags/blog/</loc>
|
||||
<lastmod>2025-12-03T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
<loc>http://localhost:1313/categories/</loc>
|
||||
<loc>https://blog.fuhlig.de/categories/</loc>
|
||||
<lastmod>2025-12-03T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
<loc>http://localhost:1313/posts/</loc>
|
||||
<loc>https://blog.fuhlig.de/posts/</loc>
|
||||
<lastmod>2025-12-03T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
<loc>http://localhost:1313/tags/</loc>
|
||||
<loc>https://blog.fuhlig.de/tags/</loc>
|
||||
<lastmod>2025-12-03T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
<loc>http://localhost:1313/categories/webdev/</loc>
|
||||
<loc>https://blog.fuhlig.de/categories/webdev/</loc>
|
||||
<lastmod>2025-12-03T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
<loc>http://localhost:1313/posts/whatimworkingoncurrently/</loc>
|
||||
<loc>https://blog.fuhlig.de/posts/whatimworkingoncurrently/</loc>
|
||||
<lastmod>2025-12-03T00:00:00+00:00</lastmod>
|
||||
</url>
|
||||
</urlset>
|
||||
|
||||
@@ -179,13 +179,18 @@ I mainly want to post about what I learned, what inspires me.</p>
|
||||
|
||||
<div class="post-content">
|
||||
|
||||
<p>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.</p>
|
||||
<p>The Architecture
|
||||
Docker Host Server
|
||||
The primary server runs all application workloads using Docker containers. This containerized approach provides:</p>
|
||||
<p>Isolation: Each service runs in its own container with defined resources</p>
|
||||
<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>
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<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><p>Building a Self-Sustaining Infrastructure: A Two-Server Docker Setup
Overview
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>
<p>The Architecture
Docker Host Server
The primary server runs all application workloads using Docker containers. This containerized approach provides:</p>
<p>Isolation: Each service runs in its own container with defined resources</p></description>
|
||||
<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 +1,6 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script>
|
||||
<head>
|
||||
|
||||
<title>Tags :: TechnicalBlog</title>
|
||||
|
||||
@@ -11,50 +11,50 @@
|
||||
|
||||
<meta name="robots" content="noodp" />
|
||||
|
||||
<link rel="canonical" href="http://localhost:1313/tags/" />
|
||||
<link rel="canonical" href="https://blog.fuhlig.de/tags/" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/code.min.d529ea4b2fb8d34328d7d31afc5466d5f7bc2f0bc9abdd98b69385335d7baee4.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/code.min.d529ea4b2fb8d34328d7d31afc5466d5f7bc2f0bc9abdd98b69385335d7baee4.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/main.min.36833afd348409fc6c3d09d0897c5833d9d5bf1ff31f5e60ea3ee42ce2b1268c.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/main.min.36833afd348409fc6c3d09d0897c5833d9d5bf1ff31f5e60ea3ee42ce2b1268c.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css">
|
||||
<link rel="stylesheet" href="https://blog.fuhlig.de/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css">
|
||||
|
||||
|
||||
|
||||
@@ -62,8 +62,8 @@
|
||||
|
||||
|
||||
|
||||
<link rel="shortcut icon" href="http://localhost:1313/favicon.png">
|
||||
<link rel="apple-touch-icon" href="http://localhost:1313/apple-touch-icon.png">
|
||||
<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" />
|
||||
@@ -74,10 +74,10 @@
|
||||
<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="http://localhost:1313/tags/" />
|
||||
<meta property="og:url" content="https://blog.fuhlig.de/tags/" />
|
||||
<meta property="og:site_name" content="TechnicalBlog" />
|
||||
|
||||
<meta property="og:image" content="http://localhost:1313/og-image.png">
|
||||
<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">
|
||||
@@ -141,7 +141,7 @@ Here you can find entry quicker thru my tags
|
||||
|
||||
|
||||
<li>
|
||||
<a class="terms-title" href="http://localhost:1313/tags/blog/">blog [2]</a>
|
||||
<a class="terms-title" href="https://blog.fuhlig.de/tags/blog/">blog [2]</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
@@ -2,17 +2,17 @@
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<title>Tags on TechnicalBlog</title>
|
||||
<link>http://localhost:1313/tags/</link>
|
||||
<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="http://localhost:1313/tags/index.xml" rel="self" type="application/rss+xml" />
|
||||
<atom:link href="https://blog.fuhlig.de/tags/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>Blog</title>
|
||||
<link>http://localhost:1313/tags/blog/</link>
|
||||
<link>https://blog.fuhlig.de/tags/blog/</link>
|
||||
<pubDate>Wed, 03 Dec 2025 00:00:00 +0000</pubDate>
|
||||
<guid>http://localhost:1313/tags/blog/</guid>
|
||||
<guid>https://blog.fuhlig.de/tags/blog/</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
</channel>
|
||||
|
||||
Reference in New Issue
Block a user