<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
        <title>All Posts - Gene.Tech</title>
        <link>https://geneliu.itaghome.win/posts/</link>
        <description>All Posts | Gene.Tech</description>
        <generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>gene.liu@live.com (Gene Liu)</managingEditor>
            <webMaster>gene.liu@live.com (Gene Liu)</webMaster><copyright>This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.</copyright><lastBuildDate>Sun, 02 Aug 2026 00:00:00 &#43;0000</lastBuildDate><atom:link href="https://geneliu.itaghome.win/posts/" rel="self" type="application/rss+xml" /><item>
    <title>A Toolbox I Actually Reopen</title>
    <link>https://geneliu.itaghome.win/2026-08-02-useful-tools/</link>
    <pubDate>Sun, 02 Aug 2026 00:00:00 &#43;0000</pubDate>
    <author>gene.liu@live.com (Gene Liu)</author>
    <guid>https://geneliu.itaghome.win/2026-08-02-useful-tools/</guid>
    <description><![CDATA[<p>Every few months I dump a folder of saved links into a post like this. Some entries are battle-tested; others are &ldquo;I used this once and it saved a weekend.&rdquo; I dropped <strong>EssayKiller_V2</strong> from my draft list &ndash; it was a fun GPT-2-era experiment, but in 2026 you already have better options on your desk.</p>
<p>Bookmark the page, steal what you need, ignore the rest.</p>
<h2 id="translation--language">Translation &amp; language</h2>
<ul>
<li><a href="https://www.deepl.com/translator" target="_blank" rel="noopener noreffer ">DeepL</a> &ndash; Still the translator I reach for when Google feels too literal and ChatGPT feels too chatty.</li>
<li><a href="https://github.com/zh-lx/pinyin-pro" target="_blank" rel="noopener noreffer ">pinyin-pro</a> &ndash; Pinyin conversion and matching for Chinese text in apps and scripts.</li>
</ul>
<h2 id="homelab--network">Homelab &amp; network</h2>
<ul>
<li><a href="https://dynip.dev/" target="_blank" rel="noopener noreffer ">dynip.dev</a> &ndash; Dynamic DNS that actually updates in about a minute, with RFC 2136 TSIG for routers and a generous free tier. Homelab DNS without the 30-minute stale-record ritual.</li>
<li><a href="https://github.com/jvns/dnspeep" target="_blank" rel="noopener noreffer ">dnspeep</a> &ndash; Spy on DNS queries your machine is making. Julia Evans wrote a <a href="https://jvns.ca/blog/2021/03/31/dnspeep-tool/" target="_blank" rel="noopener noreffer ">nice walkthrough</a> when it launched; the repo is the thing to install.</li>
<li><a href="https://httptoolkit.tech/" target="_blank" rel="noopener noreffer ">HTTP Toolkit</a> &ndash; Intercept, inspect, and mock HTTP(S) traffic without wrestling <code>mitmproxy</code> config every time.</li>
</ul>
<h2 id="terminal--remote-access">Terminal &amp; remote access</h2>
<ul>
<li><a href="https://github.com/ekzhang/sshx" target="_blank" rel="noopener noreffer ">sshx</a> &ndash; Share a live terminal in the browser. Fast, collaborative, surprisingly handy for &ldquo;can you see this error?&rdquo;</li>
<li><a href="https://github.com/cs01/termpair" target="_blank" rel="noopener noreffer ">termpair</a> &ndash; View and control a terminal from a browser with end-to-end encryption.</li>
<li><a href="https://github.com/huashengdun/webssh" target="_blank" rel="noopener noreffer ">webssh</a> &ndash; Web-based SSH client when you cannot install a native client but still need a shell.</li>
</ul>
<h2 id="pdf--documents">PDF &amp; documents</h2>
<ul>
<li><a href="https://github.com/Stirling-Tools/Stirling-PDF" target="_blank" rel="noopener noreffer ">Stirling-PDF</a> &ndash; Self-hosted PDF toolkit: merge, split, compress, OCR, the usual suspects. Run it at home if you do not want files on a random website.</li>
<li><a href="https://pdfreal.com/" target="_blank" rel="noopener noreffer ">PDFReal</a> &ndash; Fast online PDF utilities when you need something quick and do not want to spin up a container.</li>
</ul>
<h2 id="cloud-native--observability">Cloud native &amp; observability</h2>
<ul>
<li><a href="https://github.com/rootsongjc/awesome-cloud-native" target="_blank" rel="noopener noreffer ">awesome-cloud-native</a> &ndash; Rootsongjc&rsquo;s curated list of cloud-native projects. Good starting point when you are lost in the CNCF catalog.</li>
<li><a href="https://github.com/netdata/netdata" target="_blank" rel="noopener noreffer ">Netdata</a> &ndash; Real-time monitoring with minimal setup. Nice on a single node or a small cluster.</li>
</ul>
<h2 id="data--databases">Data &amp; databases</h2>
<ul>
<li><a href="https://dbeaver.io/" target="_blank" rel="noopener noreffer ">DBeaver</a> &ndash; Universal database client. Not pretty at 2 a.m., but it opens everything.</li>
</ul>
<h2 id="shell--scripting">Shell &amp; scripting</h2>
<ul>
<li><a href="https://github.com/dylanaraps/pure-bash-bible" target="_blank" rel="noopener noreffer ">pure-bash-bible</a> &ndash; Bash snippets you will grep more than you expect.</li>
<li><a href="https://github.com/onceupon/Bash-Oneliner" target="_blank" rel="noopener noreffer ">Bash-Oneliner</a> &ndash; Another solid collection of one-liners and small scripts.</li>
<li><a href="https://github.com/koalaman/shellcheck" target="_blank" rel="noopener noreffer ">ShellCheck</a> &ndash; Lint your shell scripts before they lint you.</li>
</ul>
<h2 id="security-crypto-and-regex-pain">Security, crypto, and regex pain</h2>
<ul>
<li><a href="https://gchq.github.io/CyberChef/" target="_blank" rel="noopener noreffer ">CyberChef</a> &ndash; The &ldquo;what encoding is this?&rdquo; Swiss Army knife from GCHQ.</li>
<li><a href="https://regex-vis.com/" target="_blank" rel="noopener noreffer ">regex-vis</a> &ndash; Visualize and debug regexes when your eyes glaze over at <code>^(?=(.*[a-z]))</code>.</li>
</ul>
<h2 id="comments-lightweight">Comments (lightweight)</h2>
<ul>
<li><a href="https://github.com/djyde/cusdis" target="_blank" rel="noopener noreffer ">Cusdis</a> &ndash; Lightweight, privacy-friendly comment widget. The author&rsquo;s free hosted service is gone; self-host or embed on your own site. Still beats loading Disqus on a personal blog.</li>
</ul>
<h2 id="iot--casting">IoT &amp; casting</h2>
<ul>
<li><a href="https://hub.docker.com/r/tfgco/arkadiko/tags" target="_blank" rel="noopener noreffer ">Arkadiko (Docker)</a> &ndash; Docker image related to the Arkadiko IoT/game stack; useful if you are poking at that ecosystem.</li>
<li><a href="https://github.com/skorokithakis/catt/" target="_blank" rel="noopener noreffer ">catt</a> &ndash; Cast audio and video to Chromecast from the command line. <code>catt cast</code> beats opening another GUI.</li>
</ul>
<h2 id="music-scores-and-midi">Music, scores, and MIDI</h2>
<ul>
<li><a href="http://www.kunstderfuge.com/" target="_blank" rel="noopener noreffer ">Kunst der Fuge</a> &ndash; Classical MIDI files and scores. A rabbit hole if you like reading music on a screen.</li>
<li><a href="https://github.com/marcomusy/pianoplayer" target="_blank" rel="noopener noreffer ">pianoplayer</a> &ndash; Play along with a MIDI keyboard; visual feedback on what to press next.</li>
<li><a href="http://www.nlc.cn/pcab/zy/zhgj_zyk/" target="_blank" rel="noopener noreffer ">中华古籍资源库</a> &ndash; National Library of China digitized ancient books and related resources. Serious archive, not a quick click.</li>
</ul>
<h2 id="chinese-classics--text">Chinese classics &amp; text</h2>
<ul>
<li><a href="https://ctext.org/zhs" target="_blank" rel="noopener noreffer ">ctext.org</a> &ndash; Chinese Text Project: classical Chinese texts with search and parallel editions.</li>
<li><a href="https://github.com/jaywcjlove/copybook-generator" target="_blank" rel="noopener noreffer ">copybook-generator</a> &ndash; Generate Chinese copybook practice sheets (字帖).</li>
</ul>
<h2 id="math-code-and-learning">Math, code, and learning</h2>
<ul>
<li><a href="https://github.com/rossant/awesome-math" target="_blank" rel="noopener noreffer ">awesome-math</a> &ndash; Curated math learning resources.</li>
<li><a href="https://github.com/google/blockly" target="_blank" rel="noopener noreffer ">Blockly</a> &ndash; Visual block programming; still useful for teaching and quick prototypes.</li>
<li><a href="https://github.com/zhm-real/PathPlanning" target="_blank" rel="noopener noreffer ">PathPlanning</a> &ndash; Path planning algorithms with visual demos.</li>
</ul>
<h2 id="fitness-handwriting-and-doodles">Fitness, handwriting, and doodles</h2>
<ul>
<li><a href="https://darebee.com/workouts.html" target="_blank" rel="noopener noreffer ">Darebee workouts</a> &ndash; No-equipment workout cards. Print one, do it, move on.</li>
<li><a href="https://www.calligrapher.ai/" target="_blank" rel="noopener noreffer ">Calligrapher.ai</a> &ndash; Generate realistic handwriting from typed text. Fun for labels and mockups.</li>
<li><a href="https://github.com/linjc/smooth-signature" target="_blank" rel="noopener noreffer ">smooth-signature</a> &ndash; Smooth signature pad for web apps.</li>
</ul>
<h2 id="games--go">Games &amp; Go</h2>
<ul>
<li><a href="https://online-go.com/learn-to-play-go/atari-to-side" target="_blank" rel="noopener noreffer ">OGS: Learn to Play Go (Atari to Side)</a> &ndash; Interactive lessons on <a href="https://online-go.com/" target="_blank" rel="noopener noreffer ">online-go.com</a> (OGS). Work through tactics from atari to side connections, then play in the same browser.</li>
</ul>
<h2 id="weather">Weather</h2>
<ul>
<li><a href="https://github.com/Leftium/ultra-weather" target="_blank" rel="noopener noreffer ">ultra-weather</a> &ndash; Actionable, human-readable weather forecasts in a clean UI.</li>
</ul>
<h2 id="reading--ebooks">Reading &amp; ebooks</h2>
<ul>
<li><a href="https://github.com/satorumurmur/bibi" target="_blank" rel="noopener noreffer ">bibi</a> &ndash; EPUB reader you can embed on a website.</li>
<li><a href="https://github.com/noDRM/DeDRM_tools" target="_blank" rel="noopener noreffer ">DeDRM_tools</a> &ndash; Tools for managing DRM on ebooks you already own. Legal territory varies by country; use only on content you have the right to back up.</li>
</ul>
<hr>
<p><em>Last updated: 2026-08-02. Send me a link if something here rotted or if I missed your favorite wrench.</em></p>]]></description>
</item>
<item>
    <title>Notes on &#39;The Untethered Soul: The Journey Beyond Yourself&#39;</title>
    <link>https://geneliu.itaghome.win/2026-07-27-untethered-soul/</link>
    <pubDate>Mon, 27 Jul 2026 00:00:00 &#43;0000</pubDate>
    <author>gene.liu@live.com (Gene Liu)</author>
    <guid>https://geneliu.itaghome.win/2026-07-27-untethered-soul/</guid>
    <description><![CDATA[<p>Here are some highlights and notes from my reading of <strong>The Untethered Soul: The Journey Beyond Yourself</strong>.</p>
<h3 id="chapter-15-the-path-of-unconditional-happiness">Chapter 15: The Path of Unconditional Happiness</h3>
<blockquote>
<p>The highest spiritual path is life itself. If you know how to live daily life, it all becomes a liberating experience. But first you have to approach life properly, or it can be very confusing. You have to realize that you really only have one choice in this life, and it&rsquo;s not about your career, whom you want to marry, or whether you want to seek God. People tend to burden themselves with so many choices. But, in the end, you can throw it all away and just make one basic, underlying decision: Do you want to be happy, or do you not want to be happy? It&rsquo;s really that simple. Once you make that choice, your path through life becomes totally clear.</p>]]></description>
</item>
<item>
    <title>Notes on &#39;The Man&#39;s Guide to Women&#39;</title>
    <link>https://geneliu.itaghome.win/2026-07-22-mans-guide-to-women/</link>
    <pubDate>Wed, 22 Jul 2026 00:00:00 &#43;0000</pubDate>
    <author>gene.liu@live.com (Gene Liu)</author>
    <guid>https://geneliu.itaghome.win/2026-07-22-mans-guide-to-women/</guid>
    <description><![CDATA[<p>Here are some highlights and notes from my reading of <strong>The Man&rsquo;s Guide to Women: Scientifically Proven Secrets from the Love Lab About What Women Really Want</strong>.</p>
<h3 id="01-what-do-women-really-want-understanding-a-womans-heart">01 What Do Women Really Want? Understanding a Woman&rsquo;s Heart</h3>
<blockquote>
<p>In the process of men and women interacting, the behaviors that make women feel you are trustworthy are as follows: keeping your promises, being consistent in your words and actions, being reliable, having a sense of responsibility, and being able to truthfully show who you are.</p>]]></description>
</item>
<item>
    <title>Kubernetes Cluster Installation</title>
    <link>https://geneliu.itaghome.win/2022-05-08-k8s-cka/</link>
    <pubDate>Sun, 08 May 2022 00:00:00 &#43;0000</pubDate>
    <author>gene.liu@live.com (Gene Liu)</author>
    <guid>https://geneliu.itaghome.win/2022-05-08-k8s-cka/</guid>
    <description><![CDATA[<p>To learn some of the details about the <code>kubeadm</code> toolbox, the best way is to use it to manage a k8s cluster. This includes the whole life cycle management: new installation (HA), scale up/down, and upgrade. All information was current as of May 2022.</p>
<h2 id="preparations">Preparations</h2>
<p>You will need these preparations on all of your nodes.</p>
<ol>
<li>
<p><a href="https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#before-you-begin" target="_blank" rel="noopener noreffer ">https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#before-you-begin</a>
I use <code>terraform</code> to setup 5 Ubuntu 20.04 nodes (2 vCPU, 6Gi RAM).</p>]]></description>
</item>
<item>
    <title>Kubernetes (k3s) Certs Expired</title>
    <link>https://geneliu.itaghome.win/2022-04-19-k3s-certs-expire/</link>
    <pubDate>Tue, 19 Apr 2022 00:00:00 &#43;0000</pubDate>
    <author>gene.liu@live.com (Gene Liu)</author>
    <guid>https://geneliu.itaghome.win/2022-04-19-k3s-certs-expire/</guid>
    <description><![CDATA[<p>There is a bug in some older k3s releases that causes certificate auto-renewal to fail.</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">kubectl --insecure-skip-tls-verify<span class="o">=</span><span class="nb">true</span> delete secret -n kube-system k3s-serving
</span></span><span class="line"><span class="cl">stop k3s
</span></span><span class="line"><span class="cl">remove/backup /var/lib/rancher/k3s/server/tls/dynamic-cert.json
</span></span><span class="line"><span class="cl">remove/backup /etc/rancher/k3s/k3s.yaml
</span></span><span class="line"><span class="cl">restart k3s</span></span></code></pre></div></div>]]></description>
</item>
<item>
    <title>Add Missing Indices After Nextcloud Upgrade</title>
    <link>https://geneliu.itaghome.win/2022-03-26-nextcloud/</link>
    <pubDate>Sat, 26 Mar 2022 00:00:00 &#43;0000</pubDate>
    <author>gene.liu@live.com (Gene Liu)</author>
    <guid>https://geneliu.itaghome.win/2022-03-26-nextcloud/</guid>
    <description><![CDATA[<h3 id="upgrade-nextcloud">Upgrade Nextcloud</h3>
<ol>
<li>Remove all other folders except <code>/config</code> and <code>/data</code> (due to an unsuccessful major version jump upgrade).</li>
<li>Upgrade one major version at a time (cannot jump upgrade two major versions).</li>
</ol>
<h3 id="system-warning-about-missing-indices">System Warning About Missing Indices</h3>
<div class="code-block code-line-numbers" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">kubectl <span class="nb">exec</span> -it -n nextcloud nextcloud-6864c47cf4-58vrl -- /bin/sh
</span></span><span class="line"><span class="cl"><span class="c1"># sudo -u www-data php occ db:add-missing-indices</span>
</span></span><span class="line"><span class="cl">/bin/sh: 1: sudo: not found
</span></span><span class="line"><span class="cl"><span class="c1"># su www-data</span>
</span></span><span class="line"><span class="cl">This account is currently not available.
</span></span><span class="line"><span class="cl"><span class="c1"># id</span>
</span></span><span class="line"><span class="cl"><span class="nv">uid</span><span class="o">=</span>0<span class="o">(</span>root<span class="o">)</span> <span class="nv">gid</span><span class="o">=</span>0<span class="o">(</span>root<span class="o">)</span> <span class="nv">groups</span><span class="o">=</span>0<span class="o">(</span>root<span class="o">)</span>,33<span class="o">(</span>www-data<span class="o">)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># su www-data -s /bin/sh</span>
</span></span><span class="line"><span class="cl">$ php occ db:add-missing-indices
</span></span><span class="line"><span class="cl">Check indices of the share table.
</span></span><span class="line"><span class="cl">Check indices of the filecache table.
</span></span><span class="line"><span class="cl">Adding additional size index to the filecache table, this can take some time...
</span></span><span class="line"><span class="cl">Filecache table updated successfully.
</span></span><span class="line"><span class="cl">Adding additional size index to the filecache table, this can take some time...
</span></span><span class="line"><span class="cl">Filecache table updated successfully.
</span></span><span class="line"><span class="cl">Adding additional path index to the filecache table, this can take some time...
</span></span><span class="line"><span class="cl">Filecache table updated successfully.
</span></span><span class="line"><span class="cl">Check indices of the twofactor_providers table.
</span></span><span class="line"><span class="cl">Check indices of the login_flow_v2 table.
</span></span><span class="line"><span class="cl">Check indices of the whats_new table.
</span></span><span class="line"><span class="cl">Check indices of the cards table.
</span></span><span class="line"><span class="cl">Adding cards_abiduri index to the cards table, this can take some time...
</span></span><span class="line"><span class="cl">cards table updated successfully.
</span></span><span class="line"><span class="cl">Check indices of the cards_properties table.
</span></span><span class="line"><span class="cl">Check indices of the calendarobjects_props table.
</span></span><span class="line"><span class="cl">Check indices of the schedulingobjects table.
</span></span><span class="line"><span class="cl">Check indices of the oc_properties table.
</span></span><span class="line"><span class="cl">Adding properties_pathonly_index index to the oc_properties table, this can take some time...
</span></span><span class="line"><span class="cl">oc_properties table updated successfully.
</span></span><span class="line"><span class="cl">Check indices of the oc_jobs table.
</span></span><span class="line"><span class="cl">Adding job_lastcheck_reserved index to the oc_jobs table, this can take some time...
</span></span><span class="line"><span class="cl">oc_properties table updated successfully.
</span></span><span class="line"><span class="cl">$ <span class="nb">exit</span>
</span></span><span class="line"><span class="cl"><span class="c1"># exit</span></span></span></code></pre></div></div>]]></description>
</item>
<item>
    <title>Install AdGuardHome on Asus Router (AC56U)</title>
    <link>https://geneliu.itaghome.win/2022-2-12-asus-adguard-home/</link>
    <pubDate>Sat, 12 Feb 2022 00:00:00 &#43;0000</pubDate>
    <author>gene.liu@live.com (Gene Liu)</author>
    <guid>https://geneliu.itaghome.win/2022-2-12-asus-adguard-home/</guid>
    <description><![CDATA[<h3 id="download-and-flash-asuswrt-merlin-firmware-v3846">Download and Flash Asuswrt-Merlin Firmware (v384.6)</h3>
<p><a href="https://www.asuswrt-merlin.net/" target="_blank" rel="noopener noreffer ">https://www.asuswrt-merlin.net/</a>
<a href="https://sourceforge.net/projects/asuswrt-merlin/files/RT-AC56U/Release/RT-AC56U_384.6_0.zip/download" target="_blank" rel="noopener noreffer ">https://sourceforge.net/projects/asuswrt-merlin/files/RT-AC56U/Release/RT-AC56U_384.6_0.zip/download</a></p>
<h3 id="prepare-usb-drive">Prepare USB Drive</h3>
<ol>
<li>Login to router via SSH (<code>ssh admin@router_ip</code>)</li>
<li><code>fdisk /dev/sda</code></li>
<li><code>mkfs.ext3 /dev/sda[1,2]</code></li>
</ol>
<h3 id="enable-jffs-custom-scripts-and-configs">Enable JFFS Custom Scripts and Configs</h3>
<p>Administration -&gt; System -&gt; Persistent JFFS2 partition -&gt; Enable JFFS custom scripts and configs (&lsquo;yes&rsquo;)</p>
<h3 id="execute-entware-setup-to-enable-opt-mount-on-usb-drive">Execute Entware-Setup to Enable /opt Mount on USB Drive</h3>
<p>The newly flashed firmware (v384.6) has <code>entware-setup.sh</code> included already.
FYI: <a href="https://github.com/RMerl/asuswrt-merlin/blob/master/release/src/router/others/entware-setup.sh" target="_blank" rel="noopener noreffer ">https://github.com/RMerl/asuswrt-merlin/blob/master/release/src/router/others/entware-setup.sh</a></p>
<h3 id="update-post-mount-script">Update Post-Mount Script</h3>
<p><code>/opt/etc/init.d/rc.unslung start</code> is the line added; not sure if it&rsquo;s necessary. :)</p>]]></description>
</item>
<item>
    <title>vsftpd Access NFS Shared Directory</title>
    <link>https://geneliu.itaghome.win/2022-2-8-vsftpd/</link>
    <pubDate>Tue, 08 Feb 2022 00:00:00 &#43;0000</pubDate>
    <author>gene.liu@live.com (Gene Liu)</author>
    <guid>https://geneliu.itaghome.win/2022-2-8-vsftpd/</guid>
    <description><![CDATA[<h3 id="issue">Issue</h3>
<p>When putting files into an NFS shared directory, I get an &ldquo;Access failed: 553 Could not create file.&rdquo; error.</p>
<h3 id="solution">Solution</h3>
<ol>
<li><code>setsebool -P ftpd_full_access 1</code></li>
<li>Make sure the mounted directory has the correct ownership.</li>
</ol>]]></description>
</item>
<item>
    <title>Add a GitLab CI Runner</title>
    <link>https://geneliu.itaghome.win/2022-1-20-gitlab-ci/</link>
    <pubDate>Thu, 20 Jan 2022 00:00:00 &#43;0000</pubDate>
    <author>gene.liu@live.com (Gene Liu)</author>
    <guid>https://geneliu.itaghome.win/2022-1-20-gitlab-ci/</guid>
    <description><![CDATA[<h3 id="setup-a-standard-rhelalmalinux-85-vm">Setup a Standard RHEL/AlmaLinux 8.5 VM</h3>
<ol>
<li>
<p>Docker proxy settings:</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cat /etc/systemd/system/docker.service.d/http-proxy.conf 
</span></span><span class="line"><span class="cl"><span class="o">[</span>Service<span class="o">]</span>
</span></span><span class="line"><span class="cl"><span class="nv">Environment</span><span class="o">=</span><span class="s2">&#34;HTTP_PROXY=http://proxy.lbs.alcatel-lucent.com:8000&#34;</span> <span class="s2">&#34;HTTPS_PROXY=http://proxy.lbs.alcatel-lucent.com:8000&#34;</span> <span class="s2">&#34;NO_PROXY=orbw-artifactory.ca.alcatel-lucent.com&#34;</span></span></span></code></pre></div></div>
</li>
<li>
<p>Insecure (private) registry:</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-json">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="err">cat</span> <span class="err">/etc/docker/daemon.json</span> 
</span></span><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;insecure-registries&#34;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&#34;orbw-artifactory.ca.alcatel-lucent.com:8081&#34;</span> <span class="p">]</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></div></div>
</li>
</ol>
<h3 id="install-gitlab-runner">Install GitLab Runner</h3>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">docker run -d --name gitlab-runner --restart always -v /home/cloud-user/config:/etc/gitlab-runner -v /var/run/docker.sock:/var/run/docker.sock orbw-artifactory.ca.alcatel-lucent.com:8081/nokia-nsp-docker-virtual/gitlab/gitlab-runner:latest</span></span></code></pre></div></div>
<h3 id="gitlab-runner-register">GitLab Runner Register</h3>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">docker run --rm -it -v /home/cloud-user/config:/etc/gitlab-runner orbw-artifactory.ca.alcatel-lucent.com:8081/nokia-nsp-docker-virtual/gitlab/gitlab-runner:latest register</span></span></code></pre></div></div>
<p>Example config:</p>]]></description>
</item>
<item>
    <title>Use wget to Download a List of Files</title>
    <link>https://geneliu.itaghome.win/2022-1-19-wget/</link>
    <pubDate>Wed, 19 Jan 2022 00:00:00 &#43;0000</pubDate>
    <author>gene.liu@live.com (Gene Liu)</author>
    <guid>https://geneliu.itaghome.win/2022-1-19-wget/</guid>
    <description><![CDATA[<p>Use <code>wget</code> to download a list of files:</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">wget -x -P /data/temp/files --no-host-directories -i /data/temp/file.txt</span></span></code></pre></div></div>]]></description>
</item>
</channel>
</rss>
