245 lines
11 KiB
HTML
245 lines
11 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en" dir="auto">
|
||
|
||
<head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script><meta charset="utf-8">
|
||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||
<meta name="robots" content="noindex, nofollow">
|
||
<title>Introduction | PyteDev Blog</title>
|
||
<meta name="keywords" content="">
|
||
<meta name="description" content="Welcome to My Blog!
|
||
I’m Demian, a Sysadmin, Email Infrastructure enthusiast, and a passionate Open Source contributor. This is where I’ll be sharing what I know about system administration, managing email infrastructure, and contributing to open source projects.
|
||
What to Expect
|
||
On this blog, I’ll be writing about:
|
||
|
||
Sysadmin tips and tools: Everything I’ve learned managing servers, networks, and infrastructure.
|
||
Email Infrastructure: Best practices for setting up, securing, and managing email systems.
|
||
Open Source: How I contribute to open source projects, and tips for getting started if you want to do the same.
|
||
|
||
This blog is a space to share knowledge, troubleshoot common issues, and explore new tools and techniques. Whether you’re just getting into system administration, looking for email setup guides, or interested in contributing to open source, you’ll find something useful here.">
|
||
<meta name="author" content="">
|
||
<link rel="canonical" href="//localhost:1313/posts/my-first-post/">
|
||
<link crossorigin="anonymous" href="/assets/css/stylesheet.f49d66caae9ea0fd43f21f29e71a8d3e284517ed770f2aa86fa012953ad3c9ef.css" integrity="sha256-9J1myq6eoP1D8h8p5xqNPihFF+13Dyqob6ASlTrTye8=" rel="preload stylesheet" as="style">
|
||
<link rel="icon" href="//localhost:1313/favicon.ico">
|
||
<link rel="icon" type="image/png" sizes="16x16" href="//localhost:1313/favicon-16x16.png">
|
||
<link rel="icon" type="image/png" sizes="32x32" href="//localhost:1313/favicon-32x32.png">
|
||
<link rel="apple-touch-icon" href="//localhost:1313/apple-touch-icon.png">
|
||
<link rel="mask-icon" href="//localhost:1313/safari-pinned-tab.svg">
|
||
<meta name="theme-color" content="#2e2e33">
|
||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||
<link rel="alternate" hreflang="en" href="//localhost:1313/posts/my-first-post/">
|
||
<noscript>
|
||
<style>
|
||
#theme-toggle,
|
||
.top-link {
|
||
display: none;
|
||
}
|
||
|
||
</style>
|
||
<style>
|
||
@media (prefers-color-scheme: dark) {
|
||
:root {
|
||
--theme: rgb(29, 30, 32);
|
||
--entry: rgb(46, 46, 51);
|
||
--primary: rgb(218, 218, 219);
|
||
--secondary: rgb(155, 156, 157);
|
||
--tertiary: rgb(65, 66, 68);
|
||
--content: rgb(196, 196, 197);
|
||
--code-block-bg: rgb(46, 46, 51);
|
||
--code-bg: rgb(55, 56, 62);
|
||
--border: rgb(51, 51, 51);
|
||
}
|
||
|
||
.list {
|
||
background: var(--theme);
|
||
}
|
||
|
||
.list:not(.dark)::-webkit-scrollbar-track {
|
||
background: 0 0;
|
||
}
|
||
|
||
.list:not(.dark)::-webkit-scrollbar-thumb {
|
||
border-color: var(--theme);
|
||
}
|
||
}
|
||
|
||
</style>
|
||
</noscript>
|
||
</head>
|
||
|
||
<body class="" id="top">
|
||
<script>
|
||
if (localStorage.getItem("pref-theme") === "dark") {
|
||
document.body.classList.add('dark');
|
||
} else if (localStorage.getItem("pref-theme") === "light") {
|
||
document.body.classList.remove('dark')
|
||
} else if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
||
document.body.classList.add('dark');
|
||
}
|
||
|
||
</script>
|
||
|
||
<header class="header">
|
||
<nav class="nav">
|
||
<div class="logo">
|
||
<a href="//localhost:1313/" accesskey="h" title="PyteDev Blog (Alt + H)">PyteDev Blog</a>
|
||
<div class="logo-switches">
|
||
<button id="theme-toggle" accesskey="t" title="(Alt + T)" aria-label="Toggle theme">
|
||
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||
stroke-linejoin="round">
|
||
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
|
||
</svg>
|
||
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||
stroke-linejoin="round">
|
||
<circle cx="12" cy="12" r="5"></circle>
|
||
<line x1="12" y1="1" x2="12" y2="3"></line>
|
||
<line x1="12" y1="21" x2="12" y2="23"></line>
|
||
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
|
||
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
|
||
<line x1="1" y1="12" x2="3" y2="12"></line>
|
||
<line x1="21" y1="12" x2="23" y2="12"></line>
|
||
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
|
||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||
</svg>
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<ul id="menu">
|
||
<li>
|
||
<a href="//localhost:1313/" title="Home">
|
||
<span>Home</span>
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="//localhost:1313/posts/" title="Blog">
|
||
<span>Blog</span>
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="//localhost:1313/search/" title="Search">
|
||
<span>Search</span>
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
</nav>
|
||
</header>
|
||
<main class="main">
|
||
|
||
<article class="post-single">
|
||
<header class="post-header">
|
||
|
||
<h1 class="post-title entry-hint-parent">
|
||
Introduction
|
||
<span class="entry-hint" title="Draft">
|
||
<svg xmlns="http://www.w3.org/2000/svg" height="35" viewBox="0 -960 960 960" fill="currentColor">
|
||
<path
|
||
d="M160-410v-60h300v60H160Zm0-165v-60h470v60H160Zm0-165v-60h470v60H160Zm360 580v-123l221-220q9-9 20-13t22-4q12 0 23 4.5t20 13.5l37 37q9 9 13 20t4 22q0 11-4.5 22.5T862.09-380L643-160H520Zm300-263-37-37 37 37ZM580-220h38l121-122-18-19-19-18-122 121v38Zm141-141-19-18 37 37-18-19Z" />
|
||
</svg>
|
||
</span>
|
||
</h1>
|
||
<div class="post-meta"><span title='2025-05-11 20:13:49 +0200 CEST'>May 11, 2025</span>
|
||
|
||
</div>
|
||
</header>
|
||
<div class="post-content"><h1 id="welcome-to-my-blog">Welcome to My Blog!<a hidden class="anchor" aria-hidden="true" href="#welcome-to-my-blog">#</a></h1>
|
||
<p>I’m <strong>Demian</strong>, a <strong>Sysadmin</strong>, <strong>Email Infrastructure enthusiast</strong>, and a passionate <strong>Open Source contributor</strong>. This is where I’ll be sharing what I know about system administration, managing email infrastructure, and contributing to open source projects.</p>
|
||
<h2 id="what-to-expect">What to Expect<a hidden class="anchor" aria-hidden="true" href="#what-to-expect">#</a></h2>
|
||
<p>On this blog, I’ll be writing about:</p>
|
||
<ul>
|
||
<li><strong>Sysadmin tips and tools</strong>: Everything I’ve learned managing servers, networks, and infrastructure.</li>
|
||
<li><strong>Email Infrastructure</strong>: Best practices for setting up, securing, and managing email systems.</li>
|
||
<li><strong>Open Source</strong>: How I contribute to open source projects, and tips for getting started if you want to do the same.</li>
|
||
</ul>
|
||
<p>This blog is a space to share knowledge, troubleshoot common issues, and explore new tools and techniques. Whether you’re just getting into system administration, looking for email setup guides, or interested in contributing to open source, you’ll find something useful here.</p>
|
||
<h2 id="why-im-here">Why I’m Here<a hidden class="anchor" aria-hidden="true" href="#why-im-here">#</a></h2>
|
||
<p>I’ve been working in IT for a while now, and I’ve learned a lot by trial and error. Writing about my experiences helps me remember the lessons I’ve learned and hopefully helps others along the way. I believe in <strong>learning by doing</strong>, and this blog is just a reflection of that approach.</p>
|
||
<p>I’m excited to share what I’ve picked up, and I hope you’ll find these posts useful, whether you’re a fellow sysadmin or just someone interested in these topics.</p>
|
||
<hr>
|
||
<h2 id="lets-connect">Let’s Connect<a hidden class="anchor" aria-hidden="true" href="#lets-connect">#</a></h2>
|
||
<p>Feel free to reach out. Thanks for stopping by, and I look forward to sharing more soon!</p>
|
||
|
||
|
||
</div>
|
||
|
||
<footer class="post-footer">
|
||
<ul class="post-tags">
|
||
</ul>
|
||
</footer>
|
||
</article>
|
||
</main>
|
||
|
||
<footer class="footer">
|
||
<span>© 2025 <a href="//localhost:1313/">PyteDev Blog</a></span> ·
|
||
|
||
<span>
|
||
Powered by
|
||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||
<a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a>
|
||
</span>
|
||
</footer>
|
||
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
|
||
<path d="M12 6H0l6-6z" />
|
||
</svg>
|
||
</a>
|
||
|
||
<script>
|
||
let menu = document.getElementById('menu')
|
||
if (menu) {
|
||
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
|
||
menu.onscroll = function () {
|
||
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
|
||
}
|
||
}
|
||
|
||
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
||
anchor.addEventListener("click", function (e) {
|
||
e.preventDefault();
|
||
var id = this.getAttribute("href").substr(1);
|
||
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
|
||
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
|
||
behavior: "smooth"
|
||
});
|
||
} else {
|
||
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
|
||
}
|
||
if (id === "top") {
|
||
history.replaceState(null, null, " ");
|
||
} else {
|
||
history.pushState(null, null, `#${id}`);
|
||
}
|
||
});
|
||
});
|
||
|
||
</script>
|
||
<script>
|
||
var mybutton = document.getElementById("top-link");
|
||
window.onscroll = function () {
|
||
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
|
||
mybutton.style.visibility = "visible";
|
||
mybutton.style.opacity = "1";
|
||
} else {
|
||
mybutton.style.visibility = "hidden";
|
||
mybutton.style.opacity = "0";
|
||
}
|
||
};
|
||
|
||
</script>
|
||
<script>
|
||
document.getElementById("theme-toggle").addEventListener("click", () => {
|
||
if (document.body.className.includes("dark")) {
|
||
document.body.classList.remove('dark');
|
||
localStorage.setItem("pref-theme", 'light');
|
||
} else {
|
||
document.body.classList.add('dark');
|
||
localStorage.setItem("pref-theme", 'dark');
|
||
}
|
||
})
|
||
|
||
</script>
|
||
</body>
|
||
|
||
</html>
|