<?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/"
	 xmlns:friends="wordpress-plugin-friends:feed-additions:1" >

<channel>
	<title>brewing &#8211; Scott&#039;s Blog</title>
	<atom:link href="https://alfter.us/category/brewing/feed/" rel="self" type="application/rss+xml" />
	<link>https://alfter.us</link>
	<description>Things that interest me</description>
	<lastBuildDate>Fri, 26 Jun 2026 15:09:56 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.2</generator>
<site xmlns="com-wordpress:feed-additions:1">230089306</site>	<item>
		<title>Run Windows apps in a browser with Wine and Docker</title>
		<link>https://alfter.us/2026/06/26/run-windows-apps-in-a-browser-with-wine-and-docker/</link>
		
		<dc:creator><![CDATA[Scott Alfter]]></dc:creator>
		<pubDate>Fri, 26 Jun 2026 15:07:37 +0000</pubDate>
				<category><![CDATA[beer]]></category>
		<category><![CDATA[brewing]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Windows]]></category>
		<guid isPermaLink="false">https://alfter.us/?p=51410</guid>

					<description><![CDATA[ProMash is a program I&#8217;ve used to manage beer recipes for over 20 years. There was only ever a Windows version published, but I mostly ran it under Linux with Wine. I had the entire program directory (with recipes, brewing sessions, etc.) checked into checked into Git so I could pull it down on whatever [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">ProMash is a program I&#8217;ve used to manage beer recipes for over 20 years.  There was only ever a Windows version published, but I mostly ran it under Linux with <a href="https://www.winehq.org/">Wine</a>.  I had the entire program directory (with recipes, brewing sessions, etc.) checked into checked into Git so I could pull it down on whatever computer I was using at the time and run it.</p>



<p class="wp-block-paragraph">A while back, I Dockerized my home server.  One of the neat tricks I found it could do was run graphical Linux apps through a web browser: <a href="https://docs.linuxserver.io/images/docker-calibre/">Calibre</a>, <a href="https://github.com/mikenye/docker-picard">Picard</a>, etc. I then got the idea to try containerizing ProMash.  It can run under Wine and Wine runs under Linux, so it should work&#8230;right?</p>



<p class="wp-block-paragraph">Turns out it works pretty well. Start with this Dockerfile, which adds Wine to the linuxserver.io base image and adds the program to be run:</p>



<pre class="wp-block-code"><code>FROM ghcr.io/linuxserver/baseimage-selkies:arch
RUN pacman -Syu || true &amp;&amp; pacman -S --noconfirm wine wine-gecko &amp;&amp; yes | pacman -Scc
ADD --chown=911:911 . /config/promash
COPY /root /</code></pre>



<p class="wp-block-paragraph">For an app that doesn&#8217;t need to be installed (just run from a random directory), it&#8217;s enough to just make it visible within the container and add a config file to tell the container to launch it.  First, docker-compose.yml:</p>



<pre class="wp-block-code"><code>services:
  promash:
    build: .
    container_name: promash
    restart: unless-stopped
    environment:
      CUSTOM_PORT: 8080
      CUSTOM_HTTPS_PORT: 8081
    networks:
      - www
    volumes:
      - promash-data:/config/promash
    labels:
      caddy: promash.alfter.us
      #caddy.basic_auth.salfter: "$PASSWD"
      caddy.import: secure *
      caddy.reverse_proxy: promash.www:8080
      caddy.log.output: discard
          
networks:
  www:
    name: www
    external: true    
    
volumes:
  promash-data:
    name: promash-data
    external: true</code></pre>



<p class="wp-block-paragraph">This is set up to use <a href="https://github.com/lucaslorentz/caddy-docker-proxy">caddy-docker-proxy</a> and to control access to ProMash with an <a href="https://github.com/authelia/authelia">Authelia</a> SSO instance (<code>caddy.import: secure *</code>), but these are easily replaced with whatever proxy option you prefer.  The ProMash directory within the container gets written out to a named volume so my changes don&#8217;t get lost and my recipes are easily backed up.</p>



<p class="wp-block-paragraph">One more file is needed to tell the container how to launch your program.  root/defaults/autostart should look something like this:</p>



<pre class="wp-block-code"><code>(cd /config/promash &amp;&amp; wine ProMash.exe)</code></pre>



<p class="wp-block-paragraph">These three files were added to my ProMash repo, which was then checked out onto my home server and launched.  This is what it looks like in the browser:</p>



<figure class="wp-block-image size-full"><a href="https://alfter.us/wp-content/uploads/2026/06/image-1.png"><img fetchpriority="high" decoding="async" width="875" height="734" src="https://alfter.us/wp-content/uploads/2026/06/image-1.png" alt="" class="wp-image-51412" srcset="https://alfter.us/wp-content/uploads/2026/06/image-1.png 875w, https://alfter.us/wp-content/uploads/2026/06/image-1-300x252.png 300w, https://alfter.us/wp-content/uploads/2026/06/image-1-768x644.png 768w, https://alfter.us/wp-content/uploads/2026/06/image-1-624x523.png 624w" sizes="(max-width: 875px) 100vw, 875px" /></a></figure>



<p class="wp-block-paragraph">This should be adaptable to any Windows app that will run under Wine (which is an ever-increasing percentage of them).  Programs that need to be installed would be a bit trickier to get running, but it should still be possible to get them running.</p>
]]></content:encoded>
					
		
		
		<friends:post-format>standard</friends:post-format>
<post-id xmlns="com-wordpress:feed-additions:1">51410</post-id>	</item>
		<item>
		<title>Interesting methods to test ingredients for brewing suitability</title>
		<link>https://alfter.us/2015/08/15/interesting-methods-to-test-ingredients-for-brewing-suitability/</link>
		
		<dc:creator><![CDATA[Scott Alfter]]></dc:creator>
		<pubDate>Sat, 15 Aug 2015 19:48:19 +0000</pubDate>
				<category><![CDATA[brewing]]></category>
		<guid isPermaLink="false">https://alfter.us/wp/?p=4676</guid>

					<description><![CDATA[Not sure what that unfamiliar hop will taste or smell like in beer? Instead of making a full batch (and risking not liking it), use a French press to dry-hop some PBR with it: Great way to make &#8220;potions&#8221; to try different adjuncts. And using PB (yes PBR) to try hops.]]></description>
										<content:encoded><![CDATA[<p><a href="https://alfter.us/wp-content/uploads/2015/08/PBR-CAN_full.jpg"><img decoding="async" class="alignright size-medium wp-image-4678" src="https://alfter.us/wp-content/uploads/2015/08/PBR-CAN_full-157x300.jpg" alt="PBR CAN_full" width="157" height="300" srcset="https://alfter.us/wp-content/uploads/2015/08/PBR-CAN_full-157x300.jpg 157w, https://alfter.us/wp-content/uploads/2015/08/PBR-CAN_full.jpg 401w" sizes="(max-width: 157px) 100vw, 157px" /></a>Not sure what that unfamiliar hop will taste or smell like in beer? Instead of making a full batch (and risking not liking it), use a French press to dry-hop some PBR with it:</p>
<p><em><a href="https://voat.co/v/Homebrewing/comments/386915">Great way to make &#8220;potions&#8221; to try different adjuncts. And using PB (yes PBR) to try hops.</a></em></p>
]]></content:encoded>
					
		
		
		<friends:post-format>standard</friends:post-format>
<post-id xmlns="com-wordpress:feed-additions:1">4676</post-id>	</item>
		<item>
		<title>H.L. Mencken, Homebrewer</title>
		<link>https://alfter.us/2014/09/17/h-l-mencken-homebrewer/</link>
		
		<dc:creator><![CDATA[Scott Alfter]]></dc:creator>
		<pubDate>Wed, 17 Sep 2014 19:36:38 +0000</pubDate>
				<category><![CDATA[brewing]]></category>
		<guid isPermaLink="false">http://alfter.us/wp/?p=2438</guid>

					<description><![CDATA[Found a link to this in rec.crafts.brewing. An interesting read on a Prohibition-era homebrewer most of you might&#8217;ve heard of, though probably not on account of his brewing activities: H.L. Mencken, Homebrewer]]></description>
										<content:encoded><![CDATA[<p>Found a link to this in <a href="news:rec.crafts.brewing">rec.crafts.brewing</a>. An interesting read on a Prohibition-era homebrewer most of you might&#8217;ve heard of, though probably not on account of his brewing activities:</p>
<p><a href="http://faithfulreaders.com/2012/05/01/h-l-mencken-homebrewer/">H.L. Mencken, Homebrewer</a></p>
]]></content:encoded>
					
		
		
		<friends:post-format>standard</friends:post-format>
<post-id xmlns="com-wordpress:feed-additions:1">2438</post-id>	</item>
		<item>
		<title>Grocery-Store Cyser</title>
		<link>https://alfter.us/2014/08/11/grocery-store-cyser/</link>
		
		<dc:creator><![CDATA[Scott Alfter]]></dc:creator>
		<pubDate>Mon, 11 Aug 2014 20:14:41 +0000</pubDate>
				<category><![CDATA[brewing]]></category>
		<guid isPermaLink="false">http://alfter.us/wp/?p=1875</guid>

					<description><![CDATA[Recipe for the cyser I brought to this past Friday&#8217;s SNAFU meeting: Scott Alfter&#8217;s BrewBlog &#62; BrewBlogs &#62; Grocery-Store Cyser [Cyser].]]></description>
										<content:encoded><![CDATA[<p>Recipe for the cyser I brought to this past Friday&#8217;s SNAFU meeting:</p>
<p><a href="http://www.beerandloafing.org/brewblogger/index.php?page=brewBlogDetail&amp;filter=salfter&amp;id=9">Scott Alfter&#8217;s BrewBlog &gt; BrewBlogs &gt; Grocery-Store Cyser [Cyser]</a>.</p>
]]></content:encoded>
					
		
		
		<friends:post-format>standard</friends:post-format>
<post-id xmlns="com-wordpress:feed-additions:1">1875</post-id>	</item>
	</channel>
</rss>
