<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>containerization - Hamradio.my</title>
	<atom:link href="https://hamradio.my/category/containerization/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description>Amateur Radio, Tech Insights and Product Reviews</description>
	<lastBuildDate>Fri, 29 Aug 2025 17:53:04 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://hamradio.my/wp-content/uploads/2026/02/cropped-cropped-image-removebg-preview-3-32x32.png</url>
	<title>containerization - Hamradio.my</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Run Windows Inside Docker Like Magic: A Look at Dockur/Windows</title>
		<link>https://hamradio.my/2025/09/run-windows-inside-docker-like-magic-a-look-at-dockur-windows/</link>
					<comments>https://hamradio.my/2025/09/run-windows-inside-docker-like-magic-a-look-at-dockur-windows/#respond</comments>
		
		<dc:creator><![CDATA[9M2PJU]]></dc:creator>
		<pubDate>Wed, 17 Sep 2025 17:49:47 +0000</pubDate>
				<category><![CDATA[containerization]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[microsoft windows]]></category>
		<category><![CDATA[docker windows vm]]></category>
		<category><![CDATA[dockur windows]]></category>
		<category><![CDATA[run windows in container]]></category>
		<category><![CDATA[windows 11 docker]]></category>
		<category><![CDATA[windows docker image]]></category>
		<category><![CDATA[windows in docker]]></category>
		<category><![CDATA[windows in linux with docker]]></category>
		<category><![CDATA[windows server docker]]></category>
		<category><![CDATA[windows virtualization]]></category>
		<category><![CDATA[windows xp docker]]></category>
		<guid isPermaLink="false">https://hamradio.my/?p=8623</guid>

					<description><![CDATA[<p>Virtualization has always been a powerful way to run multiple operating systems on a single machine. But what if you could spin up a fully functional Windows installation inside a Docker container, just as easily as you deploy a Linux service? That’s exactly what Dockur/Windows delivers — and it’s one of the most exciting projects [&#8230;]</p>
<p>The post <a href="https://hamradio.my/2025/09/run-windows-inside-docker-like-magic-a-look-at-dockur-windows/">Run Windows Inside Docker Like Magic: A Look at Dockur/Windows</a> appeared on <a href="https://hamradio.my">Hamradio.my - Amateur Radio, Tech Insights and Product Reviews</a> by <a href="https://hamradio.my/author/9m2pju/">9M2PJU</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading"></h1>



<p class="wp-block-paragraph">Virtualization has always been a powerful way to run multiple operating systems on a single machine. But what if you could spin up a <strong>fully functional Windows installation</strong> inside a Docker container, just as easily as you deploy a Linux service? That’s exactly what <a href="https://github.com/dockur/windows"><strong>Dockur/Windows</strong></a> delivers — and it’s one of the most exciting projects for developers, system admins, and tech enthusiasts in 2025.</p>



<h2 class="wp-block-heading">What Is Dockur/Windows?</h2>



<p class="wp-block-paragraph">Dockur/Windows is an open-source project that lets you run <strong>Windows operating systems inside Docker containers</strong>. With over <strong>37,000 GitHub stars</strong> and thousands of forks, it has become one of the most popular ways to experiment with Windows virtualization without needing heavy hypervisor setups.</p>



<p class="wp-block-paragraph">It combines <strong>KVM acceleration</strong>, <strong>automatic ISO downloads</strong>, and a <strong>web-based viewer</strong>, making it incredibly simple to get Windows up and running on your host.</p>



<p class="wp-block-paragraph">In just a few minutes, you can deploy <strong>Windows 11, Windows 10, or even classics like Windows XP or Server 2003</strong>.</p>



<h2 class="wp-block-heading">Key Features <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2728.png" alt="✨" class="wp-smiley" style="height: 1em; max-height: 1em;" /></h2>



<ul class="wp-block-list">
<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Automatic ISO Downloader</strong> – no hunting for Windows ISOs; the container does it for you.</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a1.png" alt="⚡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>KVM Acceleration</strong> – blazing-fast virtualization on supported hardware.</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f310.png" alt="🌐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Web-Based Viewer</strong> – access installation and desktop directly via your browser on port 8006.</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f527.png" alt="🔧" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Full Customization</strong> – control CPU, RAM, storage, language, keyboard layout, editions, and more.</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4c2.png" alt="📂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>File Sharing</strong> – bind mount host folders to access them from inside Windows.</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4e1.png" alt="📡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>RDP Support</strong> – connect via Microsoft Remote Desktop for better performance.</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f5a5.png" alt="🖥" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Wide OS Support</strong> – from Windows 11 Pro to legacy XP, Vista, and Windows 2000.</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f6e0.png" alt="🛠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Legal &amp; Open-Source</strong> – no pirated ISOs; it only uses official Microsoft trial ISOs.</li>
</ul>



<h2 class="wp-block-heading">How Easy Is It to Use?</h2>



<p class="wp-block-paragraph">Running Windows inside Docker has never been simpler. Here’s an example with Docker Compose:</p>



<pre class="wp-block-code"><code>services:
  windows:
    image: dockurr/windows
    container_name: windows
    environment:
      VERSION: "11"
      RAM_SIZE: "8G"
      CPU_CORES: "4"
      DISK_SIZE: "128G"
    devices:
      - /dev/kvm
      - /dev/net/tun
    cap_add:
      - NET_ADMIN
    ports:
      - 8006:8006
      - 3389:3389/tcp
      - 3389:3389/udp
    volumes:
      - ./windows:/storage
    restart: always</code></pre>



<p class="wp-block-paragraph">After launching, simply visit <strong><a href="http://localhost:8006">http://localhost:8006</a></strong> in your browser, watch the automated installation, and within minutes you’ll be greeted with a fully working Windows desktop.</p>



<h2 class="wp-block-heading">Supported Versions</h2>



<p class="wp-block-paragraph">Dockur/Windows supports a wide range of editions, including:</p>



<ul class="wp-block-list">
<li><strong>Windows 11 Pro / LTSC / Enterprise</strong></li>



<li><strong>Windows 10 Pro / LTSC / Enterprise</strong></li>



<li><strong>Windows 8.1 Enterprise</strong></li>



<li><strong>Windows 7 Ultimate</strong></li>



<li><strong>Windows XP Professional</strong></li>



<li><strong>Windows 2000 Professional</strong></li>



<li><strong>Windows Server editions (2003–2025)</strong></li>
</ul>



<p class="wp-block-paragraph">You can even use <strong>custom ISOs</strong> by specifying a URL or mounting a local <code>.iso</code> file.</p>



<h2 class="wp-block-heading">Why Is This Important?</h2>



<p class="wp-block-paragraph">Traditionally, running Windows required dedicated VMs via <strong>VirtualBox, VMware, or Hyper-V</strong>. These solutions are resource-heavy and less portable.</p>



<p class="wp-block-paragraph">With Dockur/Windows, you get:</p>



<ul class="wp-block-list">
<li><strong>Lightweight deployment</strong> – run anywhere Docker runs.</li>



<li><strong>Infrastructure-as-code</strong> – reproducible Windows environments defined in YAML.</li>



<li><strong>Portability</strong> – move your Windows environment between servers easily.</li>



<li><strong>Integration</strong> – combine Windows containers with Linux microservices seamlessly.</li>
</ul>



<h2 class="wp-block-heading">Use Cases <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4a1.png" alt="💡" class="wp-smiley" style="height: 1em; max-height: 1em;" /></h2>



<ul class="wp-block-list">
<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f52c.png" alt="🔬" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Software Testing</strong> – instantly spin up legacy Windows builds for QA.</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f3ae.png" alt="🎮" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Retro Gaming</strong> – bring back Windows XP or 7 environments for classic games.</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4e6.png" alt="📦" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>CI/CD Pipelines</strong> – test Windows applications in automated workflows.</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4bb.png" alt="💻" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Learning &amp; Training</strong> – safe sandbox for students and professionals.</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f3d7.png" alt="🏗" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Server Labs</strong> – deploy Windows Server editions alongside Linux services.</li>
</ul>



<h2 class="wp-block-heading">Final Thoughts</h2>



<p class="wp-block-paragraph">Dockur/Windows is a <strong>game-changer</strong> for developers and IT enthusiasts. It transforms Windows from a heavyweight virtual machine into a <strong>Dockerized, portable, and scriptable service</strong>.</p>



<p class="wp-block-paragraph">If you’ve ever dreamed of running Windows inside Docker with minimal setup, this project is for you.</p>



<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f449.png" alt="👉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Check it out here: <a href="https://github.com/dockur/windows">Dockur/Windows on GitHub</a></p>



<p class="wp-block-paragraph"></p>
<p>The post <a href="https://hamradio.my/2025/09/run-windows-inside-docker-like-magic-a-look-at-dockur-windows/">Run Windows Inside Docker Like Magic: A Look at Dockur/Windows</a> appeared on <a href="https://hamradio.my">Hamradio.my - Amateur Radio, Tech Insights and Product Reviews</a> by <a href="https://hamradio.my/author/9m2pju/">9M2PJU</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamradio.my/2025/09/run-windows-inside-docker-like-magic-a-look-at-dockur-windows/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Docker vs Podman: The Showdown in Containerization</title>
		<link>https://hamradio.my/2025/07/docker-vs-podman-the-showdown-in-containerization/</link>
					<comments>https://hamradio.my/2025/07/docker-vs-podman-the-showdown-in-containerization/#respond</comments>
		
		<dc:creator><![CDATA[9M2PJU]]></dc:creator>
		<pubDate>Fri, 25 Jul 2025 19:17:31 +0000</pubDate>
				<category><![CDATA[container]]></category>
		<category><![CDATA[containerization]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[podman]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Docker对Podman]]></category>
		<category><![CDATA[Docker対Podman]]></category>
		<category><![CDATA[Podman对Docker]]></category>
		<category><![CDATA[Докер]]></category>
		<category><![CDATA[ДокерVsПодман]]></category>
		<category><![CDATA[ДокерПротиПідман]]></category>
		<category><![CDATA[Підман]]></category>
		<category><![CDATA[Подман]]></category>
		<category><![CDATA[برامج\_الحاويات]]></category>
		<category><![CDATA[بودمان]]></category>
		<category><![CDATA[پادمن]]></category>
		<category><![CDATA[داکر]]></category>
		<category><![CDATA[دوكر]]></category>
		<category><![CDATA[डॉकर]]></category>
		<category><![CDATA[डॉकर\_विरुद्ध\_पॉडमैन]]></category>
		<category><![CDATA[डॉकरvspodman]]></category>
		<category><![CDATA[पॉडमैन]]></category>
		<category><![CDATA[ডকার]]></category>
		<category><![CDATA[ডকার\_পডম্যান]]></category>
		<category><![CDATA[পডম্যান]]></category>
		<category><![CDATA[பாட்மான்]]></category>
		<category><![CDATA[కంటైనర్లు]]></category>
		<category><![CDATA[పాడ్‌మాన్]]></category>
		<category><![CDATA[ಕಾಂಟೈನರ್]]></category>
		<category><![CDATA[ഡോക്കര്‍]]></category>
		<category><![CDATA[ഡോക്കർ]]></category>
		<category><![CDATA[コンテナ]]></category>
		<category><![CDATA[コンテナ技術]]></category>
		<category><![CDATA[容器]]></category>
		<category><![CDATA[容器技术]]></category>
		<category><![CDATA[도커]]></category>
		<category><![CDATA[도커\_대\_포드맨]]></category>
		<category><![CDATA[컨테이너]]></category>
		<category><![CDATA[포드맨]]></category>
		<guid isPermaLink="false">https://hamradio.my/?p=7785</guid>

					<description><![CDATA[<p>In the fast-evolving world of software containers, two titans stand at the forefront: Docker and Podman. Both tools aim to simplify container management, but they differ significantly in design, architecture, security, and philosophy. If you’re a developer, sysadmin, or DevOps enthusiast, choosing the right tool could impact your workflows, security posture, and deployment pipelines. Let’s [&#8230;]</p>
<p>The post <a href="https://hamradio.my/2025/07/docker-vs-podman-the-showdown-in-containerization/">Docker vs Podman: The Showdown in Containerization</a> appeared on <a href="https://hamradio.my">Hamradio.my - Amateur Radio, Tech Insights and Product Reviews</a> by <a href="https://hamradio.my/author/9m2pju/">9M2PJU</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading"></h1>



<p class="wp-block-paragraph">In the fast-evolving world of software containers, two titans stand at the forefront: <strong>Docker</strong> and <strong>Podman</strong>. Both tools aim to simplify container management, but they differ significantly in design, architecture, security, and philosophy. If you’re a developer, sysadmin, or DevOps enthusiast, choosing the right tool could impact your workflows, security posture, and deployment pipelines.</p>



<p class="wp-block-paragraph">Let’s dive deep into the <strong>real, factual</strong> differences between Docker and Podman—no fluff, just facts.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4e6.png" alt="📦" class="wp-smiley" style="height: 1em; max-height: 1em;" /> What Are Docker and Podman?</h2>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f433.png" alt="🐳" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Docker</h3>



<p class="wp-block-paragraph">Released in 2013, <strong>Docker</strong> revolutionized how developers package and ship applications. It introduced a high-level, developer-friendly interface for containerizing applications and quickly became the standard in CI/CD pipelines and cloud-native development.</p>



<ul class="wp-block-list">
<li><strong>Architecture</strong>: Daemon-based (<code>dockerd</code>)</li>



<li><strong>License</strong>: Apache 2.0 (Engine), Docker Desktop (commercial license for enterprises)</li>



<li><strong>Adoption</strong>: Widely used in enterprises and supported across all major cloud providers</li>
</ul>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9be.png" alt="🦾" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Podman</h3>



<p class="wp-block-paragraph"><strong>Podman</strong> (short for <em>Pod Manager</em>) emerged from the Red Hat ecosystem in 2018 as a modern, <strong>daemonless</strong>, <strong>rootless</strong>, and <strong>Kubernetes-native</strong> alternative to Docker. It’s a drop-in replacement for many Docker CLI commands but with a twist: better security and system integration.</p>



<ul class="wp-block-list">
<li><strong>Architecture</strong>: Daemonless, fork/exec model</li>



<li><strong>License</strong>: Apache 2.0</li>



<li><strong>Endorsed by</strong>: Red Hat, Fedora, and used in OpenShift</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2699.png" alt="⚙" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Architecture: Daemon vs Daemonless</h2>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f527.png" alt="🔧" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Docker</h3>



<p class="wp-block-paragraph">Docker uses a <strong>centralized daemon</strong> (<code>dockerd</code>) that listens for commands from the Docker CLI. All containers run as subprocesses of this daemon, which must be started and kept running in the background.</p>



<ul class="wp-block-list">
<li>Pros: Easier to manage containers centrally</li>



<li>Cons: If the daemon crashes, <strong>all containers go down</strong>. Also, the daemon typically runs with <strong>root privileges</strong>, a security concern in multi-tenant environments.</li>
</ul>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f527.png" alt="🔧" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Podman</h3>



<p class="wp-block-paragraph">Podman is <strong>daemonless</strong>. Each container is a direct child process of the Podman CLI, eliminating the single point of failure and reducing complexity.</p>



<ul class="wp-block-list">
<li>Pros: More secure, no need for a background service</li>



<li>Cons: Slightly more complex to manage container orchestration manually (but easily fixed with systemd)</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f6e1.png" alt="🛡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Security: Rootless by Default</h2>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f510.png" alt="🔐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Docker</h3>



<p class="wp-block-paragraph">Docker runs the daemon as <strong>root</strong> by default. While Docker introduced a <em>rootless mode</em>, it’s not the standard, and setting it up requires additional configuration.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2757.png" alt="❗" class="wp-smiley" style="height: 1em; max-height: 1em;" />This model has led to security breaches in containerized environments when untrusted containers were exploited to escalate privileges.</p>
</blockquote>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f510.png" alt="🔐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Podman</h3>



<p class="wp-block-paragraph">Podman was <strong>built with security first</strong>. It runs containers as the <strong>current user</strong>, even allowing <strong>completely rootless containers</strong> with no special setup. This significantly reduces the attack surface and aligns better with multi-user Linux environments.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f510.png" alt="🔐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Rootless Podman containers can&#8217;t access host kernel features they shouldn&#8217;t, which is excellent for sandboxing.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9e9.png" alt="🧩" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Compatibility and CLI</h2>



<p class="wp-block-paragraph">One of Podman&#8217;s biggest strengths is its <strong>Docker CLI compatibility</strong>.</p>



<pre class="wp-block-code"><code>docker run -it alpine sh
# is identical to
podman run -it alpine sh
</code></pre>



<ul class="wp-block-list">
<li>Podman supports nearly all Docker CLI commands.</li>



<li>Even <code>podman-compose</code> (a replacement for <code>docker-compose</code>) is available.</li>



<li>Transitioning from Docker to Podman is usually as simple as replacing the word “docker” with “podman.”</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4c4.png" alt="📄" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Systemd Integration</h2>



<p class="wp-block-paragraph">Podman integrates directly with <strong><code>systemd</code></strong>, allowing you to manage containers as system services without writing complex unit files manually.</p>



<pre class="wp-block-code"><code>podman generate systemd --name myapp &gt; ~/.config/systemd/user/myapp.service
</code></pre>



<p class="wp-block-paragraph">With this, containers can:</p>



<ul class="wp-block-list">
<li>Auto-start on boot</li>



<li>Restart on failure</li>



<li>Be managed like native Linux services</li>
</ul>



<p class="wp-block-paragraph">Docker can do this too—but only with extra configuration or third-party wrappers.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9f1.png" alt="🧱" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Pod Support: Kubernetes-Ready</h2>



<h3 class="wp-block-heading">Docker</h3>



<ul class="wp-block-list">
<li>No native support for pods</li>



<li>Multi-container apps must be managed with Docker Compose</li>
</ul>



<h3 class="wp-block-heading">Podman</h3>



<ul class="wp-block-list">
<li>Supports <strong>pods</strong> natively, just like Kubernetes</li>



<li>You can run multiple containers sharing the same network and IPC namespace—perfect for mimicking Kubernetes locally</li>
</ul>



<pre class="wp-block-code"><code>podman pod create --name webpod
podman run --pod webpod nginx
podman run --pod webpod redis
</code></pre>



<p class="wp-block-paragraph">You’re essentially spinning up a Kubernetes-like environment on your laptop.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Performance</h2>



<ul class="wp-block-list">
<li><strong>Startup Speed</strong>: Podman starts containers slightly faster, especially in rootless mode, since there&#8217;s no daemon overhead.</li>



<li><strong>System Resources</strong>: Podman consumes fewer resources due to its daemonless architecture.</li>



<li><strong>Stability</strong>: If Docker’s daemon fails, all containers die. Podman avoids this problem.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9f0.png" alt="🧰" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Tooling and Ecosystem</h2>



<h3 class="wp-block-heading">Docker</h3>



<ul class="wp-block-list">
<li>Has a mature, vast ecosystem</li>



<li>Seamless integration with CI/CD tools, IDEs, and Kubernetes</li>



<li>Rich GUI with Docker Desktop</li>
</ul>



<h3 class="wp-block-heading">Podman</h3>



<ul class="wp-block-list">
<li>Lighter, CLI-focused tooling</li>



<li>Supported by <strong>Buildah</strong> (for building images), <strong>Skopeo</strong> (for image management), and <strong>Podman Compose</strong></li>



<li>No official GUI, but Cockpit and third-party tools exist</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4dc.png" alt="📜" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Licensing</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Feature</th><th>Docker</th><th>Podman</th></tr></thead><tbody><tr><td>CLI/Engine</td><td>Apache 2.0</td><td>Apache 2.0</td></tr><tr><td>Desktop Version</td><td>Commercial license for enterprises</td><td>N/A</td></tr><tr><td>Rootless Support</td><td>Optional (not default)</td><td>Default</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f914.png" alt="🤔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> When to Use What?</h2>



<h3 class="wp-block-heading">Choose <strong>Docker</strong> if:</h3>



<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> You&#8217;re working in a team already standardized on Docker<br><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> You need Docker Desktop&#8217;s GUI or Compose integration<br><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> You rely on third-party tools that only support Docker</p>



<h3 class="wp-block-heading">Choose <strong>Podman</strong> if:</h3>



<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> You prioritize security and want <strong>rootless containers</strong><br><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> You want <strong>systemd</strong> integration for persistent services<br><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> You’re running on <strong>Red Hat, Fedora, or Debian-based</strong> servers<br><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> You want better Kubernetes alignment with <strong>pods</strong></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f3c1.png" alt="🏁" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Final Verdict</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Feature</th><th>Docker</th><th>Podman</th></tr></thead><tbody><tr><td>Daemon</td><td>Required</td><td>Not required</td></tr><tr><td>Rootless</td><td>Optional</td><td>Default</td></tr><tr><td>Pod Support</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td></tr><tr><td>systemd Integration</td><td>Limited</td><td>Native</td></tr><tr><td>Kubernetes Alignment</td><td>Moderate</td><td>High</td></tr><tr><td>GUI Tools</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> (Docker Desktop)</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> (CLI-centric)</td></tr><tr><td>Licensing for Desktop</td><td>Paid for some</td><td>Fully open source</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9e0.png" alt="🧠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Bottom line</strong>: Podman is a modern, security-focused, daemonless alternative to Docker. It&#8217;s perfect for developers and sysadmins who want Kubernetes-native behaviors and rootless containerization. Docker, however, remains unmatched in terms of ecosystem maturity and toolchain support.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4dd.png" alt="📝" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Sources</h3>



<ul class="wp-block-list">
<li><a href="https://developers.redhat.com/blog/2020/03/04/what-is-podman-and-why-should-you-care">Red Hat Developer</a></li>



<li><a href="https://podman.io/">Podman Official Docs</a></li>



<li><a href="https://docs.docker.com/">Docker Docs</a></li>



<li><a href="https://spacelift.io/blog/podman-vs-docker">Spacelift Blog</a></li>



<li><a href="https://last9.io/blog/podman-vs-docker">Last9 Engineering</a></li>



<li><a href="https://betterstack.com/community/guides/scaling-docker/podman-vs-docker">BetterStack Guides</a></li>
</ul>
<p>The post <a href="https://hamradio.my/2025/07/docker-vs-podman-the-showdown-in-containerization/">Docker vs Podman: The Showdown in Containerization</a> appeared on <a href="https://hamradio.my">Hamradio.my - Amateur Radio, Tech Insights and Product Reviews</a> by <a href="https://hamradio.my/author/9m2pju/">9M2PJU</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamradio.my/2025/07/docker-vs-podman-the-showdown-in-containerization/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>APRS TNC Web – A Simple, Modern Interface for Your KISS TNC</title>
		<link>https://hamradio.my/2025/07/aprs-tnc-web-a-simple-modern-interface-for-your-kiss-tnc/</link>
					<comments>https://hamradio.my/2025/07/aprs-tnc-web-a-simple-modern-interface-for-your-kiss-tnc/#respond</comments>
		
		<dc:creator><![CDATA[9M2PJU]]></dc:creator>
		<pubDate>Tue, 15 Jul 2025 09:29:59 +0000</pubDate>
				<category><![CDATA[amateur radio]]></category>
		<category><![CDATA[APRS]]></category>
		<category><![CDATA[automatic packet reporting system]]></category>
		<category><![CDATA[containerization]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[ham radio]]></category>
		<category><![CDATA[KISS TNC]]></category>
		<category><![CDATA[radio amatur]]></category>
		<category><![CDATA[aprs decoder online]]></category>
		<category><![CDATA[aprs frame decoder]]></category>
		<category><![CDATA[aprs message web interface]]></category>
		<category><![CDATA[aprs over kiss tcp]]></category>
		<category><![CDATA[aprs terminal node controller]]></category>
		<category><![CDATA[aprs tnc web gui]]></category>
		<category><![CDATA[aprs web gui]]></category>
		<category><![CDATA[aprs web interface]]></category>
		<category><![CDATA[aprs web ui]]></category>
		<category><![CDATA[aprsis32 alternative]]></category>
		<category><![CDATA[cross platform aprs]]></category>
		<category><![CDATA[docker aprs project]]></category>
		<category><![CDATA[docker aprs tnc]]></category>
		<category><![CDATA[dockerized aprs software]]></category>
		<category><![CDATA[ham radio aprs tools]]></category>
		<category><![CDATA[ham radio packet decoder]]></category>
		<category><![CDATA[kiss tnc decoder]]></category>
		<category><![CDATA[kiss tnc web interface]]></category>
		<category><![CDATA[lightweight aprs client]]></category>
		<category><![CDATA[linux aprs tnc]]></category>
		<category><![CDATA[modern aprs alternative]]></category>
		<category><![CDATA[portable aprs tnc software]]></category>
		<category><![CDATA[raspberry pi aprs docker]]></category>
		<category><![CDATA[self hosted aprs tool]]></category>
		<category><![CDATA[simple aprs monitor]]></category>
		<category><![CDATA[tnc kiss mode interface]]></category>
		<category><![CDATA[tnc kiss tcp ip]]></category>
		<category><![CDATA[view aprs traffic online]]></category>
		<category><![CDATA[web aprs messages]]></category>
		<category><![CDATA[web aprs monitoring]]></category>
		<guid isPermaLink="false">https://hamradio.my/?p=8376</guid>

					<description><![CDATA[<p>If you&#8217;re like many amateur radio operators, you&#8217;ve probably tinkered with APRS (Automatic Packet Reporting System) at some point. It&#8217;s a brilliant way to track stations, weather reports, messages, and more over the air. But most of the software out there is either old, clunky, or designed primarily for Windows. That’s where APRS TNC Web [&#8230;]</p>
<p>The post <a href="https://hamradio.my/2025/07/aprs-tnc-web-a-simple-modern-interface-for-your-kiss-tnc/">APRS TNC Web – A Simple, Modern Interface for Your KISS TNC</a> appeared on <a href="https://hamradio.my">Hamradio.my - Amateur Radio, Tech Insights and Product Reviews</a> by <a href="https://hamradio.my/author/9m2pju/">9M2PJU</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">If you&#8217;re like many amateur radio operators, you&#8217;ve probably tinkered with APRS (Automatic Packet Reporting System) at some point. It&#8217;s a brilliant way to track stations, weather reports, messages, and more over the air. But most of the software out there is either old, clunky, or designed primarily for Windows.</p>



<p class="wp-block-paragraph">That’s where <strong>APRS TNC Web</strong> comes in.</p>



<h3 class="wp-block-heading">What Is APRS TNC Web?</h3>



<p class="wp-block-paragraph"><strong>APRS TNC Web</strong> is a lightweight, Docker-powered web application that gives you a clean, modern interface to interact with your APRS traffic using any KISS-compatible TNC (Terminal Node Controller). Whether you&#8217;re on a Raspberry Pi, a server in your shack, or just your laptop, this tool makes APRS monitoring and messaging effortless.</p>



<h3 class="wp-block-heading">Why Was This Built?</h3>



<p class="wp-block-paragraph">The motivation is simple: a lot of us want to keep track of local APRS traffic or send a quick message—but without booting up a heavy GUI or running Windows-only software like APRSIS32. <strong>Damian (SQ2CPA)</strong> created this project with usability in mind, and it shows.</p>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f527.png" alt="🔧" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Features at a Glance</h3>



<ul class="wp-block-list">
<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Connects to any KISS TNC over TCP/IP</strong></li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Human-readable decoding of APRS frames</strong></li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Raw frame display for deeper analysis</strong></li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Send and receive APRS messages from your browser</strong></li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Fully Dockerized: Runs with a single command</strong></li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Cross-platform: Access from any device on your LAN</strong></li>
</ul>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a1.png" alt="⚡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Quick Setup (Yes, Really!)</h3>



<p class="wp-block-paragraph">If you have Docker installed, you&#8217;re already halfway there.</p>



<ol class="wp-block-list">
<li>Clone the repo or create a project folder</li>



<li>Copy the example <code>.env</code> and <code>docker-compose.yaml</code> into the directory</li>



<li>Customize your <code>.env</code> file (port, DB settings, TNC host/port)</li>



<li>Run:</li>
</ol>



<pre class="wp-block-code"><code>docker compose up -d
</code></pre>



<p class="wp-block-paragraph">That’s it. Visit <code>http://&lt;your-device-ip&gt;:8000</code> and you’re live.</p>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f5fa.png" alt="🗺" class="wp-smiley" style="height: 1em; max-height: 1em;" /> What You’ll See</h3>



<p class="wp-block-paragraph">Once it&#8217;s running, APRS TNC Web gives you a real-time view of decoded APRS packets. Frames appear instantly in a sleek interface, with options to toggle raw views and message interfaces.</p>



<p class="wp-block-paragraph">You can go to <strong>Settings</strong> to configure your callsign, SSID, and KISS device IP. After that, you&#8217;re ready to send and receive APRS messages directly through your TNC.</p>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f6e0.png" alt="🛠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> What’s Missing (For Now)</h3>



<p class="wp-block-paragraph">The current release is focused and stable—but intentionally lean. Some advanced features like:</p>



<ul class="wp-block-list">
<li><strong>Object or item beaconing</strong></li>



<li><strong>Real-time maps</strong></li>



<li><strong>Advanced filtering or analytics</strong></li>
</ul>



<p class="wp-block-paragraph">&#8230;are not yet included, but may come in future versions. If you&#8217;re a dev with an itch to scratch, contributions are very welcome!</p>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f399.png" alt="🎙" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Final Thoughts</h3>



<p class="wp-block-paragraph">As an active ham, I found this tool refreshing. It strips APRS down to its essentials without losing the things we actually use. It&#8217;s also ideal for club deployments or APRS field kits, where simplicity and reliability matter.</p>



<p class="wp-block-paragraph">If you&#8217;re tired of fighting with outdated interfaces or installing bloated software just to decode a few packets, give <strong>APRS TNC Web</strong> a try.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Project repo:</strong> <a href="https://github.com/SQ2CPA/aprs-tnc-web">github.com/SQ2CPA/aprs-tnc-web</a><br><strong>Author:</strong> Damian, SQ2CPA<br><strong>License:</strong> MIT</p>
</blockquote>
<p>The post <a href="https://hamradio.my/2025/07/aprs-tnc-web-a-simple-modern-interface-for-your-kiss-tnc/">APRS TNC Web – A Simple, Modern Interface for Your KISS TNC</a> appeared on <a href="https://hamradio.my">Hamradio.my - Amateur Radio, Tech Insights and Product Reviews</a> by <a href="https://hamradio.my/author/9m2pju/">9M2PJU</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamradio.my/2025/07/aprs-tnc-web-a-simple-modern-interface-for-your-kiss-tnc/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>KitchenOwl: Your Self-Hosted Grocery List and Recipe Manager</title>
		<link>https://hamradio.my/2025/07/kitchenowl-your-self-hosted-grocery-list-and-recipe-manager/</link>
					<comments>https://hamradio.my/2025/07/kitchenowl-your-self-hosted-grocery-list-and-recipe-manager/#respond</comments>
		
		<dc:creator><![CDATA[9M2PJU]]></dc:creator>
		<pubDate>Mon, 07 Jul 2025 17:52:04 +0000</pubDate>
				<category><![CDATA[containerization]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[self hosted]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[expense tracker]]></category>
		<category><![CDATA[grocery list]]></category>
		<category><![CDATA[home management]]></category>
		<category><![CDATA[kitchenowl]]></category>
		<category><![CDATA[meal planner]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[privacy focused]]></category>
		<category><![CDATA[recipe manager]]></category>
		<guid isPermaLink="false">https://hamradio.my/?p=7594</guid>

					<description><![CDATA[<p>Managing your kitchen just got a lot easier! KitchenOwl is a modern, open-source, self-hosted solution for handling grocery lists, recipes, meal planning, and even tracking household expenses — all from one sleek and user-friendly interface. Whether you&#8217;re managing meals for yourself or your entire family, KitchenOwl gives you full control with privacy and collaboration at [&#8230;]</p>
<p>The post <a href="https://hamradio.my/2025/07/kitchenowl-your-self-hosted-grocery-list-and-recipe-manager/">KitchenOwl: Your Self-Hosted Grocery List and Recipe Manager</a> appeared on <a href="https://hamradio.my">Hamradio.my - Amateur Radio, Tech Insights and Product Reviews</a> by <a href="https://hamradio.my/author/9m2pju/">9M2PJU</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading"></h2>



<p class="wp-block-paragraph">Managing your kitchen just got a lot easier! <strong>KitchenOwl</strong> is a modern, open-source, self-hosted solution for handling grocery lists, recipes, meal planning, and even tracking household expenses — all from one sleek and user-friendly interface. Whether you&#8217;re managing meals for yourself or your entire family, KitchenOwl gives you full control with privacy and collaboration at its core.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f31f.png" alt="🌟" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Key Features</h2>



<ul class="wp-block-list">
<li><strong>Grocery List Manager</strong><br>Categorized grocery lists with icons and quantities help you shop faster and smarter.</li>



<li><strong>Recipe Organizer</strong><br>Save, edit, and categorize your favorite recipes. You can even add ingredients from a recipe directly into your grocery list.</li>



<li><strong>Meal Planning</strong><br>Plan meals for the week with ease and link recipes to your calendar for a smoother kitchen workflow.</li>



<li><strong>Expense Tracker</strong><br>Track how much you spend on groceries and view expenses per shopping trip.</li>



<li><strong>Multi-User Support</strong><br>Perfect for households — everyone can share access to lists, plans, and recipes in real time.</li>



<li><strong>Cross-Platform Access</strong><br>Use it on any web browser or mobile device. KitchenOwl supports Android, iOS (via TestFlight), and has a web interface for desktops.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f6e0.png" alt="🛠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> How to Self-Host KitchenOwl Using Docker</h2>



<p class="wp-block-paragraph">Hosting KitchenOwl on your own server or VPS gives you full control over your data. Here’s how to do it in just a few steps:</p>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f527.png" alt="🔧" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Prerequisites</h3>



<ul class="wp-block-list">
<li>A Linux server (can be local or cloud-hosted)</li>



<li>Docker &amp; Docker Compose installed</li>



<li>Basic terminal knowledge</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4c2.png" alt="📂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Step 1: Create Docker Compose File</h3>



<p class="wp-block-paragraph">Create a new file called <code>docker-compose.yml</code>:</p>



<pre class="wp-block-code"><code>version: "3"
services:
  front:
    image: tombursch/kitchenowl-web:latest
    restart: unless-stopped
    ports:
      - "80:80"
    depends_on:
      - back
  back:
    image: tombursch/kitchenowl-backend:latest
    restart: unless-stopped
    environment:
      - JWT_SECRET_KEY=PLEASE_CHANGE_ME
    volumes:
      - kitchenowl_data:/data

volumes:
  kitchenowl_data:
</code></pre>



<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f449.png" alt="👉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Important</strong>: Replace <code>PLEASE_CHANGE_ME</code> with a secure, random string to act as your JWT secret key.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Step 2: Start the Service</h3>



<p class="wp-block-paragraph">Run the following command in your terminal where the file is located:</p>



<pre class="wp-block-code"><code>docker-compose up -d
</code></pre>



<p class="wp-block-paragraph">This will download the necessary images and start KitchenOwl as a background service.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f310.png" alt="🌐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Step 3: Open in Browser</h3>



<p class="wp-block-paragraph">After setup is complete, visit:</p>



<pre class="wp-block-code"><code>http:&#47;&#47;localhost
</code></pre>



<p class="wp-block-paragraph">If you&#8217;re using a remote server, replace <code>localhost</code> with your server&#8217;s IP address or domain name.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4f1.png" alt="📱" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Access Anywhere</h2>



<p class="wp-block-paragraph">KitchenOwl is cross-platform:</p>



<ul class="wp-block-list">
<li><strong>Web</strong>: Use it in any modern browser</li>



<li><strong>Android</strong>: Available via Google Play and F-Droid</li>



<li><strong>iOS</strong>: Access through Apple TestFlight</li>



<li><strong>Desktop</strong>: Use the browser or wrap in Electron for a native feel</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f512.png" alt="🔒" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Why Self-Host?</h2>



<p class="wp-block-paragraph">Self-hosting KitchenOwl ensures that your personal data stays private, free from third-party tracking or restrictions. With multi-user support, it&#8217;s perfect for families or shared homes.</p>



<ul class="wp-block-list">
<li>Own your data</li>



<li>Customize it to your needs</li>



<li>No subscription fees</li>



<li>Access anytime, anywhere</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Final Thoughts</h2>



<p class="wp-block-paragraph">KitchenOwl is more than just a grocery app — it&#8217;s a full-featured kitchen assistant designed with privacy, usability, and flexibility in mind. Whether you&#8217;re a techie who loves Docker or someone just looking to simplify kitchen life, KitchenOwl is a brilliant tool to have.</p>
<p>The post <a href="https://hamradio.my/2025/07/kitchenowl-your-self-hosted-grocery-list-and-recipe-manager/">KitchenOwl: Your Self-Hosted Grocery List and Recipe Manager</a> appeared on <a href="https://hamradio.my">Hamradio.my - Amateur Radio, Tech Insights and Product Reviews</a> by <a href="https://hamradio.my/author/9m2pju/">9M2PJU</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamradio.my/2025/07/kitchenowl-your-self-hosted-grocery-list-and-recipe-manager/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Master Your IT Inventory with Snipe-IT: A Powerful, Open-Source Asset Management System</title>
		<link>https://hamradio.my/2025/07/master-your-it-inventory-with-snipe-it-a-powerful-open-source-asset-management-system/</link>
					<comments>https://hamradio.my/2025/07/master-your-it-inventory-with-snipe-it-a-powerful-open-source-asset-management-system/#respond</comments>
		
		<dc:creator><![CDATA[9M2PJU]]></dc:creator>
		<pubDate>Fri, 04 Jul 2025 17:21:39 +0000</pubDate>
				<category><![CDATA[asset management]]></category>
		<category><![CDATA[containerization]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[self hosted]]></category>
		<category><![CDATA[asset_tracking]]></category>
		<category><![CDATA[cloud_hosted_service]]></category>
		<category><![CDATA[devops_tools]]></category>
		<category><![CDATA[digital_transformation]]></category>
		<category><![CDATA[docker_tutorial]]></category>
		<category><![CDATA[hardware_inventory]]></category>
		<category><![CDATA[inventory_management]]></category>
		<category><![CDATA[it_asset_management]]></category>
		<category><![CDATA[linux_server_admin]]></category>
		<category><![CDATA[network_admin]]></category>
		<category><![CDATA[open_source]]></category>
		<category><![CDATA[self_hosted_solution]]></category>
		<category><![CDATA[smbs]]></category>
		<category><![CDATA[snipe_it]]></category>
		<category><![CDATA[software_license_management]]></category>
		<category><![CDATA[software_tools]]></category>
		<category><![CDATA[system_admin]]></category>
		<category><![CDATA[tech_management]]></category>
		<category><![CDATA[tech_ops]]></category>
		<guid isPermaLink="false">https://hamradio.my/?p=7585</guid>

					<description><![CDATA[<p>Keeping track of IT assets can quickly become overwhelming—especially when you&#8217;re dealing with laptops, monitors, licenses, accessories, consumables, and more. That’s where Snipe-IT shines. Designed with IT teams in mind, Snipe-IT helps you efficiently manage all your assets in one central dashboard—whether you&#8217;re an SME, enterprise, educational institution, or a non-profit. This guide introduces Snipe-IT [&#8230;]</p>
<p>The post <a href="https://hamradio.my/2025/07/master-your-it-inventory-with-snipe-it-a-powerful-open-source-asset-management-system/">Master Your IT Inventory with Snipe-IT: A Powerful, Open-Source Asset Management System</a> appeared on <a href="https://hamradio.my">Hamradio.my - Amateur Radio, Tech Insights and Product Reviews</a> by <a href="https://hamradio.my/author/9m2pju/">9M2PJU</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading"></h1>



<p class="wp-block-paragraph">Keeping track of IT assets can quickly become overwhelming—especially when you&#8217;re dealing with laptops, monitors, licenses, accessories, consumables, and more. That’s where <strong>Snipe-IT</strong> shines. Designed with IT teams in mind, Snipe-IT helps you efficiently manage all your assets in one central dashboard—whether you&#8217;re an SME, enterprise, educational institution, or a non-profit.</p>



<p class="wp-block-paragraph">This guide introduces Snipe-IT and walks you through installing it on your own server, turning your team into asset management pros in no time.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f31f.png" alt="🌟" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Why Choose Snipe-IT?</h2>



<p class="wp-block-paragraph">Snipe-IT is more than just a spreadsheet replacement. It’s a full-featured, web-based, and open-source asset management system. Some standout features:</p>



<ul class="wp-block-list">
<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Free and Open Source</strong>: Host it yourself and customize as needed.</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Modern UI</strong>: Clean interface with a responsive layout.</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Asset Assignment</strong>: Assign devices to users and track histories.</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>License Management</strong>: Keep tabs on software expiration dates.</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Consumables &amp; Accessories</strong>: Track cables, keyboards, and other smaller items.</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Multi-language support</strong>: Over 55 languages supported.</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>REST API</strong>: Integrate with your existing tools and automation.</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>LDAP/AD support</strong>: Easy user syncing.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2699.png" alt="⚙" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Tutorial: How to Self-Host Snipe-IT on a Linux Server</h2>



<p class="wp-block-paragraph">Let’s walk through how to set up Snipe-IT on your own server using Docker Compose. This method is easy to maintain and works great on Debian, Ubuntu, or CentOS.</p>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f527.png" alt="🔧" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Step 1: Install Docker and Docker Compose</h3>



<pre class="wp-block-code"><code>curl -fsSL https://get.docker.com -o get-docker.sh
</code></pre>



<p class="wp-block-paragraph">Enable Docker at startup:</p>



<pre class="wp-block-code"><code>sudo systemctl enable docker
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4c1.png" alt="📁" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Step 2: Create a Docker Compose File</h3>



<p class="wp-block-paragraph">Make a folder for Snipe-IT:</p>



<pre class="wp-block-code"><code>mkdir ~/snipeit &amp;&amp; cd ~/snipeit
</code></pre>



<p class="wp-block-paragraph">Then create a <code>docker-compose.yml</code>:</p>



<pre class="wp-block-code"><code># Compose file for production.

volumes:
  db_data:
  storage:

services:
  app:
    image: snipe/snipe-it:${APP_VERSION:-latest}
    restart: unless-stopped
    volumes:
      - storage:/var/lib/snipeit
    ports:
      - "${APP_PORT:-8000}:80"
    depends_on:
      db:
        condition: service_healthy
        restart: true
    env_file:
      - .env

  db:
    image: mariadb:11.4.7
    restart: unless-stopped
    volumes:
      - db_data:/var/lib/mysql
    environment:
      MYSQL_DATABASE: ${DB_DATABASE}
      MYSQL_USER: ${DB_USERNAME}
      MYSQL_PASSWORD: ${DB_PASSWORD}
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
    healthcheck:
      # https://mariadb.com/kb/en/using-healthcheck-sh/#compose-file-example
      test: &#91;"CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
      interval: 5s
      timeout: 1s
      retries: 5
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Step 3: Launch Snipe-IT</h3>



<p class="wp-block-paragraph">Start the containers:</p>



<pre class="wp-block-code"><code>docker-compose up -d
</code></pre>



<p class="wp-block-paragraph">Then, access Snipe-IT via your browser:</p>



<pre class="wp-block-code"><code>http:&#47;&#47;your-server-ip:8000
</code></pre>



<p class="wp-block-paragraph">Follow the setup wizard to configure admin user and organization info.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f39b.png" alt="🎛" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Post-Installation Tips</h2>



<ul class="wp-block-list">
<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Set up categories for your equipment (e.g. laptops, desktops, printers).</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Create user accounts or import from LDAP/Active Directory.</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Assign assets with status updates, warranty info, and custom notes.</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Enable email notifications for expiring warranties or licenses.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f468-200d-1f4bc.png" alt="👨‍💼" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Who Should Use Snipe-IT?</h2>



<ul class="wp-block-list">
<li><strong>Startups</strong>: Manage growing teams and hardware efficiently.</li>



<li><strong>Schools &amp; Universities</strong>: Keep track of laptops issued to students.</li>



<li><strong>Non-Profits</strong>: Manage donated equipment and reduce waste.</li>



<li><strong>IT Departments</strong>: Maintain audit trails and simplify inventory checks.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4e6.png" alt="📦" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Bonus: Cloud-Hosted Option</h2>



<p class="wp-block-paragraph">Don’t want to manage your own server? The official team offers affordable cloud-hosted Snipe-IT plans. It’s perfect if you want to hit the ground running without worrying about backend maintenance.</p>



<p class="wp-block-paragraph">Visit the official site to sign up: <a href="https://snipeitapp.com/">https://snipeitapp.com</a></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9e9.png" alt="🧩" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Extend Snipe-IT with the API</h2>



<p class="wp-block-paragraph">Snipe-IT’s RESTful API allows developers to:</p>



<ul class="wp-block-list">
<li>Automate new asset creation</li>



<li>Sync users from HR tools</li>



<li>Generate reports and dashboards</li>



<li>Connect with other IT systems</li>
</ul>



<p class="wp-block-paragraph">With powerful integrations, Snipe-IT becomes a central piece of your IT toolkit.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f510.png" alt="🔐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Secure &amp; Compliant</h2>



<p class="wp-block-paragraph">Snipe-IT supports:</p>



<ul class="wp-block-list">
<li>Two-factor authentication (2FA)</li>



<li>HTTPS</li>



<li>Secure password hashing (bcrypt)</li>



<li>User audit trails</li>
</ul>



<p class="wp-block-paragraph">This ensures your asset data is protected and audit-ready.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4dd.png" alt="📝" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Final Thoughts</h2>



<p class="wp-block-paragraph">Snipe-IT is a powerhouse for IT asset management, giving you full control and visibility over your hardware and software landscape. Whether you&#8217;re looking to declutter your tech life or streamline an enterprise setup, Snipe-IT is the tool to do it—clean, reliable, and absolutely yours.</p>
<p>The post <a href="https://hamradio.my/2025/07/master-your-it-inventory-with-snipe-it-a-powerful-open-source-asset-management-system/">Master Your IT Inventory with Snipe-IT: A Powerful, Open-Source Asset Management System</a> appeared on <a href="https://hamradio.my">Hamradio.my - Amateur Radio, Tech Insights and Product Reviews</a> by <a href="https://hamradio.my/author/9m2pju/">9M2PJU</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamradio.my/2025/07/master-your-it-inventory-with-snipe-it-a-powerful-open-source-asset-management-system/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Kimai: The Open-Source Time Tracking Powerhouse for Freelancers and Teams</title>
		<link>https://hamradio.my/2025/07/kimai-the-open-source-time-tracking-powerhouse-for-freelancers-and-teams/</link>
					<comments>https://hamradio.my/2025/07/kimai-the-open-source-time-tracking-powerhouse-for-freelancers-and-teams/#respond</comments>
		
		<dc:creator><![CDATA[9M2PJU]]></dc:creator>
		<pubDate>Thu, 03 Jul 2025 17:17:23 +0000</pubDate>
				<category><![CDATA[containerization]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[time management]]></category>
		<category><![CDATA[agile_management]]></category>
		<category><![CDATA[business_software]]></category>
		<category><![CDATA[freelancer_tools]]></category>
		<category><![CDATA[invoicing_software]]></category>
		<category><![CDATA[kimai]]></category>
		<category><![CDATA[open_source]]></category>
		<category><![CDATA[productivity_tool]]></category>
		<category><![CDATA[project_management]]></category>
		<category><![CDATA[remote_work]]></category>
		<category><![CDATA[self_hosted]]></category>
		<category><![CDATA[software_development]]></category>
		<category><![CDATA[team_collaboration]]></category>
		<category><![CDATA[time_management]]></category>
		<category><![CDATA[time_tracking]]></category>
		<category><![CDATA[work_tracking]]></category>
		<guid isPermaLink="false">https://hamradio.my/?p=7582</guid>

					<description><![CDATA[<p>In today&#8217;s fast-paced digital landscape, efficient time management is crucial for productivity and profitability. Enter Kimai, an open-source, web-based time-tracking application designed to cater to freelancers, small businesses, and large enterprises alike. Whether you&#8217;re a solo developer or managing a team, Kimai offers a robust solution to track work hours, manage projects, and generate insightful [&#8230;]</p>
<p>The post <a href="https://hamradio.my/2025/07/kimai-the-open-source-time-tracking-powerhouse-for-freelancers-and-teams/">Kimai: The Open-Source Time Tracking Powerhouse for Freelancers and Teams</a> appeared on <a href="https://hamradio.my">Hamradio.my - Amateur Radio, Tech Insights and Product Reviews</a> by <a href="https://hamradio.my/author/9m2pju/">9M2PJU</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading"></h1>



<p class="wp-block-paragraph">In today&#8217;s fast-paced digital landscape, efficient time management is crucial for productivity and profitability. Enter <strong>Kimai</strong>, an open-source, web-based time-tracking application designed to cater to freelancers, small businesses, and large enterprises alike. Whether you&#8217;re a solo developer or managing a team, Kimai offers a robust solution to track work hours, manage projects, and generate insightful reports—all from a user-friendly interface.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f31f.png" alt="🌟" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Why Choose Kimai?</h2>



<h3 class="wp-block-heading">1. <strong>Versatility Across Industries</strong></h3>



<p class="wp-block-paragraph">Kimai isn&#8217;t just for developers; it&#8217;s a versatile tool that adapts to various industries. From consulting firms to creative agencies, Kimai&#8217;s flexible structure allows for customized workflows, making it a go-to solution for diverse professional needs.</p>



<h3 class="wp-block-heading">2. <strong>Open-Source Freedom</strong></h3>



<p class="wp-block-paragraph">Being open-source means you have the freedom to customize Kimai to fit your specific requirements. With a vibrant community contributing to its development, Kimai continuously evolves, ensuring it stays aligned with user needs and technological advancements.</p>



<h3 class="wp-block-heading">3. <strong>Self-Hosting Capabilities</strong></h3>



<p class="wp-block-paragraph">For those who prioritize data privacy and control, Kimai offers self-hosting options. This feature is particularly beneficial for organizations with strict data compliance requirements, allowing them to maintain complete control over their time-tracking data.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f6e0.png" alt="🛠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Key Features</h2>



<h3 class="wp-block-heading">1. <strong>Intuitive Time Tracking</strong></h3>



<p class="wp-block-paragraph">Kimai simplifies the process of tracking work hours. With its user-friendly interface, you can start and stop timers with ease, assign time entries to specific projects or clients, and add detailed notes for clarity.</p>



<h3 class="wp-block-heading">2. <strong>Comprehensive Reporting</strong></h3>



<p class="wp-block-paragraph">Generate detailed reports to analyze productivity, project progress, and resource allocation. Kimai&#8217;s reporting tools help you make informed decisions and optimize workflows.</p>



<h3 class="wp-block-heading">3. <strong>Invoicing and Expense Management</strong></h3>



<p class="wp-block-paragraph">Streamline your billing process with Kimai&#8217;s invoicing features. Create customizable invoices based on tracked time and expenses, ensuring accurate and timely billing for your clients.</p>



<h3 class="wp-block-heading">4. <strong>Multi-User and Role Management</strong></h3>



<p class="wp-block-paragraph">Kimai supports multiple users with customizable roles and permissions. This feature is essential for teams, allowing administrators to control access levels and maintain data integrity.</p>



<h3 class="wp-block-heading">5. <strong>Plugin Support and API Integration</strong></h3>



<p class="wp-block-paragraph">Extend Kimai&#8217;s functionality with a variety of plugins or integrate it with other tools using its robust API. This flexibility ensures that Kimai can adapt to your existing tech stack and workflows.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4f1.png" alt="📱" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Mobile Accessibility</h2>



<p class="wp-block-paragraph">Kimai&#8217;s responsive design ensures that you can track time on-the-go from any device, be it a smartphone, tablet, or desktop. This mobility ensures that your time tracking is uninterrupted, regardless of where you are.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f510.png" alt="🔐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Security and Compliance</h2>



<p class="wp-block-paragraph">Security is a top priority for Kimai. With features like two-factor authentication, audit logs, and compliance with data protection regulations, you can trust that your data is secure and handled responsibly.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Getting Started with Kimai</h2>



<h3 class="wp-block-heading">1. <strong>Installation</strong></h3>



<p class="wp-block-paragraph">Kimai offers straightforward installation processes for both self-hosted and cloud-based setups. Comprehensive documentation guides you through each step, ensuring a smooth setup experience.</p>



<h3 class="wp-block-heading">2. <strong>Customization</strong></h3>



<p class="wp-block-paragraph">Tailor Kimai to your needs by configuring settings, installing plugins, and integrating with other tools. Whether you need specific reporting formats or unique workflows, Kimai&#8217;s flexibility has you covered.</p>



<h3 class="wp-block-heading">3. <strong>Community Support</strong></h3>



<p class="wp-block-paragraph">Join Kimai&#8217;s active community forums to seek assistance, share experiences, and contribute to the platform&#8217;s growth. The collaborative environment ensures that help is always available when needed.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4a1.png" alt="💡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Use Cases</h2>



<ul class="wp-block-list">
<li><strong>Freelancers</strong>: Track billable hours, manage multiple clients, and generate invoices with ease.</li>



<li><strong>Agencies</strong>: Monitor team productivity, allocate resources efficiently, and maintain transparent client billing.</li>



<li><strong>Enterprises</strong>: Implement organization-wide time tracking, integrate with existing systems, and ensure compliance with internal policies.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4cc.png" alt="📌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Conclusion</h2>



<p class="wp-block-paragraph">Kimai stands out as a powerful, flexible, and user-friendly time-tracking solution. Its open-source nature, combined with a rich feature set and active community, makes it an excellent choice for individuals and organizations aiming to optimize their time management processes.</p>
<p>The post <a href="https://hamradio.my/2025/07/kimai-the-open-source-time-tracking-powerhouse-for-freelancers-and-teams/">Kimai: The Open-Source Time Tracking Powerhouse for Freelancers and Teams</a> appeared on <a href="https://hamradio.my">Hamradio.my - Amateur Radio, Tech Insights and Product Reviews</a> by <a href="https://hamradio.my/author/9m2pju/">9M2PJU</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamradio.my/2025/07/kimai-the-open-source-time-tracking-powerhouse-for-freelancers-and-teams/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>code-server: Unlocking the Power of VS Code in Your Browser</title>
		<link>https://hamradio.my/2025/07/code-server-unlocking-the-power-of-vs-code-in-your-browser/</link>
					<comments>https://hamradio.my/2025/07/code-server-unlocking-the-power-of-vs-code-in-your-browser/#respond</comments>
		
		<dc:creator><![CDATA[9M2PJU]]></dc:creator>
		<pubDate>Wed, 02 Jul 2025 17:13:08 +0000</pubDate>
				<category><![CDATA[containerization]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Caddy]]></category>
		<category><![CDATA[cloudcomputing]]></category>
		<category><![CDATA[clouddevelopment]]></category>
		<category><![CDATA[cloudserver]]></category>
		<category><![CDATA[code-server]]></category>
		<category><![CDATA[coders]]></category>
		<category><![CDATA[coderslife]]></category>
		<category><![CDATA[developerproductivity]]></category>
		<category><![CDATA[developerworkflow]]></category>
		<category><![CDATA[devops]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[dockercontainer]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[LetsEncrypt]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[macos]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[remoteaccess]]></category>
		<category><![CDATA[remoteIDE]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[selfhosted]]></category>
		<category><![CDATA[softwaredevelopment]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[techsavvy]]></category>
		<category><![CDATA[terminal]]></category>
		<category><![CDATA[vscode]]></category>
		<category><![CDATA[webdevelopment]]></category>
		<guid isPermaLink="false">https://hamradio.my/?p=7579</guid>

					<description><![CDATA[<p>In the modern development landscape, flexibility and accessibility are paramount. code-server offers a solution that brings the renowned Visual Studio Code (VS Code) experience directly to your browser, enabling developers to code from anywhere, on any device, without compromising on functionality. 🚀 What Is code-server? code-server is an open-source project developed by Coder that allows [&#8230;]</p>
<p>The post <a href="https://hamradio.my/2025/07/code-server-unlocking-the-power-of-vs-code-in-your-browser/">code-server: Unlocking the Power of VS Code in Your Browser</a> appeared on <a href="https://hamradio.my">Hamradio.my - Amateur Radio, Tech Insights and Product Reviews</a> by <a href="https://hamradio.my/author/9m2pju/">9M2PJU</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">In the modern development landscape, flexibility and accessibility are paramount. <strong>code-server</strong> offers a solution that brings the renowned Visual Studio Code (VS Code) experience directly to your browser, enabling developers to code from anywhere, on any device, without compromising on functionality.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> What Is code-server?</h2>



<p class="wp-block-paragraph"><strong>code-server</strong> is an open-source project developed by Coder that allows you to run VS Code on a remote server and access it through a web browser. This setup provides a consistent development environment that can be accessed from any device, be it a laptop, tablet, or even a smartphone. By leveraging the power of cloud servers, code-server enables faster tests, compilations, and downloads, all while preserving your local device&#8217;s resources.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f527.png" alt="🔧" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Key Features of code-server</h2>



<ul class="wp-block-list">
<li><strong>VS Code in the Browser</strong>: Experience the full functionality of VS Code, including IntelliSense, debugging, and Git integration, all within your browser.</li>



<li><strong>Remote Development</strong>: Develop on powerful cloud servers, reducing the load on your local machine and enabling resource-intensive tasks.</li>



<li><strong>Consistent Environment</strong>: Maintain a uniform development setup across different devices, ensuring consistency and reducing the &#8220;it works on my machine&#8221; problem.</li>



<li><strong>Extension Support</strong>: Install and use most VS Code extensions, enhancing your development workflow.</li>



<li><strong>Secure Access</strong>: Access your development environment securely from anywhere, with options for HTTPS and authentication.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f6e0.png" alt="🛠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Installation Guide</h2>



<p class="wp-block-paragraph">Setting up code-server is straightforward. The easiest way to install code-server is to use the official install script, which automates most of the process. This script attempts to use the system package manager if possible.</p>



<h3 class="wp-block-heading">For Linux, macOS, and FreeBSD:</h3>



<p class="wp-block-paragraph">Run the following command in your terminal:</p>



<pre class="wp-block-code"><code>curl -fsSL https://code-server.dev/install.sh | sh
</code></pre>



<p class="wp-block-paragraph">After installation, you can start code-server by running:</p>



<pre class="wp-block-code"><code>code-server
</code></pre>



<p class="wp-block-paragraph">By default, code-server will be accessible at <code>http://127.0.0.1:8080</code>, and your password will be stored in <code>~/.config/code-server/config.yaml</code>.</p>



<h3 class="wp-block-heading">For Docker Users:</h3>



<p class="wp-block-paragraph">You can also run code-server in a Docker container:</p>



<pre class="wp-block-code"><code>docker run -it --name code-server -p 127.0.0.1:8080:8080 \
  -v "$HOME/.local:/home/coder/.local" \
  -v "$HOME/.config:/home/coder/.config" \
  -v "$PWD:/home/coder/project" \
  -u "$(id -u):$(id -g)" \
  -e "DOCKER_USER=$USER" \
  codercom/code-server:latest
</code></pre>



<p class="wp-block-paragraph">This command mounts your current directory into the container and forwards your UID/GID so that all file system operations occur as your user outside the container.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f510.png" alt="🔐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Securing Your code-server Instance</h2>



<p class="wp-block-paragraph">To expose code-server securely to the internet, consider the following methods:</p>



<ul class="wp-block-list">
<li><strong>Port Forwarding via SSH</strong>: If you have an SSH server on your remote machine, you can forward local ports to access code-server securely.</li>



<li><strong>Using Let&#8217;s Encrypt with Caddy or NGINX</strong>: For a more robust solution, you can set up HTTPS using Let&#8217;s Encrypt with web servers like Caddy or NGINX.</li>



<li><strong>Self-Signed Certificates</strong>: For internal use or testing, you can generate and use self-signed certificates to enable HTTPS.</li>
</ul>



<p class="wp-block-paragraph">These methods ensure that your code-server instance is accessible securely from anywhere.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f504.png" alt="🔄" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Keeping code-server Up-to-Date</h2>



<p class="wp-block-paragraph">To ensure you have the latest features and security patches, it&#8217;s important to keep code-server updated. You can check for the latest releases on the <a href="https://github.com/coder/code-server/releases">GitHub Releases Page</a>. To update, simply run the install script again:</p>



<pre class="wp-block-code"><code>curl -fsSL https://code-server.dev/install.sh | sh
</code></pre>



<p class="wp-block-paragraph">This will download and install the latest version of code-server.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9e0.png" alt="🧠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Final Thoughts</h2>



<p class="wp-block-paragraph">code-server empowers developers by providing a powerful, browser-based development environment that can be accessed from anywhere. Whether you&#8217;re working from a laptop, tablet, or smartphone, code-server ensures that you have a consistent and secure development setup at your fingertips.</p>



<p class="wp-block-paragraph">By leveraging cloud servers, code-server enables faster development cycles and reduces the load on local machines, making it an ideal solution for modern development workflows.</p>
<p>The post <a href="https://hamradio.my/2025/07/code-server-unlocking-the-power-of-vs-code-in-your-browser/">code-server: Unlocking the Power of VS Code in Your Browser</a> appeared on <a href="https://hamradio.my">Hamradio.my - Amateur Radio, Tech Insights and Product Reviews</a> by <a href="https://hamradio.my/author/9m2pju/">9M2PJU</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamradio.my/2025/07/code-server-unlocking-the-power-of-vs-code-in-your-browser/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>TeslaMate: The Ultimate Self-Hosted Data Logger for Your Tesla</title>
		<link>https://hamradio.my/2025/07/teslamate-the-ultimate-self-hosted-data-logger-for-your-tesla/</link>
					<comments>https://hamradio.my/2025/07/teslamate-the-ultimate-self-hosted-data-logger-for-your-tesla/#respond</comments>
		
		<dc:creator><![CDATA[9M2PJU]]></dc:creator>
		<pubDate>Tue, 01 Jul 2025 17:04:32 +0000</pubDate>
				<category><![CDATA[containerization]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[tesla]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[chargingstats]]></category>
		<category><![CDATA[dataanalytics]]></category>
		<category><![CDATA[datavisualization]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[elixir]]></category>
		<category><![CDATA[energyconsumption]]></category>
		<category><![CDATA[evdata]]></category>
		<category><![CDATA[evmonitoring]]></category>
		<category><![CDATA[fleetmanagement]]></category>
		<category><![CDATA[grafana]]></category>
		<category><![CDATA[homeassistant]]></category>
		<category><![CDATA[MQTT]]></category>
		<category><![CDATA[node-red]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[privacy]]></category>
		<category><![CDATA[selfhosted]]></category>
		<category><![CDATA[smartcar]]></category>
		<category><![CDATA[techsavvy]]></category>
		<category><![CDATA[teslafi]]></category>
		<category><![CDATA[teslamate]]></category>
		<category><![CDATA[tripdata]]></category>
		<category><![CDATA[vehicletracking]]></category>
		<guid isPermaLink="false">https://hamradio.my/?p=7576</guid>

					<description><![CDATA[<p>If you&#8217;re a Tesla owner who values data, privacy, and control, you&#8217;re in for a treat. TeslaMate is a powerful, open-source data logger that allows you to collect, visualize, and analyze every aspect of your Tesla&#8217;s performance—right from your own infrastructure. Whether you&#8217;re a developer, a data enthusiast, or someone who simply loves to geek [&#8230;]</p>
<p>The post <a href="https://hamradio.my/2025/07/teslamate-the-ultimate-self-hosted-data-logger-for-your-tesla/">TeslaMate: The Ultimate Self-Hosted Data Logger for Your Tesla</a> appeared on <a href="https://hamradio.my">Hamradio.my - Amateur Radio, Tech Insights and Product Reviews</a> by <a href="https://hamradio.my/author/9m2pju/">9M2PJU</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">If you&#8217;re a Tesla owner who values data, privacy, and control, you&#8217;re in for a treat. <strong>TeslaMate</strong> is a powerful, open-source data logger that allows you to collect, visualize, and analyze every aspect of your Tesla&#8217;s performance—right from your own infrastructure.</p>



<p class="wp-block-paragraph">Whether you&#8217;re a developer, a data enthusiast, or someone who simply loves to geek out over EV metrics, TeslaMate offers a comprehensive solution to monitor your vehicle&#8217;s health, efficiency, and usage patterns.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f50d.png" alt="🔍" class="wp-smiley" style="height: 1em; max-height: 1em;" /> What Is TeslaMate?</h2>



<p class="wp-block-paragraph">TeslaMate is a self-hosted application that connects to your Tesla account via the official API. It retrieves real-time data about your vehicle&#8217;s state, charging sessions, trips, and more. This data is then stored in a PostgreSQL database and visualized through Grafana dashboards.</p>



<p class="wp-block-paragraph">With TeslaMate, you can track:</p>



<ul class="wp-block-list">
<li><strong>Battery Health</strong>: Monitor your battery&#8217;s state of health and degradation over time.</li>



<li><strong>Charging Stats</strong>: Analyze charging sessions, including energy added, cost, and efficiency.</li>



<li><strong>Drive Metrics</strong>: Record trip details such as distance, energy consumption, and driving behavior.</li>



<li><strong>Vehicle Status</strong>: Keep tabs on your car&#8217;s location, online/offline status, and more.</li>
</ul>



<p class="wp-block-paragraph">All of this is presented in a clean, intuitive web interface, ensuring you have all the insights you need at your fingertips.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2699.png" alt="⚙" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Key Features</h2>



<h3 class="wp-block-heading">1. <strong>High Precision Drive Data Recording</strong></h3>



<p class="wp-block-paragraph">TeslaMate captures detailed drive data, including energy consumption, distance traveled, and driving behavior. This allows you to analyze your driving habits and identify areas for improvement. </p>



<h3 class="wp-block-heading">2. <strong>No Additional Vampire Drain</strong></h3>



<p class="wp-block-paragraph">TeslaMate is designed to minimize energy consumption. It ensures that your vehicle falls asleep as soon as possible, preventing unnecessary battery drain.</p>



<h3 class="wp-block-heading">3. <strong>Automatic Address Lookup</strong></h3>



<p class="wp-block-paragraph">The application automatically converts GPS coordinates into human-readable addresses, making it easier to understand your vehicle&#8217;s locations during trips.</p>



<h3 class="wp-block-heading">4. <strong>Easy Integration with Home Assistant</strong></h3>



<p class="wp-block-paragraph">TeslaMate supports integration with Home Assistant via MQTT, allowing you to incorporate your Tesla&#8217;s data into your smart home automation system.</p>



<h3 class="wp-block-heading">5. <strong>Geo-Fencing</strong></h3>



<p class="wp-block-paragraph">Create custom locations to track when your vehicle enters or exits specific areas. This feature is useful for monitoring charging stations, home locations, or other points of interest.</p>



<h3 class="wp-block-heading">6. <strong>Multiple Vehicle Support</strong></h3>



<p class="wp-block-paragraph">TeslaMate supports multiple vehicles per Tesla account, making it ideal for owners of more than one Tesla.</p>



<h3 class="wp-block-heading">7. <strong>Charge Cost Tracking</strong></h3>



<p class="wp-block-paragraph">Track the cost of charging your vehicle by setting custom electricity rates for different locations. This helps you understand your charging expenses and optimize your usage.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f6e0.png" alt="🛠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Installation Guide</h2>



<p class="wp-block-paragraph">Setting up TeslaMate is straightforward, especially if you&#8217;re familiar with Docker. Here&#8217;s a basic <code>docker-compose.yml</code> configuration:</p>



<pre class="wp-block-code"><code>version: "3.3"
services:
  teslamate:
    image: teslamate/teslamate:latest
    restart: always
    environment:
      - ENCRYPTION_KEY=your_secure_key
      - DATABASE_USER=teslamate
      - DATABASE_PASS=your_password
      - DATABASE_NAME=teslamate
      - DATABASE_HOST=database
      - MQTT_HOST=mosquitto
    ports:
      - "4000:4000"
    volumes:
      - ./import:/opt/app/import
    cap_drop:
      - all
  database:
    image: postgres:17
    restart: always
    environment:
      - POSTGRES_USER=teslamate
      - POSTGRES_PASSWORD=your_password
      - POSTGRES_DB=teslamate
    volumes:
      - ./postgres:/var/lib/postgresql/data
  mosquitto:
    image: eclipse-mosquitto
    restart: always
    ports:
      - "1883:1883"
    volumes:
      - ./mosquitto:/mosquitto/config
</code></pre>



<p class="wp-block-paragraph">After setting up your <code>docker-compose.yml</code>, run:</p>



<pre class="wp-block-code"><code>docker-compose up -d
</code></pre>



<p class="wp-block-paragraph">Once the containers are up and running, you can access the TeslaMate web interface at <code>http://localhost:4000</code>.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4ca.png" alt="📊" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Visualizing Your Data</h2>



<p class="wp-block-paragraph">TeslaMate comes bundled with Grafana dashboards that provide a comprehensive view of your vehicle&#8217;s data. These dashboards include:</p>



<ul class="wp-block-list">
<li><strong>Battery Health</strong>: Track your battery&#8217;s state of health and degradation over time.</li>



<li><strong>Charging Stats</strong>: Analyze charging sessions, including energy added, cost, and efficiency.</li>



<li><strong>Drive Metrics</strong>: Record trip details such as distance, energy consumption, and driving behavior.</li>



<li><strong>Vehicle Status</strong>: Keep tabs on your car&#8217;s location, online/offline status, and more.</li>
</ul>



<p class="wp-block-paragraph">You can customize these dashboards to suit your preferences or create new ones to monitor specific metrics.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f504.png" alt="🔄" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Integrations and Automation</h2>



<p class="wp-block-paragraph">TeslaMate supports integration with various platforms and services:</p>



<ul class="wp-block-list">
<li><strong>Home Assistant</strong>: Integrate TeslaMate with your smart home automation system via MQTT.</li>



<li><strong>Node-RED</strong>: Use Node-RED to create custom automation workflows based on TeslaMate data.</li>



<li><strong>Telegram</strong>: Receive notifications about your vehicle&#8217;s status and events via Telegram.</li>
</ul>



<p class="wp-block-paragraph">These integrations allow you to automate tasks such as sending notifications when your vehicle reaches a specific location or when a charging session is complete.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f6e1.png" alt="🛡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Data Privacy and Security</h2>



<p class="wp-block-paragraph">One of the standout features of TeslaMate is its commitment to data privacy. Unlike cloud-based services, TeslaMate stores all your data locally, giving you full control over it. Your Tesla account credentials are encrypted and never stored in plaintext. Additionally, TeslaMate minimizes energy consumption to prevent unnecessary battery drain.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4c8.png" alt="📈" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Real-World Use Cases</h2>



<p class="wp-block-paragraph">TeslaMate is ideal for various scenarios:</p>



<ul class="wp-block-list">
<li><strong>Personal Use</strong>: Monitor your driving habits, track charging costs, and keep an eye on your vehicle&#8217;s health.</li>



<li><strong>Fleet Management</strong>: For businesses with multiple Teslas, TeslaMate provides a centralized dashboard to monitor all vehicles.</li>



<li><strong>Data Analysis</strong>: Researchers and data enthusiasts can analyze Tesla data for insights into EV performance and usage patterns.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9e0.png" alt="🧠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Final Thoughts</h2>



<p class="wp-block-paragraph">TeslaMate is a robust, feature-rich solution for Tesla owners who want to take control of their vehicle&#8217;s data. Its self-hosted nature ensures privacy and customization, while its integrations and visualizations provide valuable insights into your driving and charging behaviors.</p>



<p class="wp-block-paragraph">Whether you&#8217;re a developer, a data enthusiast, or someone who simply loves to geek out over EV metrics, TeslaMate offers a comprehensive solution to monitor your vehicle&#8217;s health, efficiency, and usage patterns.</p>



<p class="wp-block-paragraph"><a href="https://github.com/teslamate-org/teslamate"><strong>https://github.com/teslamate-org/teslamate</strong></a></p>



<h2 class="wp-block-heading"></h2>
<p>The post <a href="https://hamradio.my/2025/07/teslamate-the-ultimate-self-hosted-data-logger-for-your-tesla/">TeslaMate: The Ultimate Self-Hosted Data Logger for Your Tesla</a> appeared on <a href="https://hamradio.my">Hamradio.my - Amateur Radio, Tech Insights and Product Reviews</a> by <a href="https://hamradio.my/author/9m2pju/">9M2PJU</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamradio.my/2025/07/teslamate-the-ultimate-self-hosted-data-logger-for-your-tesla/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Keeping Your Docker Containers Fresh with WUD</title>
		<link>https://hamradio.my/2025/07/keeping-your-docker-containers-fresh-with-wud/</link>
					<comments>https://hamradio.my/2025/07/keeping-your-docker-containers-fresh-with-wud/#respond</comments>
		
		<dc:creator><![CDATA[9M2PJU]]></dc:creator>
		<pubDate>Mon, 30 Jun 2025 16:59:39 +0000</pubDate>
				<category><![CDATA[containerization]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[maintenance]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[containers]]></category>
		<category><![CDATA[containersecurity]]></category>
		<category><![CDATA[devops]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[dockercompose]]></category>
		<category><![CDATA[dockertools]]></category>
		<category><![CDATA[dockerupdate]]></category>
		<category><![CDATA[homelab]]></category>
		<category><![CDATA[imageupdate]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[selfhosted]]></category>
		<category><![CDATA[selfhosting]]></category>
		<category><![CDATA[softwaretools]]></category>
		<category><![CDATA[SysAdmin]]></category>
		<category><![CDATA[whatsupdocker]]></category>
		<guid isPermaLink="false">https://hamradio.my/?p=7573</guid>

					<description><![CDATA[<p>In today&#8217;s fast-paced DevOps world, running applications in containers is the norm. Docker has revolutionized the way we deploy and scale software, but managing those containers—especially ensuring they&#8217;re up to date—can be a manual and tedious task. This is where WUD, short for What&#8217;s Up Docker, steps in as a game-changer. WUD is a lightweight, [&#8230;]</p>
<p>The post <a href="https://hamradio.my/2025/07/keeping-your-docker-containers-fresh-with-wud/">Keeping Your Docker Containers Fresh with WUD</a> appeared on <a href="https://hamradio.my">Hamradio.my - Amateur Radio, Tech Insights and Product Reviews</a> by <a href="https://hamradio.my/author/9m2pju/">9M2PJU</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">In today&#8217;s fast-paced DevOps world, running applications in containers is the norm. Docker has revolutionized the way we deploy and scale software, but managing those containers—especially ensuring they&#8217;re up to date—can be a manual and tedious task.</p>



<p class="wp-block-paragraph">This is where <strong>WUD</strong>, short for <strong>What&#8217;s Up Docker</strong>, steps in as a game-changer.</p>



<p class="wp-block-paragraph">WUD is a lightweight, open-source solution that continuously monitors your running Docker containers and alerts you when new versions of the base images are available. It saves time, ensures better security, and brings automation to your software maintenance workflow. If you&#8217;re running a homelab, hosting your own services, or managing production infrastructure, WUD is an essential tool in your DevOps toolbox.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9e0.png" alt="🧠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Why Should You Care About Image Updates?</h2>



<p class="wp-block-paragraph">Let’s face it—container image updates often carry critical fixes:</p>



<ul class="wp-block-list">
<li><strong>Security patches</strong> that close zero-day exploits</li>



<li><strong>Performance improvements</strong> that enhance your service responsiveness</li>



<li><strong>Bug fixes and new features</strong> that your applications benefit from immediately</li>
</ul>



<p class="wp-block-paragraph">Not updating means you’re running outdated, potentially vulnerable software. But manually checking all containers regularly is unrealistic. Automating this check is the smartest move—and that’s exactly what WUD offers.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Meet WUD: What&#8217;s Up Docker</h2>



<p class="wp-block-paragraph">WUD is a smart container update monitor. It inspects the Docker images behind your currently running containers and checks if newer versions are available in the registries. If it finds updates, WUD notifies you instantly—helping you take immediate action.</p>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f527.png" alt="🔧" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Built for Flexibility</h3>



<p class="wp-block-paragraph">WUD integrates beautifully with:</p>



<ul class="wp-block-list">
<li>Docker</li>



<li>Docker Compose</li>



<li>Private or public registries</li>



<li>A wide range of notification platforms (email, Slack, MQTT, webhooks)</li>
</ul>



<p class="wp-block-paragraph">It supports <strong>custom triggers</strong> and <strong>regex filtering</strong>, giving you full control over how you track and react to image updates.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f310.png" alt="🌐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Web UI: Your Update Control Tower</h2>



<p class="wp-block-paragraph">The included <strong>web interface</strong> is clean, intuitive, and mobile-friendly. From a centralized dashboard, you can:</p>



<ul class="wp-block-list">
<li>View all running containers</li>



<li>See the image version in use</li>



<li>Get update availability in real-time</li>



<li>Customize monitoring preferences</li>
</ul>



<p class="wp-block-paragraph">This turns WUD from just another background service into a powerful UI-driven monitoring assistant.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4e6.png" alt="📦" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Getting Started in 5 Minutes</h2>



<p class="wp-block-paragraph">Deploying WUD is surprisingly simple. Here&#8217;s a basic example using Docker Compose:</p>



<pre class="wp-block-code"><code>version: "3.3"
services:
  wud:
    image: fmartinou/whats-up-docker
    container_name: wud
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    ports:
      - "3000:3000"
    environment:
      - WUD_TRIGGER_EMAIL_TO=you@example.com
      - WUD_TRIGGER_EMAIL_SMTP_HOST=smtp.example.com
      - WUD_TRIGGER_EMAIL_SMTP_PORT=587
      - WUD_TRIGGER_EMAIL_SMTP_USERNAME=your_username
      - WUD_TRIGGER_EMAIL_SMTP_PASSWORD=your_password
</code></pre>



<p class="wp-block-paragraph">Once it&#8217;s running, visit <code>http://localhost:3000</code> (or your server’s IP) to access the web dashboard.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4ac.png" alt="💬" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Notifications: Choose Your Channel</h2>



<p class="wp-block-paragraph">WUD can send notifications via:</p>



<ul class="wp-block-list">
<li><strong>Email</strong>: Ideal for personal servers or smaller teams.</li>



<li><strong>Slack</strong>: Integrates well with DevOps pipelines.</li>



<li><strong>MQTT</strong>: Perfect for IoT/automation setups.</li>



<li><strong>Webhooks</strong>: Trigger custom update workflows (like automatic redeploys or backups).</li>
</ul>



<p class="wp-block-paragraph">You can even set up <strong>multiple triggers per container</strong>.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f6e1.png" alt="🛡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Stay Secure, Stay Updated</h2>



<p class="wp-block-paragraph">Running outdated containers can expose your system to vulnerabilities. WUD helps you avoid this by:</p>



<ul class="wp-block-list">
<li>Prompting early patching</li>



<li>Monitoring containers 24/7</li>



<li>Supporting multi-arch and registry-compatible images</li>
</ul>



<p class="wp-block-paragraph">It doesn&#8217;t replace update automation tools like Watchtower, but complements them with <strong>granular visibility</strong> before updates are applied.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f525.png" alt="🔥" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Real-World Use Cases</h2>



<p class="wp-block-paragraph">Here are some great examples of WUD in the wild:</p>



<ul class="wp-block-list">
<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f510.png" alt="🔐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Self-hosted services</strong>: Running Pi-hole, Home Assistant, Nextcloud? Get alerts before your services become outdated or vulnerable.</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f468-200d-1f4bb.png" alt="👨‍💻" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Development environments</strong>: Developers using Docker-based stacks can be notified of new base images (Node, Python, Java) for better consistency and performance.</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f6f0.png" alt="🛰" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Production clusters</strong>: Ops teams can integrate WUD with CI/CD pipelines to schedule updates safely.</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Homelab setups</strong>: Perfect for tinkerers and home sysadmins to maintain their containers easily.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9e9.png" alt="🧩" class="wp-smiley" style="height: 1em; max-height: 1em;" /> WUD vs. Watchtower</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Feature</th><th>WUD</th><th>Watchtower</th></tr></thead><tbody><tr><td>Web UI</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Yes</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> No</td></tr><tr><td>Notification</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Flexible</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Email, Slack</td></tr><tr><td>Auto-updates</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> No</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Yes</td></tr><tr><td>Transparency</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> High control</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a0.png" alt="⚠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Can be automatic</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Use <strong>WUD for visibility</strong>, and <strong>Watchtower</strong> if you want automatic image pulls and container redeploys.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f91d.png" alt="🤝" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Community &amp; Support</h2>



<p class="wp-block-paragraph">WUD is open-source and actively developed on GitHub:<br><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f517.png" alt="🔗" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://github.com/getwud/wud">https://github.com/getwud/wud</a></p>



<p class="wp-block-paragraph">You’ll find extensive <a href="https://getwud.github.io/wud/">documentation</a> covering everything from basic setup to advanced features, like authentication, registry credentials, and notifications via third-party services.</p>



<p class="wp-block-paragraph">Got issues or feature ideas? Just open an issue and join the community discussions.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9e0.png" alt="🧠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Final Thoughts</h2>



<p class="wp-block-paragraph">Keeping containers up to date should never be an afterthought. With WUD, you&#8217;re no longer flying blind when it comes to Docker image updates. Whether you’re a sysadmin, homelabber, DevOps engineer, or a curious tinkerer, WUD gives you real-time visibility and control over what’s running in your infrastructure.</p>



<p class="wp-block-paragraph">Try it once—WUD will become your new best friend in Docker image hygiene.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> TL;DR</h2>



<ul class="wp-block-list">
<li>WUD = “What’s Up Docker”</li>



<li>Monitors Docker containers for image updates</li>



<li>Notifies you via email, Slack, MQTT, or webhook</li>



<li>Has a clean and powerful web UI</li>



<li>Easy to set up and fully customizable</li>
</ul>



<p class="wp-block-paragraph">Keep your containers fresh and your system secure with WUD.</p>
<p>The post <a href="https://hamradio.my/2025/07/keeping-your-docker-containers-fresh-with-wud/">Keeping Your Docker Containers Fresh with WUD</a> appeared on <a href="https://hamradio.my">Hamradio.my - Amateur Radio, Tech Insights and Product Reviews</a> by <a href="https://hamradio.my/author/9m2pju/">9M2PJU</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamradio.my/2025/07/keeping-your-docker-containers-fresh-with-wud/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Dockge: The Ultimate Docker Compose Manager for Modern Self-Hosters</title>
		<link>https://hamradio.my/2025/06/dockge-the-ultimate-docker-compose-manager-for-modern-self-hosters/</link>
					<comments>https://hamradio.my/2025/06/dockge-the-ultimate-docker-compose-manager-for-modern-self-hosters/#respond</comments>
		
		<dc:creator><![CDATA[9M2PJU]]></dc:creator>
		<pubDate>Sun, 29 Jun 2025 16:54:39 +0000</pubDate>
				<category><![CDATA[containerization]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[maintenance]]></category>
		<category><![CDATA[composemanager]]></category>
		<category><![CDATA[containers]]></category>
		<category><![CDATA[devops]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[dockercompose]]></category>
		<category><![CDATA[dockertools]]></category>
		<category><![CDATA[dockerui]]></category>
		<category><![CDATA[dockge]]></category>
		<category><![CDATA[homelab]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[selfhosted]]></category>
		<category><![CDATA[selfhostedapps]]></category>
		<category><![CDATA[selfhosting]]></category>
		<category><![CDATA[servermanagement]]></category>
		<category><![CDATA[softwaretools]]></category>
		<category><![CDATA[SysAdmin]]></category>
		<category><![CDATA[techstack]]></category>
		<category><![CDATA[webui]]></category>
		<category><![CDATA[yaml]]></category>
		<guid isPermaLink="false">https://hamradio.my/?p=7570</guid>

					<description><![CDATA[<p>In the evolving world of containerized infrastructure, managing Docker Compose projects can be either a seamless dream or an administrative nightmare. For those who want power, clarity, and elegance in managing their Docker Compose stacks—without relying on bloated dashboards—meet Dockge. Developed by Louis Lam, the creator of Uptime Kuma, Dockge is a sleek, self-hosted solution [&#8230;]</p>
<p>The post <a href="https://hamradio.my/2025/06/dockge-the-ultimate-docker-compose-manager-for-modern-self-hosters/">Dockge: The Ultimate Docker Compose Manager for Modern Self-Hosters</a> appeared on <a href="https://hamradio.my">Hamradio.my - Amateur Radio, Tech Insights and Product Reviews</a> by <a href="https://hamradio.my/author/9m2pju/">9M2PJU</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">In the evolving world of containerized infrastructure, managing Docker Compose projects can be either a seamless dream or an administrative nightmare. For those who want power, clarity, and elegance in managing their Docker Compose stacks—<strong>without relying on bloated dashboards</strong>—meet <strong>Dockge</strong>.</p>



<p class="wp-block-paragraph">Developed by <strong>Louis Lam</strong>, the creator of Uptime Kuma, Dockge is a sleek, self-hosted solution for managing your <code>docker-compose.yaml</code> files in a user-friendly, modern web UI—directly from your own infrastructure.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f6a2.png" alt="🚢" class="wp-smiley" style="height: 1em; max-height: 1em;" /> What Is Dockge?</h2>



<p class="wp-block-paragraph">Dockge is a <strong>Docker Compose manager</strong> that acts as a control center for all your containerized applications. Unlike heavyweight orchestration platforms like Portainer or Rancher, Dockge <strong>doesn’t abstract away your Compose files</strong>—instead, it embraces them.</p>



<p class="wp-block-paragraph">It runs in your browser, provides a beautiful and responsive interface, and gives you full control over managing, editing, and deploying Docker Compose stacks.</p>



<p class="wp-block-paragraph">If you’ve been manually juggling <code>docker-compose up</code>, <code>down</code>, <code>logs</code>, and <code>pull</code> across multiple folders and terminals, Dockge will feel like a leap into the future.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f527.png" alt="🔧" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Core Features That Make Dockge Shine</h2>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9e9.png" alt="🧩" class="wp-smiley" style="height: 1em; max-height: 1em;" /> File-Centric Management</h3>



<p class="wp-block-paragraph">Dockge doesn’t lock you into a database or an internal config. Your <code>compose.yaml</code> files live on disk, exactly where you put them. Want to edit them outside Dockge? Go ahead. Dockge simply reflects and operates on your actual file structure.</p>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f5a5.png" alt="🖥" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Clean, Reactive UI</h3>



<p class="wp-block-paragraph">Built with modern web technologies (likely Vue/React), Dockge’s interface is snappy and beautiful. Navigating your projects, spinning containers up and down, and checking logs feels almost instantaneous.</p>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/270d.png" alt="✍" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Built-in YAML Editor</h3>



<p class="wp-block-paragraph">No need to SSH in or fumble through nano. Dockge provides an in-browser YAML editor with syntax highlighting, so you can tweak your Compose files in real-time, from any device.</p>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4e6.png" alt="📦" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Manage Container Lifecycle</h3>



<p class="wp-block-paragraph">With just a few clicks, you can:</p>



<ul class="wp-block-list">
<li>Start or stop containers</li>



<li>Restart entire stacks</li>



<li>Pull new images</li>



<li>View live logs</li>



<li>See environment variables</li>
</ul>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4c1.png" alt="📁" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Multiple Project Support</h3>



<p class="wp-block-paragraph">Dockge supports multiple projects, each represented as a folder containing a Compose file. Think of it as a workspace manager—ideal for homelabbers running various self-hosted services like Home Assistant, Nextcloud, Pi-hole, Jellyfin, etc.</p>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f310.png" alt="🌐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Web Terminal</h3>



<p class="wp-block-paragraph">Need to run a one-off command inside a container? The integrated web terminal gives you shell access right in the browser, without needing to <code>docker exec</code> manually.</p>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f6e0.png" alt="🛠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Convert Docker Run to Compose</h3>



<p class="wp-block-paragraph">This underrated feature lets you paste a <code>docker run</code> command and convert it into a <code>docker-compose.yaml</code> file. It’s a brilliant way to transition your one-off containers to managed stacks.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f3af.png" alt="🎯" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Who Is Dockge For?</h2>



<p class="wp-block-paragraph">Dockge is tailor-made for:</p>



<ul class="wp-block-list">
<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9d1-200d-1f4bb.png" alt="🧑‍💻" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Developers</strong> who want more control over containerized environments.</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f3e0.png" alt="🏠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Self-hosting enthusiasts</strong> looking for clean, no-nonsense management of their homelab apps.</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9e0.png" alt="🧠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Tech-savvy hobbyists</strong> who don’t want to learn Kubernetes or manage overkill dashboards.</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4e6.png" alt="📦" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Minimalists</strong> who believe that good tools should be powerful <em>and</em> elegant.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Getting Started with Dockge</h2>



<p class="wp-block-paragraph">Setting up Dockge is incredibly simple—if you already use Docker Compose, you’re halfway there. Here’s a high-level overview:</p>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4e6.png" alt="📦" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 1. Clone the Repository</h3>



<pre class="wp-block-code"><code>git clone https://github.com/louislam/dockge /opt/dockge
</code></pre>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4c1.png" alt="📁" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 2. Move Into the Directory</h3>



<pre class="wp-block-code"><code>cd /opt/dockge
</code></pre>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f3d7.png" alt="🏗" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 3. Start the Service</h3>



<pre class="wp-block-code"><code>docker compose up -d
</code></pre>



<p class="wp-block-paragraph">By default, Dockge runs a web server where you can start managing your Compose projects immediately. It reads your existing file structure, meaning there’s <strong>no database</strong> to configure and <strong>no vendor lock-in</strong>.</p>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f510.png" alt="🔐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 4. Optional: Add Auth and SSL</h3>



<p class="wp-block-paragraph">You can easily integrate it behind a reverse proxy with basic auth or OAuth (via Nginx, Traefik, etc.) to keep your setup secure.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4ac.png" alt="💬" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Community &amp; Support</h2>



<p class="wp-block-paragraph">Dockge is a growing open-source project with an active and supportive community. Here’s how to get involved:</p>



<ul class="wp-block-list">
<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f5e3.png" alt="🗣" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Join <a href="https://github.com/louislam/dockge/discussions">GitHub Discussions</a></li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f41e.png" alt="🐞" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Report bugs and suggest features via <a href="https://github.com/louislam/dockge/issues">GitHub Issues</a></li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f91d.png" alt="🤝" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Contribute code or docs to help the project grow</li>
</ul>



<p class="wp-block-paragraph">Louis Lam has a reputation for responsiveness and quality (just look at Uptime Kuma’s success), so Dockge is in good hands.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9ed.png" alt="🧭" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Dockge vs Alternatives</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Feature</th><th>Dockge</th><th>Portainer</th><th>Yacht</th></tr></thead><tbody><tr><td>Compose-first design</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Yes</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> No (UI-driven)</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Yes</td></tr><tr><td>File-based</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Yes</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> No</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Yes</td></tr><tr><td>Lightweight UI</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Blazing fast</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Heavy</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Moderate</td></tr><tr><td>Conversion Tools</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> docker run → compose</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> No</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> No</td></tr><tr><td>Terminal Access</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Built-in</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> No</td></tr><tr><td>Multi-project</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Excellent</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9e0.png" alt="🧠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Final Thoughts: Should You Use Dockge?</h2>



<p class="wp-block-paragraph"><strong>Absolutely—especially if you value clean interfaces and control.</strong></p>



<p class="wp-block-paragraph">Dockge bridges the gap between command-line flexibility and modern user interfaces. It’s the perfect tool for self-hosters and developers who want a <strong>non-intrusive</strong>, <strong>elegant</strong>, and <strong>functional</strong> way to manage Docker Compose environments.</p>



<p class="wp-block-paragraph">Whether you&#8217;re managing a fleet of Raspberry Pis, running a mini data center at home, or just hosting your personal blog and media server, Dockge will make your life easier.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f517.png" alt="🔗" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Explore More</h2>



<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f449.png" alt="👉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> GitHub: <a href="https://github.com/louislam/dockge">https://github.com/louislam/dockge</a></p>



<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f449.png" alt="👉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Try it, star it, and join the conversation. Your containers will thank you.</p>
<p>The post <a href="https://hamradio.my/2025/06/dockge-the-ultimate-docker-compose-manager-for-modern-self-hosters/">Dockge: The Ultimate Docker Compose Manager for Modern Self-Hosters</a> appeared on <a href="https://hamradio.my">Hamradio.my - Amateur Radio, Tech Insights and Product Reviews</a> by <a href="https://hamradio.my/author/9m2pju/">9M2PJU</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamradio.my/2025/06/dockge-the-ultimate-docker-compose-manager-for-modern-self-hosters/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Top Amateur Radio Software You Can Run Using Docker: Practical Examples</title>
		<link>https://hamradio.my/2025/06/top-amateur-radio-software-you-can-run-using-docker-practical-examples/</link>
					<comments>https://hamradio.my/2025/06/top-amateur-radio-software-you-can-run-using-docker-practical-examples/#respond</comments>
		
		<dc:creator><![CDATA[9M2PJU]]></dc:creator>
		<pubDate>Sun, 08 Jun 2025 22:06:48 +0000</pubDate>
				<category><![CDATA[amateur radio]]></category>
		<category><![CDATA[containerization]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[free open source software]]></category>
		<category><![CDATA[APRS]]></category>
		<category><![CDATA[chirp]]></category>
		<category><![CDATA[Containerization]]></category>
		<category><![CDATA[digital modes]]></category>
		<category><![CDATA[digital radio]]></category>
		<category><![CDATA[digital voice]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[fldigi]]></category>
		<category><![CDATA[ft8]]></category>
		<category><![CDATA[ham radio]]></category>
		<category><![CDATA[ham radio software]]></category>
		<category><![CDATA[linux ham radio]]></category>
		<category><![CDATA[openwebrx]]></category>
		<category><![CDATA[packet radio]]></category>
		<category><![CDATA[pi-star]]></category>
		<category><![CDATA[radio programming]]></category>
		<category><![CDATA[software defined radio]]></category>
		<category><![CDATA[WSJT-X]]></category>
		<guid isPermaLink="false">https://hamradio.my/?p=7476</guid>

					<description><![CDATA[<p>Amateur radio operators often use various software for digital modes, packet radio, SDR, logging, and hotspot management. Docker containers make installing and running these apps easier and more consistent, regardless of your OS or environment. Below is a curated list of top amateur radio software that either has official or community Docker images available — [&#8230;]</p>
<p>The post <a href="https://hamradio.my/2025/06/top-amateur-radio-software-you-can-run-using-docker-practical-examples/">Top Amateur Radio Software You Can Run Using Docker: Practical Examples</a> appeared on <a href="https://hamradio.my">Hamradio.my - Amateur Radio, Tech Insights and Product Reviews</a> by <a href="https://hamradio.my/author/9m2pju/">9M2PJU</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">Amateur radio operators often use various software for digital modes, packet radio, SDR, logging, and hotspot management. Docker containers make installing and running these apps easier and more consistent, regardless of your OS or environment.</p>



<p class="wp-block-paragraph">Below is a curated list of <strong>top amateur radio software</strong> that either has official or community Docker images available — plus example commands so you can start using them immediately.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-1-dire-wolf-soundcard-ax-25-packet-tnc-amp-aprs">1. Dire Wolf – Soundcard AX.25 Packet TNC &amp; APRS</h2>



<p class="wp-block-paragraph"><strong>Purpose:</strong> Software TNC for packet radio and APRS with soundcard interface.</p>



<p class="wp-block-paragraph"><strong>Docker image:</strong> <code>w6rz/direwolf</code></p>



<p class="wp-block-paragraph"><strong>Run command example:</strong></p>



<pre class="wp-block-code"><code>docker pull w6rz/direwolf

docker run -it --rm \
  --device /dev/snd \
  --device /dev/ttyUSB0 \
  -v $HOME/direwolf:/root \
  w6rz/direwolf
</code></pre>



<ul class="wp-block-list">
<li>Mounts your local config directory.</li>



<li>Accesses sound and radio devices.</li>



<li>Configure <code>direwolf.conf</code> inside your <code>$HOME/direwolf</code> folder.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-2-openwebrx-web-based-sdr-receiver">2. OpenWebRX – Web-Based SDR Receiver</h2>



<p class="wp-block-paragraph"><strong>Purpose:</strong> Run a remote software-defined radio (SDR) accessible via web browser.</p>



<p class="wp-block-paragraph"><strong>Docker image:</strong> <code>cyoung/openwebrx</code></p>



<p class="wp-block-paragraph"><strong>Run command example:</strong></p>



<pre class="wp-block-code"><code>docker pull cyoung/openwebrx

docker run -d -p 8073:8073 cyoung/openwebrx
</code></pre>



<ul class="wp-block-list">
<li>Access the SDR web interface at <code>http://localhost:8073</code></li>



<li>Connect and listen from anywhere on your network.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-3-wsjt-x-ft8-and-other-weak-signal-digital-modes">3. WSJT-X – FT8 and Other Weak Signal Digital Modes</h2>



<p class="wp-block-paragraph"><strong>Purpose:</strong> Decode weak digital signals like FT8, JT65.</p>



<p class="wp-block-paragraph"><strong>Docker image:</strong> No official image, but community versions exist (e.g., <code>jks-prv/wsjtx</code>).</p>



<p class="wp-block-paragraph"><strong>Run command example:</strong></p>



<pre class="wp-block-code"><code>docker pull jks-prv/wsjtx

docker run -d -p 5900:5900 jks-prv/wsjtx
</code></pre>



<ul class="wp-block-list">
<li>Runs a VNC server on port 5900 to access the GUI.</li>



<li>Connect using a VNC client to <code>localhost:5900</code>.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-4-fldigi-multi-mode-digital-modem">4. Fldigi – Multi-Mode Digital Modem</h2>



<p class="wp-block-paragraph"><strong>Purpose:</strong> Supports many digital modes: PSK31, RTTY, MFSK, Olivia, and more.</p>



<p class="wp-block-paragraph"><strong>Docker image:</strong> Community-built images exist (e.g., <code>ka6sox/fldigi</code>).</p>



<p class="wp-block-paragraph"><strong>Run command example with X11 forwarding (Linux):</strong></p>



<pre class="wp-block-code"><code>xhost +local:docker

docker run -it --rm \
  -e DISPLAY=$DISPLAY \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  --device /dev/snd \
  ka6sox/fldigi
</code></pre>



<ul class="wp-block-list">
<li>Access GUI directly on your desktop.</li>



<li>Use sound devices for digital mode decoding.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-5-pi-star-digital-voice-hotspot-software-dmr-ysf-p25">5. Pi-Star – Digital Voice Hotspot Software (DMR, YSF, P25)</h2>



<p class="wp-block-paragraph"><strong>Purpose:</strong> Popular for managing digital voice hotspots.</p>



<p class="wp-block-paragraph"><strong>Docker image:</strong> Community image (e.g., <code>wm5d/pi-star</code>).</p>



<p class="wp-block-paragraph"><strong>Run command example:</strong></p>



<pre class="wp-block-code"><code>docker pull wm5d/pi-star

docker run -d -p 80:80 -p 22222:22222 wm5d/pi-star
</code></pre>



<ul class="wp-block-list">
<li>Access the Pi-Star dashboard via <code>http://localhost</code></li>



<li>Configure your digital voice hotspot remotely.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-6-chirp-radio-programming-software">6. Chirp – Radio Programming Software</h2>



<p class="wp-block-paragraph"><strong>Purpose:</strong> Program handheld radios easily.</p>



<p class="wp-block-paragraph"><strong>Docker image:</strong> Community images available.</p>



<p class="wp-block-paragraph"><strong>Run command example with GUI (X11 forwarding):</strong></p>



<pre class="wp-block-code"><code>xhost +local:docker

docker run -it --rm \
  -e DISPLAY=$DISPLAY \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  yourusername/chirp
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-bonus-managing-multiple-ham-radio-containers-with-docker-compose">Bonus: Managing Multiple Ham Radio Containers with Docker Compose</h2>



<p class="wp-block-paragraph">Create a <code>docker-compose.yml</code> file to run multiple services together (e.g., Dire Wolf and OpenWebRX):</p>



<pre class="wp-block-code"><code>version: '3'
services:
  direwolf:
    image: w6rz/direwolf
    devices:
      - /dev/snd
      - /dev/ttyUSB0
    volumes:
      - ./direwolf:/root
    stdin_open: true
    tty: true

  openwebrx:
    image: cyoung/openwebrx
    ports:
      - "8073:8073"
</code></pre>



<p class="wp-block-paragraph">Run all at once:</p>



<pre class="wp-block-code"><code>docker-compose up
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-summary-table-of-top-ham-radio-docker-containers">Summary Table of Top Ham Radio Docker Containers</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Software</th><th>Purpose</th><th>Docker Image</th><th>Example Run Command</th></tr></thead><tbody><tr><td>Dire Wolf</td><td>Packet radio / APRS TNC</td><td><code>w6rz/direwolf</code></td><td><code>docker run --device /dev/snd ... w6rz/direwolf</code></td></tr><tr><td>OpenWebRX</td><td>Remote SDR web interface</td><td><code>cyoung/openwebrx</code></td><td><code>docker run -d -p 8073:8073 cyoung/openwebrx</code></td></tr><tr><td>WSJT-X</td><td>FT8, JT65, etc.</td><td><code>jks-prv/wsjtx</code></td><td><code>docker run -d -p 5900:5900 jks-prv/wsjtx</code></td></tr><tr><td>Fldigi</td><td>Multi-mode digital modem</td><td><code>ka6sox/fldigi</code></td><td><code>docker run -e DISPLAY=$DISPLAY ... ka6sox/fldigi</code></td></tr><tr><td>Pi-Star</td><td>Digital voice hotspot</td><td><code>wm5d/pi-star</code></td><td><code>docker run -d -p 80:80 -p 22222:22222 wm5d/pi-star</code></td></tr><tr><td>Chirp</td><td>Radio programming</td><td>Community images</td><td><code>docker run -e DISPLAY=$DISPLAY yourusername/chirp</code></td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-final-thoughts">Final Thoughts</h2>



<p class="wp-block-paragraph">Running amateur radio software inside Docker containers lets you:</p>



<ul class="wp-block-list">
<li>Avoid complicated installations.</li>



<li>Run your apps anywhere without changes.</li>



<li>Experiment with new software without risk.</li>



<li>Easily manage dependencies and updates.</li>
</ul>



<p class="wp-block-paragraph"></p>
<p>The post <a href="https://hamradio.my/2025/06/top-amateur-radio-software-you-can-run-using-docker-practical-examples/">Top Amateur Radio Software You Can Run Using Docker: Practical Examples</a> appeared on <a href="https://hamradio.my">Hamradio.my - Amateur Radio, Tech Insights and Product Reviews</a> by <a href="https://hamradio.my/author/9m2pju/">9M2PJU</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamradio.my/2025/06/top-amateur-radio-software-you-can-run-using-docker-practical-examples/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Docker: The Container Revolution That Changed Software Development Forever</title>
		<link>https://hamradio.my/2025/06/docker-the-container-revolution-that-changed-software-development-forever/</link>
					<comments>https://hamradio.my/2025/06/docker-the-container-revolution-that-changed-software-development-forever/#respond</comments>
		
		<dc:creator><![CDATA[9M2PJU]]></dc:creator>
		<pubDate>Sat, 07 Jun 2025 22:02:07 +0000</pubDate>
				<category><![CDATA[containerization]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[free open source software]]></category>
		<category><![CDATA[free software]]></category>
		<category><![CDATA[virtualization]]></category>
		<category><![CDATA[#CloudComputing]]></category>
		<category><![CDATA[#DevOps]]></category>
		<category><![CDATA[#Microservices]]></category>
		<category><![CDATA[#OpenSource]]></category>
		<category><![CDATA[#SoftwareDevelopment]]></category>
		<category><![CDATA[ci_cd]]></category>
		<category><![CDATA[containerdeployment]]></category>
		<category><![CDATA[Containerization]]></category>
		<category><![CDATA[containersecurity]]></category>
		<category><![CDATA[continuousintegration]]></category>
		<category><![CDATA[developertools]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[dockercompose]]></category>
		<category><![CDATA[dockerhub]]></category>
		<category><![CDATA[infrastructure]]></category>
		<category><![CDATA[kubernetes]]></category>
		<category><![CDATA[linuxcontainers]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[techinnovation]]></category>
		<guid isPermaLink="false">https://hamradio.my/?p=7473</guid>

					<description><![CDATA[<p>In the landscape of modern software development and IT operations, Docker has emerged as a game-changer. Whether you’re a developer, system administrator, or a DevOps engineer, Docker empowers you to build, ship, and run applications seamlessly — across your laptop, on-premise servers, or the cloud. This blog post will dive deep into Docker’s origin, its [&#8230;]</p>
<p>The post <a href="https://hamradio.my/2025/06/docker-the-container-revolution-that-changed-software-development-forever/">Docker: The Container Revolution That Changed Software Development Forever</a> appeared on <a href="https://hamradio.my">Hamradio.my - Amateur Radio, Tech Insights and Product Reviews</a> by <a href="https://hamradio.my/author/9m2pju/">9M2PJU</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">In the landscape of modern software development and IT operations, <strong>Docker</strong> has emerged as a game-changer. Whether you’re a developer, system administrator, or a DevOps engineer, Docker empowers you to build, ship, and run applications seamlessly — across your laptop, on-premise servers, or the cloud. This blog post will dive deep into Docker’s origin, its practical uses, key commands you need to know, advantages, and provide a hands-on example to get you started.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-the-origin-and-history-of-docker">The Origin and History of Docker</h2>



<p class="wp-block-paragraph">Docker’s roots trace back to 2010 when a company named dotCloud, a platform-as-a-service (PaaS) provider, started experimenting with Linux container technology to better isolate and manage applications.</p>



<ul class="wp-block-list">
<li><strong>March 2013</strong>: Docker was launched as an open-source project by Solomon Hykes, the CTO of dotCloud.</li>



<li><strong>Why it stood out</strong>: Docker made Linux containers accessible to developers through simple commands, standard image formats, and tooling that abstracted away complex underlying tech like LXC, cgroups, and namespaces.</li>



<li><strong>Growth</strong>: Docker quickly captured the attention of the tech community and companies worldwide. It transformed from an internal tool to the foundation of a whole ecosystem involving container registries (Docker Hub), orchestration tools (Docker Swarm, Kubernetes), and developer workflows.</li>
</ul>



<p class="wp-block-paragraph">Today, Docker Inc. continues to innovate with products designed for enterprise container management, security, and cloud-native development.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-what-is-docker-and-why-should-you-care">What Is Docker and Why Should You Care?</h2>



<p class="wp-block-paragraph">At its core, Docker is a <strong>containerization platform</strong> that packages your application and all its dependencies — libraries, system tools, and settings — into a single container. This container can run consistently across any environment that supports Docker, eliminating the infamous “it works on my machine” problem.</p>



<h3 class="wp-block-heading" id="h-why-containers">Why containers?</h3>



<p class="wp-block-paragraph">Before containers, virtualization was the go-to method to isolate applications — think Virtual Machines (VMs). But VMs require a full guest OS, which consumes more disk space, memory, and CPU.</p>



<p class="wp-block-paragraph">Containers are lightweight:</p>



<ul class="wp-block-list">
<li>Share the host OS kernel.</li>



<li>Start almost instantly.</li>



<li>Require less storage.</li>
</ul>



<h3 class="wp-block-heading" id="h-use-cases-for-docker-include">Use cases for Docker include:</h3>



<ul class="wp-block-list">
<li><strong>Development environment standardization:</strong> Developers can replicate production environments on local machines.</li>



<li><strong>Microservices deployment:</strong> Each service runs in its own container, independently scalable and maintainable.</li>



<li><strong>CI/CD pipelines:</strong> Automate builds and tests in isolated containers.</li>



<li><strong>Legacy app modernization:</strong> Containerize old apps to run on modern infrastructure.</li>



<li><strong>Cloud migration:</strong> Easily move workloads across public clouds or hybrid setups.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-essential-docker-commands-you-must-know">Essential Docker Commands You Must Know</h2>



<p class="wp-block-paragraph">Here’s a handy list of Docker commands that cover basic to intermediate tasks:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Command</th><th>Description</th></tr></thead><tbody><tr><td><code>docker version</code></td><td>Show Docker client and server version</td></tr><tr><td><code>docker info</code></td><td>Display system-wide info about Docker</td></tr><tr><td><code>docker pull &lt;image&gt;</code></td><td>Download an image from Docker Hub or registry</td></tr><tr><td><code>docker images</code></td><td>List downloaded Docker images</td></tr><tr><td><code>docker run &lt;image&gt;</code></td><td>Run a container from an image</td></tr><tr><td><code>docker ps</code></td><td>List currently running containers</td></tr><tr><td><code>docker ps -a</code></td><td>List all containers, including stopped ones</td></tr><tr><td><code>docker stop &lt;container_id&gt;</code></td><td>Stop a running container</td></tr><tr><td><code>docker start &lt;container_id&gt;</code></td><td>Start a stopped container</td></tr><tr><td><code>docker rm &lt;container_id&gt;</code></td><td>Remove a container</td></tr><tr><td><code>docker rmi &lt;image&gt;</code></td><td>Remove a Docker image</td></tr><tr><td><code>docker logs &lt;container_id&gt;</code></td><td>View logs from a container</td></tr><tr><td><code>docker exec -it &lt;container_id&gt; /bin/bash</code></td><td>Access the shell inside a running container</td></tr><tr><td><code>docker build -t &lt;tag&gt; .</code></td><td>Build an image from a Dockerfile</td></tr><tr><td><code>docker-compose up</code></td><td>Start multi-container apps defined in a docker-compose.yml</td></tr><tr><td><code>docker-compose down</code></td><td>Stop and remove containers defined by docker-compose</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-advantages-of-using-docker">Advantages of Using Docker</h2>



<h3 class="wp-block-heading" id="h-1-portability-and-consistency">1. <strong>Portability and Consistency</strong></h3>



<p class="wp-block-paragraph">Docker containers encapsulate everything needed to run your app, ensuring consistent behavior across development, staging, and production — regardless of where the container runs.</p>



<h3 class="wp-block-heading" id="h-2-lightweight">2. <strong>Lightweight</strong></h3>



<p class="wp-block-paragraph">Containers share the OS kernel and don’t require running a full guest OS, saving CPU, memory, and storage compared to VMs.</p>



<h3 class="wp-block-heading" id="h-3-faster-deployment">3. <strong>Faster Deployment</strong></h3>



<p class="wp-block-paragraph">Containers start almost instantly (in seconds), accelerating development cycles and scaling capabilities.</p>



<h3 class="wp-block-heading" id="h-4-isolation-and-security">4. <strong>Isolation and Security</strong></h3>



<p class="wp-block-paragraph">Containers provide process-level isolation, which helps prevent conflicts between apps running on the same host.</p>



<h3 class="wp-block-heading" id="h-5-simplified-dependency-management">5. <strong>Simplified Dependency Management</strong></h3>



<p class="wp-block-paragraph">No need to install or configure software dependencies on your host; they’re baked into the container image.</p>



<h3 class="wp-block-heading" id="h-6-vibrant-ecosystem">6. <strong>Vibrant Ecosystem</strong></h3>



<p class="wp-block-paragraph">With Docker Hub, users have access to thousands of ready-to-use container images. The active community continually develops tools and resources.</p>



<h3 class="wp-block-heading" id="h-7-improved-resource-utilization">7. <strong>Improved Resource Utilization</strong></h3>



<p class="wp-block-paragraph">Multiple containers can run efficiently on a single host, making better use of hardware resources.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-a-simple-docker-example-running-a-hello-world-web-server">A Simple Docker Example: Running a Hello World Web Server</h2>



<p class="wp-block-paragraph">Let’s walk through a practical example so you can experience Docker firsthand.</p>



<h3 class="wp-block-heading" id="h-step-1-install-docker">Step 1: Install Docker</h3>



<p class="wp-block-paragraph">Make sure Docker is installed on your system. You can find official installation guides on <a href="https://docs.docker.com/get-docker/">docker.com</a>.</p>



<h3 class="wp-block-heading" id="h-step-2-run-a-prebuilt-web-server-container">Step 2: Run a prebuilt web server container</h3>



<p class="wp-block-paragraph">Open your terminal and run:</p>



<pre class="wp-block-code"><code>docker run -d -p 8080:80 --name hello-web nginx
</code></pre>



<p class="wp-block-paragraph">What this does:</p>



<ul class="wp-block-list">
<li><code>docker run</code> — Run a container.</li>



<li><code>-d</code> — Detached mode (runs container in the background).</li>



<li><code>-p 8080:80</code> — Map port 8080 on your host to port 80 in the container.</li>



<li><code>--name hello-web</code> — Assign a name to the container.</li>



<li><code>nginx</code> — Use the official nginx web server image from Docker Hub.</li>
</ul>



<h3 class="wp-block-heading" id="h-step-3-access-your-web-server">Step 3: Access your web server</h3>



<p class="wp-block-paragraph">Open your browser and navigate to <code>http://localhost:8080</code>. You should see the default <strong>Nginx</strong> welcome page, meaning your container is up and running.</p>



<h3 class="wp-block-heading" id="h-step-4-inspect-the-container">Step 4: Inspect the container</h3>



<p class="wp-block-paragraph">Check running containers:</p>



<pre class="wp-block-code"><code>docker ps
</code></pre>



<p class="wp-block-paragraph">View container logs:</p>



<pre class="wp-block-code"><code>docker logs hello-web
</code></pre>



<p class="wp-block-paragraph">Access the container shell:</p>



<pre class="wp-block-code"><code>docker exec -it hello-web /bin/bash
</code></pre>



<p class="wp-block-paragraph">Inside, you can browse files, for example:</p>



<pre class="wp-block-code"><code>cat /usr/share/nginx/html/index.html
</code></pre>



<h3 class="wp-block-heading" id="h-step-5-stop-and-remove-the-container">Step 5: Stop and remove the container</h3>



<p class="wp-block-paragraph">To stop:</p>



<pre class="wp-block-code"><code>docker stop hello-web
</code></pre>



<p class="wp-block-paragraph">To remove:</p>



<pre class="wp-block-code"><code>docker rm hello-web
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-conclusion">Conclusion</h2>



<p class="wp-block-paragraph">Docker has revolutionized software development and IT operations by making container technology accessible, portable, and scalable. It simplifies dependency management, accelerates deployment, and ensures your applications behave the same everywhere — a crucial advantage in today’s fast-moving development world.</p>



<p class="wp-block-paragraph">This example only scratches the surface of Docker’s power. From building your own container images to orchestrating complex multi-container applications with Docker Compose or Kubernetes, Docker opens up a world of possibilities.</p>



<p class="wp-block-paragraph">If you want to master modern software workflows, learning Docker is a must.</p>
<p>The post <a href="https://hamradio.my/2025/06/docker-the-container-revolution-that-changed-software-development-forever/">Docker: The Container Revolution That Changed Software Development Forever</a> appeared on <a href="https://hamradio.my">Hamradio.my - Amateur Radio, Tech Insights and Product Reviews</a> by <a href="https://hamradio.my/author/9m2pju/">9M2PJU</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamradio.my/2025/06/docker-the-container-revolution-that-changed-software-development-forever/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Use Docker on FreeBSD (and the Best Alternatives)</title>
		<link>https://hamradio.my/2025/06/how-to-use-docker-on-freebsd-and-the-best-alternatives/</link>
					<comments>https://hamradio.my/2025/06/how-to-use-docker-on-freebsd-and-the-best-alternatives/#respond</comments>
		
		<dc:creator><![CDATA[9M2PJU]]></dc:creator>
		<pubDate>Mon, 02 Jun 2025 12:01:00 +0000</pubDate>
				<category><![CDATA[container]]></category>
		<category><![CDATA[containerization]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[freebsd jails]]></category>
		<category><![CDATA[virtual machine]]></category>
		<category><![CDATA[virtualization]]></category>
		<category><![CDATA[bastillebsd]]></category>
		<category><![CDATA[bhyve]]></category>
		<category><![CDATA[containers]]></category>
		<category><![CDATA[devops]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[freebsdjail]]></category>
		<category><![CDATA[homelab]]></category>
		<category><![CDATA[jail]]></category>
		<category><![CDATA[linuxvm]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[podman]]></category>
		<category><![CDATA[selfhosting]]></category>
		<category><![CDATA[serveradmin]]></category>
		<category><![CDATA[SysAdmin]]></category>
		<category><![CDATA[techguide]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[virtualbox]]></category>
		<guid isPermaLink="false">https://hamradio.my/?p=7454</guid>

					<description><![CDATA[<p>Docker has become the de facto standard for containerization on Linux systems. It provides developers with an easy and reproducible way to deploy applications. But if you&#8217;re a FreeBSD user like me, you&#8217;ve probably discovered that Docker isn’t natively supported. That’s because Docker relies heavily on Linux kernel features such as cgroups, namespaces, and UnionFS, [&#8230;]</p>
<p>The post <a href="https://hamradio.my/2025/06/how-to-use-docker-on-freebsd-and-the-best-alternatives/">How to Use Docker on FreeBSD (and the Best Alternatives)</a> appeared on <a href="https://hamradio.my">Hamradio.my - Amateur Radio, Tech Insights and Product Reviews</a> by <a href="https://hamradio.my/author/9m2pju/">9M2PJU</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">Docker has become the de facto standard for containerization on Linux systems. It provides developers with an easy and reproducible way to deploy applications. But if you&#8217;re a FreeBSD user like me, you&#8217;ve probably discovered that Docker isn’t natively supported. That’s because Docker relies heavily on Linux kernel features such as <strong>cgroups</strong>, <strong>namespaces</strong>, and <strong>UnionFS</strong>, which FreeBSD does not support directly.</p>



<p class="wp-block-paragraph">So, what are our options? Can we still run containers on FreeBSD, or even Docker itself? The answer is yes—with some workarounds and native alternatives.</p>



<p class="wp-block-paragraph">In this blog post, we will walk you through several approaches:</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading" id="h-why-docker-doesn-t-run-natively-on-freebsd"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a0.png" alt="⚠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Why Docker Doesn’t Run Natively on FreeBSD</h3>



<p class="wp-block-paragraph">Docker was built specifically for the Linux kernel. It depends on:</p>



<ul class="wp-block-list">
<li>Linux control groups (cgroups)</li>



<li>Namespaces</li>



<li>AUFS/OverlayFS</li>



<li>A running Docker daemon</li>
</ul>



<p class="wp-block-paragraph">FreeBSD uses different mechanisms, such as <strong>jails</strong> and <strong>ZFS</strong>. Because of this incompatibility, Docker can&#8217;t run on FreeBSD <em>without</em> a Linux layer. However, that doesn’t mean you’re out of luck.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-option-1-use-podman-a-docker-compatible-alternative"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Option 1: Use Podman – A Docker-Compatible Alternative</h2>



<p class="wp-block-paragraph"><a href="https://podman.io/"><strong>Podman</strong></a> is a daemonless container engine that offers a command-line interface similar to Docker. It&#8217;s available in FreeBSD’s package repository and works quite well for many use cases.</p>



<h3 class="wp-block-heading" id="h-installing-podman-on-freebsd"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f527.png" alt="🔧" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Installing Podman on FreeBSD</h3>



<pre class="wp-block-code"><code>pkg install podman
</code></pre>



<p class="wp-block-paragraph">Start the Podman service:</p>



<pre class="wp-block-code"><code>service podman start
</code></pre>



<p class="wp-block-paragraph">Now you can use it just like Docker:</p>



<pre class="wp-block-code"><code>podman pull alpine
podman run -it alpine sh
</code></pre>



<p class="wp-block-paragraph">Podman runs rootless containers, which means better security, but some Docker features like Docker Compose or privileged containers might not be fully supported.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-option-2-run-docker-inside-a-linux-vm"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f5a5.png" alt="🖥" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Option 2: Run Docker Inside a Linux VM</h2>



<p class="wp-block-paragraph">If you absolutely need full Docker functionality, the best solution is to run Docker <em>inside a virtual machine</em>. You can do this using FreeBSD’s native hypervisor <strong>bhyve</strong>, or with <strong>VirtualBox</strong>.</p>



<h3 class="wp-block-heading" id="h-a-using-bhyve-and-vm-bhyve">A. Using bhyve and vm-bhyve</h3>



<ol class="wp-block-list">
<li>Install the required packages:</li>
</ol>



<pre class="wp-block-code"><code>pkg install vm-bhyve grub2-bhyve
</code></pre>



<ol start="2" class="wp-block-list">
<li>Initialize the environment:</li>
</ol>



<pre class="wp-block-code"><code>zfs create -o mountpoint=/vm zroot/vm
vm init
vm switch create public
</code></pre>



<ol start="3" class="wp-block-list">
<li>Download a Linux ISO (e.g., Ubuntu), and create the VM:</li>
</ol>



<pre class="wp-block-code"><code>vm iso https://releases.ubuntu.com/22.04/ubuntu-22.04-live-server-amd64.iso
vm create ubuntuvm
vm install ubuntuvm ubuntu-22.04-live-server-amd64.iso
</code></pre>



<ol start="4" class="wp-block-list">
<li>After installing Ubuntu, log into the VM and install Docker:</li>
</ol>



<pre class="wp-block-code"><code>curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
</code></pre>



<p class="wp-block-paragraph">Now you have a full Linux environment running Docker within FreeBSD.</p>



<h3 class="wp-block-heading" id="h-b-using-virtualbox">B. Using VirtualBox</h3>



<p class="wp-block-paragraph">If you prefer a GUI solution, VirtualBox works well on FreeBSD:</p>



<pre class="wp-block-code"><code>pkg install virtualbox-ose
</code></pre>



<p class="wp-block-paragraph">After installation, create a Linux virtual machine (e.g., Ubuntu, Alpine), then install Docker inside it as shown above.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-option-3-use-freebsd-jails-with-bastillebsd"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f510.png" alt="🔐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Option 3: Use FreeBSD Jails with BastilleBSD</h2>



<p class="wp-block-paragraph">FreeBSD has its own native containerization technology: <strong>jails</strong>. They are extremely lightweight and secure. You can manage jails easily with a tool like <a href="https://bastillebsd.org/"><strong>BastilleBSD</strong></a>.</p>



<h3 class="wp-block-heading" id="h-installing-bastillebsd"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f527.png" alt="🔧" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Installing BastilleBSD</h3>



<pre class="wp-block-code"><code>pkg install bastille
sysrc bastille_enable=YES
service bastille start
</code></pre>



<h3 class="wp-block-heading" id="h-bootstrap-a-freebsd-release"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4e6.png" alt="📦" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Bootstrap a FreeBSD Release</h3>



<pre class="wp-block-code"><code>bastille bootstrap 13.2-RELEASE
</code></pre>



<h3 class="wp-block-heading" id="h-create-and-start-a-jail"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f6e0.png" alt="🛠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Create and Start a Jail</h3>



<pre class="wp-block-code"><code>bastille create myjail 13.2-RELEASE 10.0.0.10
bastille start myjail
bastille console myjail
</code></pre>



<p class="wp-block-paragraph">Now you’re inside a FreeBSD jail where you can run isolated applications.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">While this isn’t Docker-compatible, it’s extremely efficient and secure for server deployments.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-summary-table"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4dd.png" alt="📝" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Summary Table</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Method</th><th>Docker-Compatible</th><th>FreeBSD Native</th><th>Ideal Use Case</th></tr></thead><tbody><tr><td><strong>Podman</strong></td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Partial</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Yes</td><td>Development, rootless containers</td></tr><tr><td><strong>Linux VM (bhyve)</strong></td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Full</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> No</td><td>Full Docker support, CI/CD setups</td></tr><tr><td><strong>VirtualBox</strong></td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Full</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> No</td><td>Desktop Docker environment</td></tr><tr><td><strong>BastilleBSD</strong></td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> No</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Yes</td><td>Secure, lightweight FreeBSD jails</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-final-thoughts"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f914.png" alt="🤔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Final Thoughts</h2>



<p class="wp-block-paragraph">While Docker doesn’t run natively on FreeBSD, you still have powerful and flexible options depending on your use case:</p>



<ul class="wp-block-list">
<li>Want to run containers like Docker? <strong>Try Podman.</strong></li>



<li>Need full Docker functionality? <strong>Use a Linux VM with bhyve or VirtualBox.</strong></li>



<li>Want lightweight, secure FreeBSD-native containers? <strong>Go with jails and BastilleBSD.</strong></li>
</ul>



<p class="wp-block-paragraph">Each method has its strengths and trade-offs.</p>



<p class="wp-block-paragraph"></p>
<p>The post <a href="https://hamradio.my/2025/06/how-to-use-docker-on-freebsd-and-the-best-alternatives/">How to Use Docker on FreeBSD (and the Best Alternatives)</a> appeared on <a href="https://hamradio.my">Hamradio.my - Amateur Radio, Tech Insights and Product Reviews</a> by <a href="https://hamradio.my/author/9m2pju/">9M2PJU</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamradio.my/2025/06/how-to-use-docker-on-freebsd-and-the-best-alternatives/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>DockFlare: Securely Expose Docker Services with Cloudflare Tunnels</title>
		<link>https://hamradio.my/2025/05/dockflare-securely-expose-docker-services-with-cloudflare-tunnels/</link>
					<comments>https://hamradio.my/2025/05/dockflare-securely-expose-docker-services-with-cloudflare-tunnels/#respond</comments>
		
		<dc:creator><![CDATA[9M2PJU]]></dc:creator>
		<pubDate>Fri, 23 May 2025 06:55:38 +0000</pubDate>
				<category><![CDATA[cloudflare]]></category>
		<category><![CDATA[cloudflare tunnel]]></category>
		<category><![CDATA[containerization]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[free open source software]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[apigateway]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[cloudflareaccess]]></category>
		<category><![CDATA[cloudflaretunnel]]></category>
		<category><![CDATA[Containerization]]></category>
		<category><![CDATA[cybersecurity]]></category>
		<category><![CDATA[devops]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[dockercompose]]></category>
		<category><![CDATA[dockflare]]></category>
		<category><![CDATA[homelab]]></category>
		<category><![CDATA[networksecurity]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[privacy]]></category>
		<category><![CDATA[reverseproxy]]></category>
		<category><![CDATA[securehosting]]></category>
		<category><![CDATA[securewebapps]]></category>
		<category><![CDATA[selfhostedapps]]></category>
		<category><![CDATA[selfhosting]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[SysAdmin]]></category>
		<category><![CDATA[tunneling]]></category>
		<category><![CDATA[webhosting]]></category>
		<category><![CDATA[zerotrust]]></category>
		<guid isPermaLink="false">https://hamradio.my/?p=7540</guid>

					<description><![CDATA[<p>🌟 Introduction: What Is DockFlare? Self-hosting applications has become increasingly popular among developers, tech enthusiasts, and homelabbers. However, securely exposing internal services to the internet is often a complicated task. It involves: This is where DockFlare comes in. DockFlare is a lightweight, self-hosted Cloudflare Tunnel automation tool for Docker users. It simplifies the process of [&#8230;]</p>
<p>The post <a href="https://hamradio.my/2025/05/dockflare-securely-expose-docker-services-with-cloudflare-tunnels/">DockFlare: Securely Expose Docker Services with Cloudflare Tunnels</a> appeared on <a href="https://hamradio.my">Hamradio.my - Amateur Radio, Tech Insights and Product Reviews</a> by <a href="https://hamradio.my/author/9m2pju/">9M2PJU</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading" id="h-introduction-what-is-dockflare"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f31f.png" alt="🌟" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Introduction: What Is DockFlare?</h2>



<p class="wp-block-paragraph">Self-hosting applications has become increasingly popular among developers, tech enthusiasts, and homelabbers. However, securely exposing internal services to the internet is often a complicated task. It involves:</p>



<ul class="wp-block-list">
<li>Opening firewall ports</li>



<li>Dealing with dynamic IPs</li>



<li>Managing TLS certificates</li>



<li>Handling reverse proxies</li>



<li>Setting up access control</li>
</ul>



<p class="wp-block-paragraph">This is where <strong>DockFlare</strong> comes in.</p>



<p class="wp-block-paragraph"><strong>DockFlare</strong> is a lightweight, self-hosted <strong>Cloudflare Tunnel automation tool for Docker users</strong>. It simplifies the process of publishing your internal Docker services to the public internet through <strong>Cloudflare Tunnels</strong>, while providing optional <strong>Zero Trust security</strong>, DNS record automation, and a sleek web interface for real-time management.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-objectives-of-dockflare"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f3af.png" alt="🎯" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Objectives of DockFlare</h2>



<p class="wp-block-paragraph">DockFlare was created to solve three key problems:</p>



<ol class="wp-block-list">
<li><strong>Simplicity</strong>: Configure secure public access to your Docker containers using just labels—no reverse proxy, SSL setup, or manual DNS records needed.</li>



<li><strong>Security</strong>: Protect your services behind Cloudflare&#8217;s <strong>Zero Trust Access</strong>, supporting identity-based authentication (Google, GitHub, OTP, and more).</li>



<li><strong>Automation</strong>: Automatically create tunnels, subdomains, and security policies based on your Docker service metadata. No scripting. No re-deploys.</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-why-use-dockflare"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4a1.png" alt="💡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Why Use DockFlare?</h2>



<p class="wp-block-paragraph">Here’s how DockFlare benefits its users:</p>



<ul class="wp-block-list">
<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Quick Setup</strong>: Set up secure tunnels and expose services in seconds with Docker labels.</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f510.png" alt="🔐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Zero Trust Security</strong>: Enforce authentication for any service using Cloudflare Access.</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f30d.png" alt="🌍" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>No Public IP Required</strong>: No need to forward ports or expose your home IP—perfect for CG-NAT and mobile ISPs.</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f6e1.png" alt="🛡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Safe by Default</strong>: TLS encryption, no open ports, and access rules built-in.</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f5a5.png" alt="🖥" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>User-Friendly UI</strong>: Visualize tunnels, view logs, and manage configurations in a web dashboard.</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9f0.png" alt="🧰" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>DevOps Ready</strong>: Works seamlessly in CI/CD pipelines or home labs.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-how-to-install-dockflare"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f6e0.png" alt="🛠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> How to Install DockFlare</h2>



<h3 class="wp-block-heading" id="h-requirements"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9fe.png" alt="🧾" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Requirements</h3>



<ul class="wp-block-list">
<li>Docker and Docker Compose</li>



<li>A Cloudflare account</li>



<li>A domain connected to Cloudflare</li>



<li>A Cloudflare API Token with:
<ul class="wp-block-list">
<li>Zone DNS edit</li>



<li>Zero Trust policy management</li>



<li>Tunnel management</li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading" id="h-step-1-create-your-project-directory"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4c1.png" alt="📁" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Step 1: Create Your Project Directory</h3>



<pre class="wp-block-code"><code>mkdir dockflare &amp;&amp; cd dockflare
</code></pre>



<h3 class="wp-block-heading" id="h-step-2-create-env-file"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4dd.png" alt="📝" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Step 2: Create <code>.env</code> File</h3>



<p class="wp-block-paragraph">Create a file named <code>.env</code> with the following contents:</p>



<pre class="wp-block-code"><code>CLOUDFLARE_API_TOKEN=your_token_here
CLOUDFLARE_ACCOUNT_ID=your_account_id
CLOUDFLARE_ZONE_ID=your_zone_id
TZ=Asia/Kuala_Lumpur
</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f512.png" alt="🔒" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Keep this file private!</p>
</blockquote>



<h3 class="wp-block-heading" id="h-step-3-create-docker-compose-yml"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f433.png" alt="🐳" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Step 3: Create <code>docker-compose.yml</code></h3>



<pre class="wp-block-code"><code>version: '3.8'

services:
  dockflare:
    image: alplat/dockflare:stable
    container_name: dockflare
    restart: unless-stopped
    env_file:
      - .env
    ports:
      - "5000:5000"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - dockflare_data:/app/data
    labels:
      - cloudflare.tunnel.enable=true
      - cloudflare.tunnel.hostname=dockflare.yourdomain.com
      - cloudflare.tunnel.service=http://dockflare:5000

volumes:
  dockflare_data:
</code></pre>



<h3 class="wp-block-heading" id="h-step-4-deploy-dockflare"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Step 4: Deploy DockFlare</h3>



<pre class="wp-block-code"><code>docker compose up -d
</code></pre>



<p class="wp-block-paragraph">Access the UI: <a href="http://localhost:5000/">http://localhost:5000</a></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-exposing-a-docker-service"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f310.png" alt="🌐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Exposing a Docker Service</h2>



<p class="wp-block-paragraph">Here’s an example of exposing a service like <code>myapp</code> running on port 8080:</p>



<pre class="wp-block-code"><code>services:
  myapp:
    image: myapp:latest
    labels:
      cloudflare.tunnel.enable: "true"
      cloudflare.tunnel.hostname: "app.yourdomain.com"
      cloudflare.tunnel.service: "http://myapp:8080"
      cloudflare.tunnel.access.policy: "authenticate"
      cloudflare.tunnel.access.allowed_idps: "your-idp-uuid"
</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f510.png" alt="🔐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> This will automatically:</p>



<ul class="wp-block-list">
<li>Create a Cloudflare Tunnel</li>



<li>Point your subdomain to it</li>



<li>Enforce secure login</li>
</ul>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-add-non-docker-services"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f30d.png" alt="🌍" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Add Non-Docker Services</h2>



<p class="wp-block-paragraph">Want to expose your home router or NAS?</p>



<ol class="wp-block-list">
<li>Go to DockFlare UI.</li>



<li>Click <strong>&#8220;Add Hostname&#8221;</strong>.</li>



<li>Enter:
<ul class="wp-block-list">
<li>Hostname (e.g., nas.yourdomain.com)</li>



<li>Internal IP/port</li>



<li>Access policy (bypass/authenticate)</li>
</ul>
</li>



<li>Done!</li>
</ol>



<p class="wp-block-paragraph">This works for <strong>any service</strong>, not just Docker.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-configuring-zero-trust-access"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f510.png" alt="🔐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Configuring Zero Trust Access</h2>



<p class="wp-block-paragraph">To secure your services:</p>



<ul class="wp-block-list">
<li>Go to <a href="https://dash.teams.cloudflare.com/">Cloudflare Zero Trust dashboard</a></li>



<li>Add an identity provider (Google, GitHub, etc.)</li>



<li>Use the IDP UUID in your container labels</li>



<li>Example:</li>
</ul>



<pre class="wp-block-code"><code>cloudflare.tunnel.access.policy: authenticate
cloudflare.tunnel.access.allowed_idps: abc123-def456
cloudflare.tunnel.access.session_duration: 8h
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-advanced-tips"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9e0.png" alt="🧠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Advanced Tips</h2>



<ul class="wp-block-list">
<li>Expose multiple hostnames:<br><code>cloudflare.tunnel.hostname=api.domain.com,admin.domain.com</code></li>



<li>Customize session duration:<br><code>cloudflare.tunnel.access.session_duration=12h</code></li>



<li>Monitor logs via the web UI or <code>docker logs dockflare</code></li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-resources"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4da.png" alt="📚" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Resources</h2>



<ul class="wp-block-list">
<li>GitHub: <a href="https://github.com/ChrispyBacon-dev/DockFlare">ChrispyBacon-dev/DockFlare</a></li>



<li>Docker Compose Docs: <a href="https://docs.docker.com/compose/">docker.com/compose</a></li>



<li>Cloudflare Tunnels Guide: <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/">developers.cloudflare.com</a></li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-conclusion"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f3c1.png" alt="🏁" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Conclusion</h2>



<p class="wp-block-paragraph">DockFlare is a game-changer for developers, sysadmins, and homelabbers who want an easy, secure, and automated way to expose their applications to the web. With support for Cloudflare Tunnels, Zero Trust Access, DNS automation, and a clean UI—it&#8217;s the only tool you&#8217;ll need to publish your services safely.</p>



<p class="wp-block-paragraph">No more port forwarding. No more SSL headaches.</p>



<p class="wp-block-paragraph"><strong>Just Docker + DockFlare + Cloudflare = Done. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong></p>
<p>The post <a href="https://hamradio.my/2025/05/dockflare-securely-expose-docker-services-with-cloudflare-tunnels/">DockFlare: Securely Expose Docker Services with Cloudflare Tunnels</a> appeared on <a href="https://hamradio.my">Hamradio.my - Amateur Radio, Tech Insights and Product Reviews</a> by <a href="https://hamradio.my/author/9m2pju/">9M2PJU</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamradio.my/2025/05/dockflare-securely-expose-docker-services-with-cloudflare-tunnels/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
