<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/atom.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Posts tagged: linux</title>
  <id>https://pype.dev/tags/linux/atom.xml</id>
  <updated>2025-07-11T11:00:54Z</updated>
  <subtitle>All posts with the tag &#34;linux&#34;</subtitle>
  <link href="https://pype.dev/tags/linux/" rel="alternate" type="text/html"></link>
  <link href="https://pype.dev/tags/linux/atom.xml" rel="self" type="application/atom+xml"></link>
  <author>
    <name>Nic Payne</name>
  </author>
  <generator uri="https://github.com/WaylonWalker/markata-go">markata-go</generator>
  <entry>
    <title>💭 Tyblog | systemd has been a complete, utter, unmitigated success</title>
    <id>https://pype.dev/thoughts-745/</id>
    <updated>2025-07-11T11:00:54Z</updated>
    <published>2025-07-11T11:00:54Z</published>
    <link href="https://pype.dev/thoughts-745/" rel="alternate" type="text/html"></link>
    <summary type="text">I found this post on systemd this morning, and although I&#39;ve been a Linux user for around 6 years now, there&#39;s some leve</summary>
    <content type="html">&lt;a href=&#34;https://blog.tjll.net/the-systemd-revolution-has-been-a-success/&#34;&gt;&#xA;    &lt;img&#xA;        src=&#34;https://shots.wayl.one/shot/?url=https://blog.tjll.net/the-systemd-revolution-has-been-a-success/&amp;height=450&amp;width=800&amp;scaled_width=800&amp;scaled_height=450&amp;selectors=&#34;&#xA;        alt=&#34;shot of post - Tyblog | systemd has been a complete, utter, unmitigated success&#34;&#xA;        height=450&#xA;        width=800&#xA;    &gt;&#xA;&lt;/a&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s my thought on &lt;a href=&#34;https://blog.tjll.net/the-systemd-revolution-has-been-a-success/&#34;&gt;Tyblog | systemd has been a complete, utter, unmitigated success&lt;/a&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;I found this post on systemd this morning, and although I&amp;rsquo;ve been a Linux user for around 6 years now, there&amp;rsquo;s some levels of it that are pretty foreign to me. One of the things I never got was the drama around systemd - but that&amp;rsquo;s because I wasn&amp;rsquo;t around in the beforefore times, I don&amp;rsquo;t use cron THAT MUCH, and I&amp;rsquo;ve only had to setup a few systemd unit files - not enough to generate a real opinion on it.&#xA;But lately I&amp;rsquo;m looking into more automation at home - and some stuff is fun to put into an overkill of a platform for a homelab, like temporal, but some stuff should probably be run in more hardened ways (backups for example) - so getting a little download this morning on systemd from a clearly seasoned Linux user is a nice addition to my hot cup of coffee.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This is one of [[ my-thoughts ]]. I picked this up from &lt;a href=&#34;https://waylonwalker.com&#34;&gt;Waylon Walker&lt;/a&gt;(&lt;a href=&#34;https://thoughts.waylonwalker.com&#34;&gt;https://thoughts.waylonwalker.com&lt;/a&gt;). It&amp;rsquo;s a short note that I make about someone else&amp;rsquo;s content online.  Learn more about the process &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;My thoughts are found at my thoughts feed&#34; data-date=&#34;2025-06-09&#34; data-preview=&#34;My thoughts are found at my thoughts feed&#34;&gt;Thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>💭 Self-Hosting A Cluster On Old Phones | Hackaday</title>
    <id>https://pype.dev/thoughts-735/</id>
    <updated>2025-07-06T11:30:17Z</updated>
    <published>2025-07-06T11:30:17Z</published>
    <link href="https://pype.dev/thoughts-735/" rel="alternate" type="text/html"></link>
    <summary type="text">Came across a blog and article on using a mobile OS to self-host a cluster on old phones... I happen to keep several old</summary>
    <content type="html">&lt;a href=&#34;https://hackaday.com/2025/04/09/self-hosting-a-cluster-on-old-phones/?ref=dailydev&#34;&gt;&#xA;    &lt;img&#xA;        src=&#34;https://shots.wayl.one/shot/?url=https://hackaday.com/2025/04/09/self-hosting-a-cluster-on-old-phones/?ref=dailydev&amp;height=450&amp;width=800&amp;scaled_width=800&amp;scaled_height=450&amp;selectors=&#34;&#xA;        alt=&#34;shot of post - Self-Hosting A Cluster On Old Phones | Hackaday&#34;&#xA;        height=450&#xA;        width=800&#xA;    &gt;&#xA;&lt;/a&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s my thought on &lt;a href=&#34;https://hackaday.com/2025/04/09/self-hosting-a-cluster-on-old-phones/?ref=dailydev&#34;&gt;Self-Hosting A Cluster On Old Phones | Hackaday&lt;/a&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;Came across a blog and article on using a mobile OS to self-host a cluster on old phones&amp;hellip; I happen to keep several old android phones lying around and although I&amp;rsquo;m not presently super interested in figuring out an android/arm based homelab, I am excited for the next coming years when I&amp;rsquo;m sure it&amp;rsquo;ll only get easier, phones will only be more powerful, and perhaps we&amp;rsquo;ll be running full blown CV pipeline in k8s clusters running on Pixel devices!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This is one of [[ my-thoughts ]]. I picked this up from &lt;a href=&#34;https://waylonwalker.com&#34;&gt;Waylon Walker&lt;/a&gt;(&lt;a href=&#34;https://thoughts.waylonwalker.com&#34;&gt;https://thoughts.waylonwalker.com&lt;/a&gt;). It&amp;rsquo;s a short note that I make about someone else&amp;rsquo;s content online.  Learn more about the process &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;My thoughts are found at my thoughts feed&#34; data-date=&#34;2025-06-09&#34; data-preview=&#34;My thoughts are found at my thoughts feed&#34;&gt;Thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>💭 Linux Explained: What is The Linux Kernel? - YouTube</title>
    <id>https://pype.dev/thoughts-670/</id>
    <updated>2025-06-07T11:28:18Z</updated>
    <published>2025-06-07T11:28:18Z</published>
    <link href="https://pype.dev/thoughts-670/" rel="alternate" type="text/html"></link>
    <summary type="text">I&#39;m getting sucked into the Linux is a kernel not an operating system crowd because tonight I realized I couldn&#39;t descri</summary>
    <content type="html">&lt;a href=&#34;https://www.youtube.com/watch?si=CFRBAdjtI0x7Pmj7&amp;v=pJ607nDnyE0&amp;feature=youtu.be&#34;&gt;&#xA;    &lt;img&#xA;        src=&#34;https://shots.wayl.one/shot/?url=https://www.youtube.com/watch?si=CFRBAdjtI0x7Pmj7&amp;v=pJ607nDnyE0&amp;feature=youtu.be&amp;height=450&amp;width=800&amp;scaled_width=800&amp;scaled_height=450&amp;selectors=&#34;&#xA;        alt=&#34;shot of post - Linux Explained: What is The Linux Kernel? - YouTube&#34;&#xA;        height=450&#xA;        width=800&#xA;    &gt;&#xA;&lt;/a&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s my thought on &lt;a href=&#34;https://www.youtube.com/watch?si=CFRBAdjtI0x7Pmj7&amp;v=pJ607nDnyE0&amp;feature=youtu.be&#34;&gt;Linux Explained: What is The Linux Kernel? - YouTube&lt;/a&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;I&amp;rsquo;m getting sucked into the Linux is a kernel not an operating system crowd because tonight I realized I couldn&amp;rsquo;t describe what a kernel is so I YouTubeda few things and before you know it you joined a decades old war before finishing loading the dishwasher&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This is one of [[ my-thoughts ]]. I picked this up from &lt;a href=&#34;https://waylonwalker.com&#34;&gt;Waylon Walker&lt;/a&gt;(&lt;a href=&#34;https://thoughts.waylonwalker.com&#34;&gt;https://thoughts.waylonwalker.com&lt;/a&gt;). It&amp;rsquo;s a short note that I make about someone else&amp;rsquo;s content online.  Learn more about the process &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;My thoughts are found at my thoughts feed&#34; data-date=&#34;2025-06-09&#34; data-preview=&#34;My thoughts are found at my thoughts feed&#34;&gt;Thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>I was wrecked by a weird combo of » and -e</title>
    <id>https://pype.dev/i-was-wrecked-by-a-weird-combo-of-and-e/</id>
    <updated>2025-04-23T08:44:59Z</updated>
    <published>2025-04-23T08:44:59Z</published>
    <link href="https://pype.dev/i-was-wrecked-by-a-weird-combo-of-and-e/" rel="alternate" type="text/html"></link>
    <summary type="text">If state matters then check it in the beginning or handle it on a failure... Let me explain</summary>
    <content type="html">&lt;h2 id=&#34;tl-dr&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;TL;DR&lt;/span&gt; &lt;a href=&#34;#tl-dr&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;If state matters then check it in the beginning or handle it on a failure&amp;hellip; Let me explain&lt;/p&gt;&#xA;&lt;p&gt;I ran into some trouble recently &lt;em&gt;almost&lt;/em&gt; losing some encrypted data&amp;hellip; Now&#xA;this would be the second time I&amp;rsquo;ve had that happen, so I&amp;rsquo;m going to write a&#xA;little bit about it now that I figured it out&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-stage&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;The Stage&lt;/span&gt; &lt;a href=&#34;#the-stage&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s the scenario - I use &lt;code&gt;ansible-vault&lt;/code&gt; to keep some sensitive data in a&#xA;few public repos, and I keep the keys I use in Bitwarden Secrets Manager.&lt;/p&gt;&#xA;&lt;p&gt;I use &lt;code&gt;just&lt;/code&gt; as a command runner and have common &lt;code&gt;just encrypt&lt;/code&gt; and &lt;code&gt;just decrypt&lt;/code&gt; recipes throughout many justfiles. It might look something like this&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;get-vault-key:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    bws secret get &lt;span class=&#34;nv&#34;&gt;$HOMELAB_BOT_VAULT_KEY_ID&lt;/span&gt;  &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; jq -r &lt;span class=&#34;s1&#34;&gt;&amp;#39;.value&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;encrypt:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;#!/bin/bash&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; +e&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    just get-vault-key &amp;gt; key&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ansible-vault encrypt ./secret-file --vault-password-file key&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ansible-vault encrypt ./secret-file2 --vault-password-file key&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    rm key&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;decrypt:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;#!/bin/bash&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; +e&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    just get-vault-key &amp;gt; key&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ansible-vault decrypt ./secret-file --vault-password-file key&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ansible-vault decrypt ./secret-file2 --vault-password-file key&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    rm key&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;spoiler&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Spoiler&lt;/span&gt; &lt;a href=&#34;#spoiler&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Above is a good example of the 2 recipes, but prior to this morning they looked like this&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;get-vault-key:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    bws secret get &lt;span class=&#34;nv&#34;&gt;$HOMELAB_BOT_VAULT_KEY_ID&lt;/span&gt;  &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; jq -r &lt;span class=&#34;s1&#34;&gt;&amp;#39;.value&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# BAD EXAMPLES! DO NOT DO THIS&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;encrypt:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; -e&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    just get-vault-key &amp;gt;&amp;gt; key&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ansible-vault encrypt ./secret-file --vault-password-file key&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ansible-vault encrypt ./secret-file2 --vault-password-file key&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    rm key&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;decrypt:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; -e&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    just get-vault-key &amp;gt;&amp;gt; key&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ansible-vault decrypt ./secret-file --vault-password-file key&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ansible-vault decrypt ./secret-file2 --vault-password-file key&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    rm key&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;problem&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Problem&lt;/span&gt; &lt;a href=&#34;#problem&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;So here&amp;rsquo;s the story - in real life I started using distrobox when I ran into&#xA;this and I thought it was an issue with different versions of ansible installed&#xA;in distrobox and on my desktop. After a few more odd deployment workflows I&#xA;think I&amp;rsquo;ve determined that the real problem is that &lt;code&gt;&amp;gt;&amp;gt;&lt;/code&gt; appends to a file (see&#xA;the issue yet?), but if my recipes fail (say I try to encrypt an already&#xA;encrypted file) then the command exits but what&amp;rsquo;s left on my disk? &lt;code&gt;key&lt;/code&gt; is&#xA;still there&amp;hellip; and the next time I go to run a command I&amp;rsquo;ll echo the real key&#xA;to the &lt;code&gt;key&lt;/code&gt; file again and if I called &lt;code&gt;encrypt&lt;/code&gt; when the first or more files&#xA;in the list were &lt;code&gt;decrypted&lt;/code&gt; then they&amp;rsquo;ll be encrypted not with my key, but&#xA;with my key repeated as many times as I ran a command with &lt;code&gt;just get-vault-key &amp;gt;&amp;gt; key&lt;/code&gt;&#xA;before ever removing the key file!&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nic in pype.dev   main   ×2  ×3  ×7 via   v3.11.10&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pype-dev&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;   &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;dev&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; 󰒄 &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;❯ cat secret-file&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Danger, Will Robinson&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nic in pype.dev   main   ×2  ×3  ×7 via   v3.11.10&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pype-dev&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;   &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;dev&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; 󰒄 &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;❯ just encrypt&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bws secret get &lt;span class=&#34;nv&#34;&gt;$HOMELAB_BOT_VAULT_KEY_ID&lt;/span&gt;  &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; jq -r &lt;span class=&#34;s1&#34;&gt;&amp;#39;.value&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Encryption successful&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nic in pype.dev   main   ×2  ×3  ×7 via   v3.11.10&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pype-dev&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;   &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;dev&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; 󰒄 &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;❯ cat secret-file&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$ANSIBLE_VAULT&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;1.1&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;AES256&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;m&#34;&gt;39616332393662346639633030633766666336323939346138633238626239363733316431333737&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;6463663763366434376437303335643431663431326135300a636261663636336139323033316232&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;m&#34;&gt;37666439383131393631333332353731633661396431633834326432363936613331623135666565&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;6364363039663933620a326563323931643632323031396664646363613636613562366166386439&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;m&#34;&gt;63653661653037393538356461323239396630643338393231306163343964623866&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nic in pype.dev   main   ×2  ×3  ×7 via   v3.11.10&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pype-dev&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;   &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;dev&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; 󰒄 &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;❯ just decrypt&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bws secret get &lt;span class=&#34;nv&#34;&gt;$HOMELAB_BOT_VAULT_KEY_ID&lt;/span&gt;  &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; jq -r &lt;span class=&#34;s1&#34;&gt;&amp;#39;.value&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Decryption successful&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nic in pype.dev   main   ×2  ×3  ×7 via   v3.11.10&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pype-dev&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;   &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;dev&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; 󰒄 &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;❯ cat secret-file&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Danger, Will Robinson&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;So as you can see, I have &lt;code&gt;secret-file&lt;/code&gt; here, and I can encrypt and decrypt&#xA;just fine. But if I have that &lt;code&gt;&amp;gt;&amp;gt;&lt;/code&gt; in the recipe, add a second file, and a&#xA;failure in a command - well then I&amp;rsquo;ll start getting confused&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;Follow along with the workflow of adding a file that I&amp;rsquo;ll need encrypted&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Only secret-file is in the just recipe here - I add secret-file2 after&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nic in pype.dev   main   ×2  ×3  ×7 via   v3.11.10&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pype-dev&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;   &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;dev&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; 󰒄 &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;❯ just decrypt&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bws secret get &lt;span class=&#34;nv&#34;&gt;$HOMELAB_BOT_VAULT_KEY_ID&lt;/span&gt;  &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; jq -r &lt;span class=&#34;s1&#34;&gt;&amp;#39;.value&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ERROR! input is not vault encrypted data. /var/home/nic/projects/personal/pype.dev/secret-file is not a vault encrypted file &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; /var/home/nic/projects/personal/pype.dev/secret-file&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;error: Recipe &lt;span class=&#34;sb&#34;&gt;`&lt;/span&gt;decrypt&lt;span class=&#34;sb&#34;&gt;`&lt;/span&gt; failed with &lt;span class=&#34;nb&#34;&gt;exit&lt;/span&gt; code &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nic in pype.dev   main   ×2  ×3  ×8 via   v3.11.10&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pype-dev&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;   &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;dev&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; 󰒄 &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;✗ &lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Good - secret-file is already decrypted! So lets add another file&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Good - secret-file is already decrypted! So lets add another file&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nic in pype.dev   main   ×2  ×3  ×7 via   v3.11.10&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pype-dev&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;   &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;dev&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; 󰒄 &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;❯ &lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Foo Bar Bam Baz&amp;#34;&lt;/span&gt; &amp;gt; secret-file2                                    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nic in pype.dev   main   ×2  ×3  ×8 via   v3.11.10&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pype-dev&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;   &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;dev&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; 󰒄 &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;❯ &lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Added secret-file2 to my Just recipes&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Added secret-file2 to my Just recipes&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nic in pype.dev   main   ×2  ×3  ×8 via   v3.11.10&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pype-dev&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;   &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;dev&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; 󰒄 &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;❯ just encrypt&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bws secret get &lt;span class=&#34;nv&#34;&gt;$HOMELAB_BOT_VAULT_KEY_ID&lt;/span&gt;  &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; jq -r &lt;span class=&#34;s1&#34;&gt;&amp;#39;.value&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Encryption successful&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Encryption successful&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nic in pype.dev   main   ×2  ×3  ×7 via   v3.11.10&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pype-dev&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;   &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;dev&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; 󰒄 &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;❯ just decrypt&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bws secret get &lt;span class=&#34;nv&#34;&gt;$HOMELAB_BOT_VAULT_KEY_ID&lt;/span&gt;  &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; jq -r &lt;span class=&#34;s1&#34;&gt;&amp;#39;.value&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ERROR! Decryption failed &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;no vault secrets were found that could decrypt&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; on /var/home/nic/projects/personal/pype.dev/secret-file &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; /var/home/nic/projects/personal/pype.dev/secret-file&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;error: Recipe &lt;span class=&#34;sb&#34;&gt;`&lt;/span&gt;decrypt&lt;span class=&#34;sb&#34;&gt;`&lt;/span&gt; failed with &lt;span class=&#34;nb&#34;&gt;exit&lt;/span&gt; code &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nic in pype.dev   main   ×2  ×3  ×8 via   v3.11.10&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pype-dev&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;   &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;dev&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; 󰒄 &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;✗ &lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Oh no!&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;So what happened?&lt;/p&gt;&#xA;&lt;p&gt;Recall that my recipes originally had &lt;code&gt;set -e&lt;/code&gt; at the top and used &lt;code&gt;&amp;gt;&amp;gt;&lt;/code&gt; to cat&#xA;my secret to a file &lt;code&gt;key&lt;/code&gt;. Well, when the fir| decryption recipe failed the&#xA;&lt;code&gt;key&lt;/code&gt; file was left behind. Then when I went to encrypt both of my files the&#xA;recipe got the key again and made a keyfile like this:&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;secretKey&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;secretKey&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The encryption recipe encrypted the files with this key, removed the key file,&#xA;and then the next decryption recipe failed because when it got the key and made&#xA;the file it looked like&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;secretKey&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;So the solution in the end is to remake the &lt;code&gt;key&lt;/code&gt; file every time (&lt;code&gt;&amp;gt;&lt;/code&gt; instead&#xA;of &lt;code&gt;&amp;gt;&amp;gt;&lt;/code&gt;), or check if it exists, or handle the error when the recipe fails, or&#xA;just keep going (&lt;code&gt;set +e&lt;/code&gt;)&lt;/p&gt;&#xA;&lt;h2 id=&#34;fin&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Fin&lt;/span&gt; &lt;a href=&#34;#fin&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;And that&amp;rsquo;s how I lost some secrets in my homelab once, and how I almost lost a&#xA;second time if I hadn&amp;rsquo;t noticed the &lt;code&gt;key&lt;/code&gt; file in my file tree&lt;/p&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>SMB with ZFS on Ubuntu</title>
    <id>https://pype.dev/smb-with-zfs-on-ubuntu/</id>
    <updated>2025-02-20T09:18:35Z</updated>
    <published>2025-02-20T09:18:35Z</published>
    <link href="https://pype.dev/smb-with-zfs-on-ubuntu/" rel="alternate" type="text/html"></link>
    <summary type="text">sudo apt-get install -y samba \\ then set sharesmb=on \\ chown the user \\ smbpasswd -a \\ then mount with user/password from other machine</summary>
    <content type="html">&lt;p&gt;sudo apt-get install -y samba \ then set sharesmb=on \ chown the user \ smbpasswd &lt;user&gt; -a \ then mount with user/password from other machine&lt;/p&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Jellyfin container updates for HWE + AMD</title>
    <id>https://pype.dev/jellyfin-container-updates-for-hwe-amd/</id>
    <updated>2024-12-14T11:27:15Z</updated>
    <published>2024-12-14T11:27:15Z</published>
    <link href="https://pype.dev/jellyfin-container-updates-for-hwe-amd/" rel="alternate" type="text/html"></link>
    <summary type="text">I use LSIO Jelyfin container for the easy addon they provide for AMD GPUs but I couldn&#39;t get trickplay to work with HWE...</summary>
    <content type="html">&lt;p&gt;I use LSIO Jelyfin container for the easy addon they provide for AMD GPUs but I couldn&amp;rsquo;t get trickplay to work with HWE&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;There was almost NOTHING on the internet about the error, and all the threads were about BSD systems&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;Thankfully someone posted &lt;a href=&#34;https://forum.jellyfin.org/t-jellyfin-amd-docker&#34;&gt;on the formum here&lt;/a&gt; but the only answer was to literally upgrade stuff in the container&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;Someday maybe I&amp;rsquo;ll build off of LSIO to add this, but until then I shell&amp;rsquo;d in and homelab&amp;rsquo;d the hell out of it&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;THIS IS INSIDE THE CONTAINER - I use Portianer to make it easy&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;pre&gt;&lt;code&gt;&#xA;apt update &amp;amp;&amp;amp; apt install -y curl gpg&#xA;&#xA;mkdir -p /etc/apt/keyrings&#xA;&#xA;curl -fsSL https://repo.radeon.com/rocm/rocm.gpg.key | gpg --dearmor -o /etc/apt/keyrings/rocm.gpg&#xA;&#xA;cat &amp;lt;&amp;lt;EOF | tee /etc/apt/sources.list.d/rocm.sources&#xA;&#xA;Types: deb&#xA;&#xA;URIs: https://repo.radeon.com/rocm/apt/latest&#xA;&#xA;Suites: ubuntu&#xA;&#xA;Components: main&#xA;&#xA;Architectures: amd64&#xA;&#xA;Signed-By: /etc/apt/keyrings/rocm.gpg&#xA;&#xA;EOF&#xA;&#xA;apt update &amp;amp;&amp;amp; apt install -y rocm-opencl-runtime&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>rsync like a pro</title>
    <id>https://pype.dev/rsync-like-a-pro/</id>
    <updated>2024-12-11T10:52:23Z</updated>
    <published>2024-12-11T10:52:23Z</published>
    <link href="https://pype.dev/rsync-like-a-pro/" rel="alternate" type="text/html"></link>
    <summary type="text">I am moving a hefty amount of data to a new ZFS pool due to some corruption and I want to avoid using for this just to make sure I don&#39;t propagate any...</summary>
    <content type="html">&lt;p&gt;I am moving a hefty amount of data to a new ZFS pool due to some corruption and I want to avoid using &lt;code&gt;zfs send/recv&lt;/code&gt; for this just to make sure I don&amp;rsquo;t propagate any corrupted data to my new pool.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve used &lt;code&gt;rsync&lt;/code&gt; for simple things before but I needed this to be a little smarter and I wanted to see simple progress without flooding my terminal with a billion filenames.&lt;/p&gt;&#xA;&lt;h2 id=&#34;tldr&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;TLDR&lt;/span&gt; &lt;a href=&#34;#tldr&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;TLDR:&#xA;&lt;code&gt;rsync -aHAX --chmod=Da+s --info=progress2 --inplace --exclude=&#39;encrypted/docker/frigate-media&#39; /tank/ /harbor/&lt;/code&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;explanation&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Explanation&lt;/span&gt; &lt;a href=&#34;#explanation&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;-aHAX: Preserves attributes (archive mode, hard links, ACLs, extended attributes).&#xA;&amp;ndash;chmod=Da+s: Ensures the setgid bit is applied to directories.&#xA;&amp;ndash;info=progress2: Provides detailed progress information, including overall data transfer stats.&#xA;&amp;ndash;inplace: Writes directly to the destination file, avoiding temporary files (useful for large files).&#xA;&amp;ndash;exclude=&amp;lsquo;encrypted/&lt;a href=&#34;/docker/&#34; class=&#34;glossary-term&#34; title=&#34;docker - container runtime&#34; data-hover-title=&#34;docker&#34;&gt;docker&lt;/a&gt;/frigate-media&amp;rsquo;: Excludes the specified path (relative to the /tank root).&#xA;/tank/ /harbor/: Ensures the contents of /tank are copied directly into /harbor.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>D and uninterruptable sleep</title>
    <id>https://pype.dev/d-and-uninterruptable-sleep/</id>
    <updated>2024-12-11T10:48:10Z</updated>
    <published>2024-12-11T10:48:10Z</published>
    <link href="https://pype.dev/d-and-uninterruptable-sleep/" rel="alternate" type="text/html"></link>
    <summary type="text">I recently have been having significant home server issues, and that&#39;s not the point of this - today I learned what state is when looking at htop.</summary>
    <content type="html">&lt;h2 id=&#34;htop&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Htop&lt;/span&gt; &lt;a href=&#34;#htop&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I recently have been having significant home server issues, and that&amp;rsquo;s not the point of this - today I learned what &lt;code&gt;D&lt;/code&gt; state is when looking at htop.&lt;/p&gt;&#xA;&lt;img src=&#34;https://cdn.statically.io/gh/pypeaday/images.pype.dev/main/blog-media/d-htop.png&#34; alt=&#34;htop-d&#34; title=&#34;htop with D state&#34; /&gt;&#xA;&lt;p&gt;Apparently this means &amp;ldquo;uninterruptable sleep&amp;rdquo; and it&amp;rsquo;s a dev&amp;rsquo;s nightmare&amp;hellip;&lt;/p&gt;&#xA;&lt;h3 id=&#34;context&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Context&lt;/span&gt; &lt;a href=&#34;#context&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;The issue I was having was that some &lt;code&gt;zfs rollback&lt;/code&gt; commands were hung - for hours&amp;hellip; I wasn&amp;rsquo;t sure what was going on, rollbacks should be instant but I figured it was just an artifact of these issues.&lt;/p&gt;&#xA;&lt;p&gt;Turns out I still don&amp;rsquo;t know what locked the disks up but I learned why &lt;code&gt;&amp;lt;C&amp;gt;-c&lt;/code&gt; did &lt;strong&gt;nothing&lt;/strong&gt;&amp;hellip;&#xA;the more you know&lt;/p&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>hostnamectl to easily change hostname</title>
    <id>https://pype.dev/hostnamectl-to-easily-change-hostname/</id>
    <updated>2024-12-06T07:25:59Z</updated>
    <published>2024-12-06T07:25:59Z</published>
    <link href="https://pype.dev/hostnamectl-to-easily-change-hostname/" rel="alternate" type="text/html"></link>
    <summary type="text">hostnamectl is apparently a linux utility for easily changing your hostname in a variety of ways</summary>
    <content type="html">&lt;p&gt;hostnamectl is apparently a linux utility for easily changing your hostname in a variety of ways&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;❯ hostnamectl --help&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hostnamectl &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;OPTIONS...&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; COMMAND ...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Query or change system hostname.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Commands:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  status                 Show current hostname settings&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  hostname &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;NAME&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;        Get/set system hostname&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  icon-name &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;NAME&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;       Get/set icon name &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; host&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  chassis &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;NAME&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;         Get/set chassis &lt;span class=&#34;nb&#34;&gt;type&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; host&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  deployment &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;NAME&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;      Get/set deployment environment &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; host&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  location &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;NAME&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;        Get/set location &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; host&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Options:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -h --help              Show this &lt;span class=&#34;nb&#34;&gt;help&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     --version           Show package version&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     --no-ask-password   Do not prompt &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; password&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -H --host&lt;span class=&#34;o&#34;&gt;=[&lt;/span&gt;USER@&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;HOST  Operate on remote host&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -M --machine&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;CONTAINER Operate on &lt;span class=&#34;nb&#34;&gt;local&lt;/span&gt; container&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     --transient         Only &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; transient hostname&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     --static            Only &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; static hostname&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     --pretty            Only &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; pretty hostname&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     --json&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;pretty&lt;span class=&#34;p&#34;&gt;|&lt;/span&gt;short&lt;span class=&#34;p&#34;&gt;|&lt;/span&gt;off&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                         Generate JSON output&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;See the hostnamectl&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;1&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; man page &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; details.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I learned there&amp;rsquo;s transient and static hostnames, so that&amp;rsquo;s cool&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;The thing I needed was &lt;code&gt;hostnamectl --static hostname babyblue-aurora&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;pretty sweet tool&lt;/p&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>DNS Broke After Reboot - Ubuntu 22.04</title>
    <id>https://pype.dev/dns-broke-after-reboot-ubuntu-22-04/</id>
    <updated>2024-11-22T08:08:40Z</updated>
    <published>2024-11-22T08:08:40Z</published>
    <link href="https://pype.dev/dns-broke-after-reboot-ubuntu-22-04/" rel="alternate" type="text/html"></link>
    <summary type="text">I rebooted by server and DNS broke randomly. I have no idea if it was from a kernel update or what but that&#39;s the issue with Ubuntu I guess...</summary>
    <content type="html">&lt;p&gt;I rebooted by server and DNS broke randomly. I have no idea if it was from a kernel update or what but that&amp;rsquo;s the issue with Ubuntu I guess&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;After much toil and none of the other options working for me (sorry to not have those documented here) this is what got me the vic from this &lt;a href=&#34;https://askubuntu.com/questions/1406827/how-to-set-dns-on-ubuntu-22-04-when-you-have-no-netplan-config&#34;&gt;SO Post&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;sudo mkdir /etc/systemd/resolved.conf.d/&#xA;sudo $EDITOR /etc/systemd/resolved.conf.d/dns_servers.conf&lt;/p&gt;&#xA;&lt;p&gt;Most folks probably are good with google (8.8.8.8) and cloudflare (1.1.1.1)&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;[Resolve]&#xA;DNS=8.8.8.8 1.1.1.1&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;But I decided to use tailscale&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;[Resolve]&#xA;DNS=100.100.100.100&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Then restart systemd-resolved&lt;/p&gt;&#xA;&lt;p&gt;sudo systemctl restart systemd-resolved&lt;/p&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Restart KDE Plasma</title>
    <id>https://pype.dev/restart-kde-plasma/</id>
    <updated>2024-11-08T15:53:52Z</updated>
    <published>2024-11-08T15:53:52Z</published>
    <link href="https://pype.dev/restart-kde-plasma/" rel="alternate" type="text/html"></link>
    <summary type="text">Plasma shits the bed a little too often on Fedora for me right now but I finally have a quick fix...</summary>
    <content type="html">&lt;p&gt;Plasma shits the bed a little too often on Fedora for me right now but I finally have a quick fix&amp;hellip;&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;&#xA;sudo killall plasmashell&#xA;&#xA;kstart plasmashell&#xA;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>docker-remote-add</title>
    <id>https://pype.dev/docker-remote-add/</id>
    <updated>2024-09-17T06:19:00Z</updated>
    <published>2024-09-17T06:19:00Z</published>
    <link href="https://pype.dev/docker-remote-add/" rel="alternate" type="text/html"></link>
    <summary type="text">Add from url??</summary>
    <content type="html">&lt;p&gt;Add from url??&lt;/p&gt;&#xA;&lt;p&gt;ADD &lt;a href=&#34;http://example.com/cars.csv&#34;&gt;http://example.com/cars.csv&lt;/a&gt; /tmp/cars.csv&lt;/p&gt;&#xA;&lt;p&gt;Unpack automatically!? (.tar, .tar.gz, .tgz, .bz2, .tbz2, .txz, .zip)&lt;/p&gt;&#xA;&lt;p&gt;ADD myapp.tar.gz /opt/myapp/&lt;/p&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Docker copy and chown</title>
    <id>https://pype.dev/docker-copy-and-chown/</id>
    <updated>2024-09-17T06:18:09Z</updated>
    <published>2024-09-17T06:18:09Z</published>
    <link href="https://pype.dev/docker-copy-and-chown/" rel="alternate" type="text/html"></link>
    <summary type="text">COPY --chown=myuser:mygroup source-file target-file</summary>
    <content type="html">&lt;p&gt;COPY &amp;ndash;chown=myuser:mygroup source-file target-file&lt;/p&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Interesting IPs between Jellyfin clients and server depending on tailscale and server address</title>
    <id>https://pype.dev/interesting-ips-between-jellyfin-clients-and-server-depending-on-tailscale-and-server-address/</id>
    <updated>2024-07-12T06:24:57Z</updated>
    <published>2024-07-12T06:24:57Z</published>
    <link href="https://pype.dev/interesting-ips-between-jellyfin-clients-and-server-depending-on-tailscale-and-server-address/" rel="alternate" type="text/html"></link>
    <summary type="text">When connecting from my phone to jellyfin I&#39;m seeing some interesting patterns.</summary>
    <content type="html">&lt;p&gt;When connecting from my phone to jellyfin I&amp;rsquo;m seeing some interesting patterns.&lt;/p&gt;&#xA;&lt;h2 id=&#34;scenarios&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Scenarios&lt;/span&gt; &lt;a href=&#34;#scenarios&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;tailscale-ip-of-phone-is-listed-as-local-network-to-jellyfin&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Tailscale IP of phone is listed as local network to jellyfin&lt;/span&gt; &lt;a href=&#34;#tailscale-ip-of-phone-is-listed-as-local-network-to-jellyfin&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;Wifi: off&#xA;Tailscale: on&#xA;Use exit node: on&#xA;LAN access: on&#xA;Jellyfin: LAN IP&lt;/p&gt;&#xA;&lt;p&gt;Jellyfin sees 192.168.1.1, my router address&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;Wifi: off&#xA;tailscale: on&#xA;Use exit node: on&#xA;LAN access: on&#xA;Jellyfin: Tailscale magic DNS&lt;/p&gt;&#xA;&lt;p&gt;Jellyfin sees the &lt;a href=&#34;/docker/&#34; class=&#34;glossary-term&#34; title=&#34;docker - container runtime&#34; data-hover-title=&#34;docker&#34;&gt;docker&lt;/a&gt; bridge network&lt;/p&gt;&#xA;&lt;p&gt;Q: This might be because of traefik somehow&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;Wifi: off&#xA;tailsacale: on&#xA;Use exit node: on&#xA;LAN access: off&#xA;Jellyfin: LAN IP&lt;/p&gt;&#xA;&lt;p&gt;Jellyfin sees the 192.168.1.1&lt;/p&gt;&#xA;&lt;p&gt;Q: Why did this work even work?&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;Wifi: off&#xA;tailsacale: on&#xA;Use exit node: on&#xA;LAN access: off&#xA;Jellyfin: Tailscale magic DNS&lt;/p&gt;&#xA;&lt;p&gt;Jellyfin sees the docker bridge network&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;Wifi: off&#xA;tailsacale: on&#xA;Use exit node: off&#xA;LAN access: off&#xA;Jellyfin: LAN IP&lt;/p&gt;&#xA;&lt;p&gt;Jellyfin sees the 192.168.1.1&lt;/p&gt;&#xA;&lt;p&gt;Q: Why did this work?&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;Wifi: off&#xA;tailsacale: on&#xA;Use exit node: off&#xA;LAN access: off&#xA;Jellyfin: Tailscale magic DNS&lt;/p&gt;&#xA;&lt;p&gt;Jellyfin sees the docker bridge network&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;Wifi: on&#xA;tailsacale: of&#xA;Use exit node: off&#xA;LAN access: off&#xA;Jellyfin: LAN IP (via pihole DNS)&lt;/p&gt;&#xA;&lt;p&gt;Jellyfin sees the IP of my phone&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Upgrading your kernel can F you up… whoops</title>
    <id>https://pype.dev/upgrading-your-kernel-can-f-you-up-whoops/</id>
    <updated>2024-06-26T10:21:59Z</updated>
    <published>2024-06-26T10:21:59Z</published>
    <link href="https://pype.dev/upgrading-your-kernel-can-f-you-up-whoops/" rel="alternate" type="text/html"></link>
    <summary type="text">https://forum.proxmox.com/threads/update-error-with-coral-tpu-drivers.136888/#post-608975 I lost TPU for frigate, this saved me ass</summary>
    <content type="html">&lt;p&gt;&lt;a href=&#34;https://forum.proxmox.com/threads/update-error-with-coral-tpu-drivers.136888/#post-608975&#34;&gt;https://forum.proxmox.com/threads/update-error-with-coral-tpu-drivers.136888/#post-608975&lt;/a&gt; I lost TPU for frigate, this saved me ass&lt;/p&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>DHCP Restart to Save Ubuntu 22.04 Server Networking</title>
    <id>https://pype.dev/dhcp-restart-to-save-ubuntu-22-04-server-networking/</id>
    <updated>2023-12-31T20:26:50Z</updated>
    <published>2023-12-31T20:26:50Z</published>
    <link href="https://pype.dev/dhcp-restart-to-save-ubuntu-22-04-server-networking/" rel="alternate" type="text/html"></link>
    <summary type="text">I moved a computer to a remote location for an off-site backup but when it was powered on it wouldn&#39;t show up on any networks. A solution that got me back in...</summary>
    <content type="html">&lt;p&gt;I moved a computer to a remote location for an off-site backup but when it was powered on it wouldn&amp;rsquo;t show up on any networks. A solution that got me back in was a friend restarting the dhcp client for me:&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo dhclient -r -v &amp;lt;interface&amp;gt; &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo dhclient -v &amp;lt;interface&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Refresh Nextcloud Groupfolders after messing around on the filesystem</title>
    <id>https://pype.dev/refresh-nextcloud-groupfolders-after-messing-around-on-the-filesystem/</id>
    <updated>2023-09-23T12:45:06Z</updated>
    <published>2023-09-23T12:45:06Z</published>
    <link href="https://pype.dev/refresh-nextcloud-groupfolders-after-messing-around-on-the-filesystem/" rel="alternate" type="text/html"></link>
    <summary type="text">Exec in as www-data and run ./occ groupfolders:scan folder_id -v (the -v to see what it&#39;s doing)</summary>
    <content type="html">&lt;p&gt;Exec in as www-data and run ./occ groupfolders:scan folder_id -v (the -v to see what it&amp;rsquo;s doing)&lt;/p&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Convert Word Doc to PDF with Headless Libreoffice</title>
    <id>https://pype.dev/convert-word-doc-to-pdf-with-headless-libreoffice/</id>
    <updated>2023-03-09T06:48:38Z</updated>
    <published>2023-03-09T06:48:38Z</published>
    <link href="https://pype.dev/convert-word-doc-to-pdf-with-headless-libreoffice/" rel="alternate" type="text/html"></link>
    <summary type="text">I&#39;ve been using paperless-ngx to manage all my documents, but every once in a while I&#39;ll get a file to deal with...</summary>
    <content type="html">&lt;p&gt;I&amp;rsquo;ve been using paperless-ngx to manage all my documents, but every once in a while I&amp;rsquo;ll get a &lt;code&gt;.docx&lt;/code&gt; file to deal with&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;Turns out Libreoffice has a headless mode a &lt;code&gt;pdf&lt;/code&gt; converter built-in!&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;libreoffice --headless --convert-to pdf /path/to/file.docx --outdir /path/to/output/directory&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;&#xA;&lt;p&gt;Note that &lt;code&gt;--outdir&lt;/code&gt; is in fact a directory, not the path to a file&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>i3-Like keyboard mapping in Pop_OS</title>
    <id>https://pype.dev/i3-like-keyboard-mapping-in-pop-os/</id>
    <updated>2023-01-12T05:51:25Z</updated>
    <published>2023-01-12T05:51:25Z</published>
    <link href="https://pype.dev/i3-like-keyboard-mapping-in-pop-os/" rel="alternate" type="text/html"></link>
    <summary type="text">I was introduced to tiling window managers through i3, which I use heavily on one of my machines. I have switched to Pop_OS! at home though, which has a...</summary>
    <content type="html">&lt;p&gt;I was introduced to tiling window managers through i3, which I use heavily on&#xA;one of my machines. I have switched to Pop_OS! at home though, which has a&#xA;tiling window mode but the keybindings are not what I&amp;rsquo;m used to for i3. I&#xA;wanted to at least navigate workspaces how I&amp;rsquo;m used to doing (cause I set&#xA;workspace 3 for communication apps, 1 for my terminal, etc&amp;hellip;)&lt;/p&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s how I set keybindings for:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;&amp;lt;Super&amp;gt; + &amp;lt;number&amp;gt;&lt;/code&gt; sends me to that numbered workspace&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;&amp;lt;Shift&amp;gt; + &amp;lt;Super&amp;gt; + &amp;lt;number&amp;gt;&lt;/code&gt; moves the window I&amp;rsquo;m focused on to workspace &lt;code&gt;number&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;#!/bin/bash&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gsettings &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; org.gnome.mutter dynamic-workspaces &lt;span class=&#34;nb&#34;&gt;false&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gsettings &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; org.gnome.desktop.wm.preferences num-workspaces &lt;span class=&#34;m&#34;&gt;8&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gsettings &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; org.gnome.shell.keybindings switch-to-application-1 &lt;span class=&#34;o&#34;&gt;[]&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gsettings &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; org.gnome.shell.keybindings switch-to-application-2 &lt;span class=&#34;o&#34;&gt;[]&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gsettings &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; org.gnome.shell.keybindings switch-to-application-3 &lt;span class=&#34;o&#34;&gt;[]&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gsettings &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; org.gnome.shell.keybindings switch-to-application-4 &lt;span class=&#34;o&#34;&gt;[]&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gsettings &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; org.gnome.shell.keybindings switch-to-application-5 &lt;span class=&#34;o&#34;&gt;[]&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gsettings &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; org.gnome.shell.keybindings switch-to-application-6 &lt;span class=&#34;o&#34;&gt;[]&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gsettings &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; org.gnome.shell.keybindings switch-to-application-7 &lt;span class=&#34;o&#34;&gt;[]&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gsettings &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; org.gnome.shell.keybindings switch-to-application-8 &lt;span class=&#34;o&#34;&gt;[]&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gsettings &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; org.gnome.shell.keybindings switch-to-application-9 &lt;span class=&#34;o&#34;&gt;[]&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gsettings &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; org.gnome.desktop.wm.keybindings switch-to-workspace-1 &lt;span class=&#34;s2&#34;&gt;&amp;#34;[&amp;#39;&amp;lt;Super&amp;gt;1&amp;#39;]&amp;#34;&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gsettings &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; org.gnome.desktop.wm.keybindings switch-to-workspace-2 &lt;span class=&#34;s2&#34;&gt;&amp;#34;[&amp;#39;&amp;lt;Super&amp;gt;2&amp;#39;]&amp;#34;&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gsettings &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; org.gnome.desktop.wm.keybindings switch-to-workspace-3 &lt;span class=&#34;s2&#34;&gt;&amp;#34;[&amp;#39;&amp;lt;Super&amp;gt;3&amp;#39;]&amp;#34;&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gsettings &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; org.gnome.desktop.wm.keybindings switch-to-workspace-4 &lt;span class=&#34;s2&#34;&gt;&amp;#34;[&amp;#39;&amp;lt;Super&amp;gt;4&amp;#39;]&amp;#34;&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gsettings &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; org.gnome.desktop.wm.keybindings switch-to-workspace-5 &lt;span class=&#34;s2&#34;&gt;&amp;#34;[&amp;#39;&amp;lt;Super&amp;gt;5&amp;#39;]&amp;#34;&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gsettings &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; org.gnome.desktop.wm.keybindings switch-to-workspace-6 &lt;span class=&#34;s2&#34;&gt;&amp;#34;[&amp;#39;&amp;lt;Super&amp;gt;6&amp;#39;]&amp;#34;&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gsettings &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; org.gnome.desktop.wm.keybindings switch-to-workspace-7 &lt;span class=&#34;s2&#34;&gt;&amp;#34;[&amp;#39;&amp;lt;Super&amp;gt;7&amp;#39;]&amp;#34;&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gsettings &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; org.gnome.desktop.wm.keybindings switch-to-workspace-8 &lt;span class=&#34;s2&#34;&gt;&amp;#34;[&amp;#39;&amp;lt;Super&amp;gt;8&amp;#39;]&amp;#34;&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gsettings &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; org.gnome.desktop.wm.keybindings switch-to-workspace-9 &lt;span class=&#34;s2&#34;&gt;&amp;#34;[&amp;#39;&amp;lt;Super&amp;gt;9&amp;#39;]&amp;#34;&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gsettings &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; org.gnome.desktop.wm.keybindings switch-to-workspace-10 &lt;span class=&#34;s2&#34;&gt;&amp;#34;[&amp;#39;&amp;lt;Super&amp;gt;0&amp;#39;]&amp;#34;&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gsettings &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; org.gnome.desktop.wm.keybindings move-to-workspace-1 &lt;span class=&#34;s2&#34;&gt;&amp;#34;[&amp;#39;&amp;lt;Super&amp;gt;&amp;lt;Shift&amp;gt;1&amp;#39;]&amp;#34;&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gsettings &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; org.gnome.desktop.wm.keybindings move-to-workspace-2 &lt;span class=&#34;s2&#34;&gt;&amp;#34;[&amp;#39;&amp;lt;Super&amp;gt;&amp;lt;Shift&amp;gt;2&amp;#39;]&amp;#34;&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gsettings &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; org.gnome.desktop.wm.keybindings move-to-workspace-3 &lt;span class=&#34;s2&#34;&gt;&amp;#34;[&amp;#39;&amp;lt;Super&amp;gt;&amp;lt;Shift&amp;gt;3&amp;#39;]&amp;#34;&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gsettings &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; org.gnome.desktop.wm.keybindings move-to-workspace-4 &lt;span class=&#34;s2&#34;&gt;&amp;#34;[&amp;#39;&amp;lt;Super&amp;gt;&amp;lt;Shift&amp;gt;4&amp;#39;]&amp;#34;&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gsettings &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; org.gnome.desktop.wm.keybindings move-to-workspace-5 &lt;span class=&#34;s2&#34;&gt;&amp;#34;[&amp;#39;&amp;lt;Super&amp;gt;&amp;lt;Shift&amp;gt;5&amp;#39;]&amp;#34;&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gsettings &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; org.gnome.desktop.wm.keybindings move-to-workspace-6 &lt;span class=&#34;s2&#34;&gt;&amp;#34;[&amp;#39;&amp;lt;Super&amp;gt;&amp;lt;Shift&amp;gt;6&amp;#39;]&amp;#34;&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gsettings &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; org.gnome.desktop.wm.keybindings move-to-workspace-7 &lt;span class=&#34;s2&#34;&gt;&amp;#34;[&amp;#39;&amp;lt;Super&amp;gt;&amp;lt;Shift&amp;gt;7&amp;#39;]&amp;#34;&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gsettings &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; org.gnome.desktop.wm.keybindings move-to-workspace-8 &lt;span class=&#34;s2&#34;&gt;&amp;#34;[&amp;#39;&amp;lt;Super&amp;gt;&amp;lt;Shift&amp;gt;8&amp;#39;]&amp;#34;&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gsettings &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; org.gnome.desktop.wm.keybindings move-to-workspace-9 &lt;span class=&#34;s2&#34;&gt;&amp;#34;[&amp;#39;&amp;lt;Super&amp;gt;&amp;lt;Shift&amp;gt;9&amp;#39;]&amp;#34;&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gsettings &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; org.gnome.desktop.wm.keybindings move-to-workspace-10 &lt;span class=&#34;s2&#34;&gt;&amp;#34;[&amp;#39;&amp;lt;Super&amp;gt;&amp;lt;Shift&amp;gt;0&amp;#39;]&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Use non-standard named ssh keys with github</title>
    <id>https://pype.dev/use-non-standard-named-ssh-keys-with-github/</id>
    <updated>2023-01-03T08:34:50Z</updated>
    <published>2023-01-03T08:34:50Z</published>
    <link href="https://pype.dev/use-non-standard-named-ssh-keys-with-github/" rel="alternate" type="text/html"></link>
    <summary type="text">I was getting when trying to push to GH using ssh. When I tested the connection I saw that a bunch of keys in ``~/.ssh/ were being attempted</summary>
    <content type="html">&lt;p&gt;I was getting &lt;code&gt;(publickey denied)&lt;/code&gt; when trying to push to GH using ssh. When I&#xA;tested the connection I saw that a bunch of keys in ``~/.ssh/ were being&#xA;attempted&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;go&#34;&gt;✗ ssh git@github.com -vv&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;err&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;go&#34;&gt;...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;err&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;go&#34;&gt;debug1: Will attempt key: /home/nic/.ssh/id_rsa &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;go&#34;&gt;debug1: Will attempt key: /home/nic/.ssh/id_ecdsa &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;go&#34;&gt;debug1: Will attempt key: /home/nic/.ssh/id_ecdsa_sk &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;go&#34;&gt;debug1: Will attempt key: /home/nic/.ssh/id_ed25519 &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;go&#34;&gt;debug1: Will attempt key: /home/nic/.ssh/id_ed25519_sk &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;go&#34;&gt;debug1: Will attempt key: /home/nic/.ssh/id_xmss &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;go&#34;&gt;debug1: Will attempt key: /home/nic/.ssh/id_dsa &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;err&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;go&#34;&gt;...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;err&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;go&#34;&gt;debug1: No more authentication methods to try.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;go&#34;&gt;git@github.com: Permission denied (publickey).&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;err&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;None of those were the key I setup with GH. So I added an entry&#xA;into &lt;code&gt;~/.ssh/config&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Host&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;github.com&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;User git&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Port 22&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Hostname github.com&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;IdentityFile ~/.ssh/my_custom_github_key&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;TCPKeepAlive yes&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;IdentitiesOnly yes &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
</feed>