<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Posts on Marco Seguri</title><link>http://blog.seguri.dev/posts/</link><description>Recent content in Posts on Marco Seguri</description><generator>Hugo -- 0.154.2</generator><language>en-us</language><lastBuildDate>Thu, 02 Oct 2025 12:00:00 +0200</lastBuildDate><atom:link href="http://blog.seguri.dev/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Monitoring Proxmox with Prometheus and Grafana</title><link>http://blog.seguri.dev/posts/proxmox-prometheus-grafana/</link><pubDate>Thu, 02 Oct 2025 12:00:00 +0200</pubDate><guid>http://blog.seguri.dev/posts/proxmox-prometheus-grafana/</guid><description>&lt;p&gt;How to setup a nice dashboard like this for your Proxmox host?&lt;/p&gt;
&lt;p&gt;&lt;img alt="grafana" loading="lazy" src="http://blog.seguri.dev/posts/proxmox-prometheus-grafana/grafana.jpg"&gt;&lt;/p&gt;
&lt;p&gt;For this, we need the components listed down below (along with their IP addresses that I&amp;rsquo;ll use in this article). Everything can be easily installed through &lt;a href="https://community-scripts.github.io/ProxmoxVE/scripts"&gt;community script&lt;/a&gt;, but I&amp;rsquo;m expecting that nothing will work out of the box, so I&amp;rsquo;m documenting my journey here (SPOILER: it was almost flawless).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;proxmox: 192.168.1.10&lt;/li&gt;
&lt;li&gt;prometheus-pve-exporter: 192.168.1.11:9221&lt;/li&gt;
&lt;li&gt;prometheus: 192.168.1.12:9090&lt;/li&gt;
&lt;li&gt;grafana: 192.168.1.13:3000&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I started creating a container for the &lt;a href="https://community-scripts.github.io/ProxmoxVE/scripts?id=prometheus-pve-exporter"&gt;prometheus-pve-exporter&lt;/a&gt;.
After the installation I tried calling &lt;code&gt;http://192.168.1.11:9221/pve?target=192.168.1.10&lt;/code&gt; and got a 500 error.
The logs show it&amp;rsquo;s just an authentication error.
Let&amp;rsquo;s create a user on the proxmox host with only the necessary permissions to read the metrics:&lt;/p&gt;</description></item><item><title>From Legacy OSSRH to Central Portal</title><link>http://blog.seguri.dev/posts/from-legacy-ossrh-to-central-portal/</link><pubDate>Mon, 05 May 2025 16:02:10 +0200</pubDate><guid>http://blog.seguri.dev/posts/from-legacy-ossrh-to-central-portal/</guid><description>&lt;p&gt;Today I&amp;rsquo;ve decided to release a new version of &lt;a href="https://github.com/seguri/springpom"&gt;springpom&lt;/a&gt;.
Last time I published a version there was the old OSSRH, but now I have to migrate to the new Central Portal.&lt;/p&gt;
&lt;p&gt;This required:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;migrating from &lt;code&gt;nexus-staging-maven-plugin&lt;/code&gt; to &lt;code&gt;central-publishing-maven-plugin&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;migrating my &lt;code&gt;name.seguri.java&lt;/code&gt; namespace from legacy OSSRH to Central Portal&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For the first part, I&amp;rsquo;ve replaced:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;&amp;lt;build&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;plugins&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;plugin&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;org.sonatype.plugins&lt;span style="color:#f92672"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;nexus-staging-maven-plugin&lt;span style="color:#f92672"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;${dep.plugin.nexus.version}&lt;span style="color:#f92672"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;extensions&amp;gt;&lt;/span&gt;true&lt;span style="color:#f92672"&gt;&amp;lt;/extensions&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;configuration&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;serverId&amp;gt;&lt;/span&gt;ossrh&lt;span style="color:#f92672"&gt;&amp;lt;/serverId&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;nexusUrl&amp;gt;&lt;/span&gt;https://s01.oss.sonatype.org/&lt;span style="color:#f92672"&gt;&amp;lt;/nexusUrl&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;autoReleaseAfterClose&amp;gt;&lt;/span&gt;true&lt;span style="color:#f92672"&gt;&amp;lt;/autoReleaseAfterClose&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;/configuration&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;/plugin&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;/plugins&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;&amp;lt;/build&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;with:&lt;/p&gt;</description></item><item><title>Let jellyfin on proxmox stream a Synology folder</title><link>http://blog.seguri.dev/posts/proxmox-jellyfin-synology-nfs/</link><pubDate>Wed, 23 Apr 2025 18:08:42 +0200</pubDate><guid>http://blog.seguri.dev/posts/proxmox-jellyfin-synology-nfs/</guid><description>&lt;p&gt;This will be another post you&amp;rsquo;ll find on the subject, but getting this right seems to be quite hard.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://pve.proxmox.com/wiki/Unprivileged_LXC_containers#Using_local_directory_bind_mount_points"&gt;Here&amp;rsquo;s part of the official documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://forum.proxmox.com/threads/tutorial-unprivileged-lxcs-mount-cifs-shares.101795/"&gt;And people that found unofficial solutions&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What&amp;rsquo;s the initial context and the problem we want to solve?
You&amp;rsquo;ve installed proxmox on a home server and then many containers including jellyfin, and you have a Synology NAS full of content that you want jellyfin to stream.&lt;/p&gt;</description></item><item><title>Getting Started With Python Poetry</title><link>http://blog.seguri.dev/posts/getting-started-with-python-poetry/</link><pubDate>Mon, 27 Jan 2025 00:37:06 +0100</pubDate><guid>http://blog.seguri.dev/posts/getting-started-with-python-poetry/</guid><description>&lt;p&gt;I was trying to see if I could stream content from my laptop to my Android TV using &lt;a href="https://github.com/skorokithakis/catt"&gt;catt&lt;/a&gt;, so I decided to clone its repo.
I saw that the project was using &lt;a href="https://python-poetry.org/"&gt;Poetry&lt;/a&gt; for dependency management and I decided to give it a try.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve not directly installed Python on any of my Windows machines; I prefer to use JetBrains &lt;a href="https://www.jetbrains.com/pycharm/"&gt;PyCharm&lt;/a&gt; for Python development and let it manage my Python interpreters.
The first step is then to find out which Python interpreter is being used by PyCharm.
I opened one of my Python projects in PyCharm and started to add a new interpreter:&lt;/p&gt;</description></item><item><title>PowerShell Incognito Session</title><link>http://blog.seguri.dev/posts/powershell-incognito-session/</link><pubDate>Wed, 11 Dec 2024 19:17:08 +0100</pubDate><guid>http://blog.seguri.dev/posts/powershell-incognito-session/</guid><description>&lt;p&gt;Do you need to run a command in a new PowerShell session without leaving any trace, or without showing any previous commands when navigating the history with the arrow keys?
Open the Terminal, open the Settings menu, scroll down to the Profiles section, and click on the &amp;ldquo;Add profile&amp;rdquo; button.
Duplicate the PowerShell profile:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Duplicate the PowerShell profile" loading="lazy" src="http://blog.seguri.dev/posts/powershell-incognito-session/duplicate-profile.png"&gt;&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve called mine &amp;ldquo;PowerShell (Incognito)&amp;rdquo;. Then set the following in the &amp;ldquo;Command line&amp;rdquo; field:&lt;/p&gt;</description></item><item><title>Building the JohnnyDecimal PowerToys Run Plugin</title><link>http://blog.seguri.dev/posts/powertoys-run-johnnydecimal/</link><pubDate>Fri, 22 Nov 2024 18:26:09 +0100</pubDate><guid>http://blog.seguri.dev/posts/powertoys-run-johnnydecimal/</guid><description>&lt;p&gt;I started a few years ago to organize my digital stuff with the &lt;a href="https://johnnydecimal.com/"&gt;Johnny.Decimal&lt;/a&gt; system.
On macOS I had a custom Raycast script to quickly tap into my Johnny.Decimal folders; now that I&amp;rsquo;m on Windows, I want to replicate that functionality with &lt;a href="https://learn.microsoft.com/en-us/windows/powertoys/run"&gt;PowerToys Run&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="inspiration"&gt;Inspiration&lt;/h2&gt;
&lt;p&gt;There are some excellent resources to get started with PowerToys Run plugins:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://conductofcode.io/post/creating-custom-powertoys-run-plugins/"&gt;Tutorial by Henrik Lau Eriksson&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/microsoft/PowerToys/blob/main/doc/thirdPartyRunPlugins.md"&gt;Existing plugins&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/microsoft/PowerToys/blob/main/doc/devdocs/modules/launcher/new-plugin-checklist.md"&gt;New plugin checklist&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&amp;rsquo;ll document my journey here, with step-by-step commits in my &lt;a href="https://github.com/seguri/powertoys-run-johnnydecimal"&gt;repo&lt;/a&gt;.
When you see a link called &amp;ldquo;milestone&amp;rdquo;, you can check out how my code looked up to that point.
Let&amp;rsquo;s get started!&lt;/p&gt;</description></item><item><title>Hello World</title><link>http://blog.seguri.dev/posts/helloworld/</link><pubDate>Thu, 21 Nov 2024 21:00:00 +0100</pubDate><guid>http://blog.seguri.dev/posts/helloworld/</guid><description>&lt;p&gt;&lt;strong&gt;Welcome to my blog!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The first post will of course be about how I set up this blog.
I found &lt;a href="https://web.archive.org/https://theplaybook.dev/docs/deploy-hugo-to-github-pages/"&gt;this guide&lt;/a&gt; by David Hwang and decided to give it a try.&lt;/p&gt;
&lt;p&gt;I made very few changes to the first part of the guide:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I used &lt;code&gt;winget&lt;/code&gt; to install Hugo: &lt;code&gt;winget install Hugo.Hugo.Extended&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;I used the GitHub Workflow suggested by the &lt;a href="https://gohugo.io/hosting-and-deployment/hosting-on-github/"&gt;Hugo documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The second part about the custom domain is different because I&amp;rsquo;m using a subdomain rather than an apex domain. This is what I did:&lt;/p&gt;</description></item></channel></rss>