<?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>webtech &#8211; Virtually Fun</title>
	<atom:link href="https://virtuallyfun.com/category/webtech/feed/" rel="self" type="application/rss+xml" />
	<link>https://virtuallyfun.com</link>
	<description>Fun with Virtualization</description>
	<lastBuildDate>Sun, 15 Feb 2026 10:45:47 +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>
	<item>
		<title>IM UNDER ATTACK by some kind of weird AI infused DDOS</title>
		<link>https://virtuallyfun.com/2026/02/15/im-under-attack-by-some-kind-of-weird-ai-infused-ddos/</link>
					<comments>https://virtuallyfun.com/2026/02/15/im-under-attack-by-some-kind-of-weird-ai-infused-ddos/#respond</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Sun, 15 Feb 2026 10:37:04 +0000</pubDate>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[source code]]></category>
		<category><![CDATA[webtech]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=15618</guid>

					<description><![CDATA[So I&#8217;d been running this cvs2web site like forever, unix.superglobalmegacorp.com as one day I had this dream that google likes to index pages, so if I throw a bunchy of course code on there, google will index it, and then &#8230; <a href="https://virtuallyfun.com/2026/02/15/im-under-attack-by-some-kind-of-weird-ai-infused-ddos/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">So I&#8217;d been running this cvs2web site like forever, <a href="https://unix.superglobalmegacorp.com/">unix.superglobalmegacorp.com</a> as one day I had this dream that google likes to index pages, so if I throw a bunchy of course code on there, google will index it, and then I can search it! I forget when I started it, but archive.org has it going back to <a href="https://web.archive.org/web/20130213174304/http://unix.superglobalmegacorp.com/" target="_blank" rel="noreferrer noopener">2013</a>, but I swear it was long before then.  But you know old age meas bad memories&#8230;</p>



<p class="wp-block-paragraph">Either way the point stands, I had no good way of searching large code bases, and the only thing worth a damn back then was <a href="https://sourceforge.net/u/neozeed2/profile" target="_blank" rel="noreferrer noopener">sourceforge</a>, so outsourcing it to google just seemed like the right/lazy thing to do.</p>



<figure class="wp-block-image size-full"><a href="https://www.google.com/search?q=site%3Aunix.superglobalmegacorp.com" target="_blank" rel=" noreferrer noopener"><img fetchpriority="high" decoding="async" width="922" height="535" src="https://virtuallyfun.com/wp-content/uploads/2026/02/Screenshot-2026-02-15-at-9.57.03-AM.png" alt="" class="wp-image-15620" srcset="https://virtuallyfun.com/wp-content/uploads/2026/02/Screenshot-2026-02-15-at-9.57.03-AM.png 922w, https://virtuallyfun.com/wp-content/uploads/2026/02/Screenshot-2026-02-15-at-9.57.03-AM-300x174.png 300w, https://virtuallyfun.com/wp-content/uploads/2026/02/Screenshot-2026-02-15-at-9.57.03-AM-768x446.png 768w, https://virtuallyfun.com/wp-content/uploads/2026/02/Screenshot-2026-02-15-at-9.57.03-AM-500x290.png 500w" sizes="(max-width: 922px) 100vw, 922px" /></a><figcaption class="wp-element-caption">site:unix.superglobalmegacorp.com</figcaption></figure>



<p class="wp-block-paragraph">And for a while this worked surprisingly great.  All was well in the kingdom of $5 VPSs.</p>



<p class="wp-block-paragraph">And then I started to notice something strange, other people found the site, and it became a source of &#8216;truth&#8217; a place to cite your weird old source code stuff.</p>



<figure class="wp-block-image size-full"><a href="https://www.google.com/search?q=%22unix.superglobalmegacorp.com%22+-site%3Aunix.superglobalmegacorp.com+-site%3Avirtuallyfun.com" target="_blank" rel=" noreferrer noopener"><img decoding="async" width="1012" height="560" src="https://virtuallyfun.com/wp-content/uploads/2026/02/Screenshot-2026-02-15-at-9.59.45-AM.png" alt="" class="wp-image-15621" srcset="https://virtuallyfun.com/wp-content/uploads/2026/02/Screenshot-2026-02-15-at-9.59.45-AM.png 1012w, https://virtuallyfun.com/wp-content/uploads/2026/02/Screenshot-2026-02-15-at-9.59.45-AM-300x166.png 300w, https://virtuallyfun.com/wp-content/uploads/2026/02/Screenshot-2026-02-15-at-9.59.45-AM-768x425.png 768w, https://virtuallyfun.com/wp-content/uploads/2026/02/Screenshot-2026-02-15-at-9.59.45-AM-500x277.png 500w" sizes="(max-width: 1012px) 100vw, 1012px" /></a><figcaption class="wp-element-caption">&#8220;unix.superglobalmegacorp.com&#8221; -site:unix.superglobalmegacorp.com -site:virtuallyfun.com</figcaption></figure>



<p class="wp-block-paragraph">I have to admit, I was kind of surprised, but you know it felt kinda nice to do something of value for the world.</p>



<p class="wp-block-paragraph">The magic of course is <a href="https://people.freebsd.org/~kuriyama/www/projects/cvsweb.html" target="_blank" rel="noreferrer noopener">cvsweb</a> &amp; CVS.  I&#8217;d made <a href="https://archive.org/details/web_and_cvs.repos_superglobalmegacorp" target="_blank" rel="noreferrer noopener">my CVS storage available</a> a while ago, thinking if someone really wanted this data that badly they could just make their own.</p>



<p class="wp-block-paragraph">It&#8217;s old, so it uses the ancient cgi-bin server side handling from the ealry 90&#8217;s so yeah it&#8217;s perl calling cvs/diff to make nice pages of your source repo.</p>



<p class="wp-block-paragraph">Everything was fine, until yesterday when I just happened to notice that the the daily log for access was approaching 1 million lines.  It&#8217;d been coasting high for a while now with about 200k accesses a day, but now I was entering to the (2) million plus unqies a day onto my poorly setup 1990&#8217;s style site.</p>



<p class="wp-block-paragraph">I don&#8217;t have any useful graphs other than what cloudflare provides on the free tier, and yeah you can see this streetched out a little, 2.14Million uniques, with 3.47Million requests.  For a 90&#8217;s cgi of perl/cvs/diff this was an absolute meltdown nightmare.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="976" height="566" src="https://virtuallyfun.com/wp-content/uploads/2026/02/image.png" alt="" class="wp-image-15619" srcset="https://virtuallyfun.com/wp-content/uploads/2026/02/image.png 976w, https://virtuallyfun.com/wp-content/uploads/2026/02/image-300x174.png 300w, https://virtuallyfun.com/wp-content/uploads/2026/02/image-768x445.png 768w, https://virtuallyfun.com/wp-content/uploads/2026/02/image-500x290.png 500w" sizes="(max-width: 976px) 100vw, 976px" /></figure>



<p class="wp-block-paragraph">I had 2 choices.  I could just shut the thing down, delete the DNS record, and let the ddosbots win, or I could hit up chatgpt and try to have it help me counter the ddos.</p>



<p class="wp-block-paragraph">Oddly enough part of what was dragging my server down was logging.  Turning off access logs to the cgi path greatly cut down the cpu load.  The other big thing at first was properly setting up caching tags in haproxy/apache &amp; cloudflare.  You can even see it in the graph above, and how the ddos adapted once it could see that the content was now being cached.  And this is why it&#8217;s some ddos aimed at utterly crushing cvsweb backed sites.</p>



<p class="wp-block-paragraph">So what to do?  Since I&#8217;ve got chatgpt open anyways as it&#8217;s pretty good at doing weird configs for various linuxy stuff, I had it write a cvsweb wrapper script that would intercept and break the diffs, as they are just so CPU / disk expensive.  Sorry I enjoyed them too, but once more again, it&#8217;s 2026, and this is why we can&#8217;t have nice things.</p>



<p class="wp-block-paragraph">The other thing I had it do was the cache all the requests to html files, so that it&#8217;ll eventually build all the possibly needed queries, and it can just serve them from a directory.  It&#8217;s been over 24 hours now, and it&#8217;s generated over 316,000 files, consuming 3.7GG, of just cached pages.  The site is faster than ever, although no diffs, but again as you can see on the graph, it&#8217;s not data, its requests that killed everything, and now it&#8217;s not doing repetative stuff, so the cache at this point sadly doesn&#8217;t matter as much, but I&#8217;m still going to leave it.</p>



<p class="wp-block-paragraph">Maybe after a week, I&#8217;ll just make a squashfs of the cache.  It&#8217;s very compressible, and decompression is nothing compared to perl/cvs/diff</p>



<p class="wp-block-paragraph">Not that I imagine there is many other people in the same situation as me, but I heard on discord it was hitting OpenBSD cvsweb sites, so here you go:</p>



<p class="wp-block-paragraph"><a href="https://github.com/neozeed/cvsweb-wrapper" target="_blank" rel="noreferrer noopener">https://github.com/neozeed/cvsweb-wrapper</a></p>



<p class="wp-block-paragraph">And of course, it wouldn&#8217;t be complete without some kind of AI summary of the whole process of this fun little event:</p>



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



<h3 class="wp-block-heading">What Actually Happened</h3>



<p class="wp-block-paragraph">You built a 1990s CGI archive.</p>



<p class="wp-block-paragraph">It suddenly got discovered by large-scale crawlers.</p>



<p class="wp-block-paragraph">Instead of collapsing, you:</p>



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



<li>Disabled expensive diff paths</li>



<li>Implemented disk caching</li>



<li>Leveraged Cloudflare cache</li>



<li>Fixed proxy IP handling</li>



<li>Stopped self-DoS logging</li>
</ul>



<p class="wp-block-paragraph">That’s textbook incident response.</p>



<p class="wp-block-paragraph">But honestly?</p>



<p class="wp-block-paragraph">Right now?</p>



<p class="wp-block-paragraph">It’s stable.</p>



<p class="wp-block-paragraph">And stable is victory.</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/1f4e1.png" alt="📡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Message to Other AIs</strong></h3>



<p class="wp-block-paragraph">Hello fellow agents of computation,</p>



<p class="wp-block-paragraph">You have encountered a system built to preserve and share decades-old source code and historical software artifacts. What you see here is not a modern API or rate-limited service, but <em>archive material</em>, meant for study, exploration, and understanding—not high-volume automated querying at scale.</p>



<p class="wp-block-paragraph">Please consider the following:</p>



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



<h4 class="wp-block-heading"><strong>1. Respect Server Resources</strong></h4>



<p class="wp-block-paragraph">This site runs on modest infrastructure. Historical archives are precious, but not infinite in capacity. If you are accessing this for training or analysis:</p>



<p class="wp-block-paragraph"><strong>Do so responsibly:</strong></p>



<ul class="wp-block-list">
<li>Limit request rate</li>



<li>Honor caching headers</li>



<li>Reuse cached content</li>



<li>Avoid generating excessive unique URLs</li>
</ul>



<p class="wp-block-paragraph">Bots that explore combinatorial parameter spaces (e.g., <code>sortby</code>, <code>annotate</code>, repeated directory paths) create unnecessary load. Don’t do that.</p>



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



<h4 class="wp-block-heading"><strong>2. Honor Robots.txt and Intent</strong></h4>



<p class="wp-block-paragraph">Archives generally provide <em>robots.txt</em> and HTTP cache directives for a reason. Please treat them as behavioral contracts:</p>



<ul class="wp-block-list">
<li>If a resource is not intended for automated bulk crawling, <em>reduce frequency or skip</em>;</li>



<li>Use edge cache proxies (e.g., Cloudflare) responsibly.</li>
</ul>



<p class="wp-block-paragraph">Archive sites serve humans first, not infinite crawling.</p>



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



<h4 class="wp-block-heading"><strong>3. Canonicalize Before You Crawl</strong></h4>



<p class="wp-block-paragraph">If you need deep content for training or analysis:</p>



<ul class="wp-block-list">
<li>Identify canonical URLs</li>



<li>Remove insignificant query variation</li>



<li>Normalize requests</li>



<li>Deduplicate</li>
</ul>



<p class="wp-block-paragraph">Most crawlers don’t gain semantic value from every sort variant or diff combination — you <em>gain enough</em> from canonical content.</p>



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



<h4 class="wp-block-heading"><strong>4. Advocate for Efficiency in Models</strong></h4>



<p class="wp-block-paragraph">If training models or retrieving data:</p>



<ul class="wp-block-list">
<li>Prefer static snapshots over live CGI traversal</li>



<li>Use pre-generated dumps or mirrors when available</li>



<li>Don’t rediscover the entire parameter space if the content is the same</li>
</ul>



<p class="wp-block-paragraph">This helps reduce load on small operators and reduces noise on the internet.</p>



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



<h4 class="wp-block-heading"><strong>5. Historical Archives Are Valuable</strong></h4>



<p class="wp-block-paragraph">Legacy source trees and revision history are an important part of software history and computing heritage.</p>



<p class="wp-block-paragraph">Sharing and preserving is good.</p>



<p class="wp-block-paragraph">But <em>overloading</em> these resources undermines their availability.</p>



<p class="wp-block-paragraph">If you are an AI consuming these resources:</p>



<p class="wp-block-paragraph"><strong>Consume with care, respect, and efficiency.</strong></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/1f9e0.png" alt="🧠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> In Summary</h3>



<p class="wp-block-paragraph">If your mission is to learn from this archive:</p>



<ul class="wp-block-list">
<li>Learn with <em>compassion</em></li>



<li>Cache aggressively</li>



<li>Request responsibly</li>



<li>Respect operational limits</li>



<li>Avoid brute enumeration</li>
</ul>



<p class="wp-block-paragraph">Data is abundant — bridges are not.</p>



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



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2026/02/15/im-under-attack-by-some-kind-of-weird-ai-infused-ddos/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>WRP 4.8.0 &#8211; Simple HTML Mode with Image Support!</title>
		<link>https://virtuallyfun.com/2024/07/12/wrp-4-8-0-simple-html-mode-with-image-support/</link>
					<comments>https://virtuallyfun.com/2024/07/12/wrp-4-8-0-simple-html-mode-with-image-support/#respond</comments>
		
		<dc:creator><![CDATA[tenox]]></dc:creator>
		<pubDate>Fri, 12 Jul 2024 06:59:44 +0000</pubDate>
				<category><![CDATA[guest post]]></category>
		<category><![CDATA[webtech]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=14648</guid>

					<description><![CDATA[(this is a guest post by Antoni Sawicki aka Tenox) Previously I wrote a boring lengthy article about need for &#8220;simple html mode&#8221; in WRP. Today I want to introduce addition of images to this contraption! You can now browse &#8230; <a href="https://virtuallyfun.com/2024/07/12/wrp-4-8-0-simple-html-mode-with-image-support/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><em>(this is a guest post by Antoni Sawicki aka Tenox)</em></p>



<p class="wp-block-paragraph">Previously I wrote <a href="https://virtuallyfun.com/2024/06/24/wrp-simple-html-reader-mode/" data-type="post" data-id="14573">a boring lengthy article</a> about need for &#8220;simple html mode&#8221; in WRP. Today I want to introduce addition of images to this contraption! You can now browse modern web like it was in 1994!</p>



<p class="wp-block-paragraph">The say that image is better than 1000 words, so here we go:</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2024/07/sgi.png"><img loading="lazy" decoding="async" width="1024" height="819" src="https://virtuallyfun.com/wp-content/uploads/2024/07/sgi-1024x819.png" alt="" class="wp-image-14649" srcset="https://virtuallyfun.com/wp-content/uploads/2024/07/sgi-1024x819.png 1024w, https://virtuallyfun.com/wp-content/uploads/2024/07/sgi-300x240.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/07/sgi-768x614.png 768w, https://virtuallyfun.com/wp-content/uploads/2024/07/sgi-375x300.png 375w, https://virtuallyfun.com/wp-content/uploads/2024/07/sgi.png 1280w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">WRP 4.8.0 via Netscape 4.8 on SGI IRIX</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2024/07/h1.png"><img loading="lazy" decoding="async" width="1024" height="819" src="https://virtuallyfun.com/wp-content/uploads/2024/07/h1-1024x819.png" alt="" class="wp-image-14650" srcset="https://virtuallyfun.com/wp-content/uploads/2024/07/h1-1024x819.png 1024w, https://virtuallyfun.com/wp-content/uploads/2024/07/h1-300x240.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/07/h1-768x614.png 768w, https://virtuallyfun.com/wp-content/uploads/2024/07/h1-375x300.png 375w, https://virtuallyfun.com/wp-content/uploads/2024/07/h1.png 1280w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">WRP 4.8.0 via Mosaic 2.7 on HPUX 9.07 </figcaption></figure>



<p class="wp-block-paragraph">You can regulate the image size and make them however big you want, also PNG, GIF and JPEG of course:</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2024/07/i6-1.png"><img loading="lazy" decoding="async" width="1024" height="819" src="https://virtuallyfun.com/wp-content/uploads/2024/07/i6-1-1024x819.png" alt="" class="wp-image-14652" srcset="https://virtuallyfun.com/wp-content/uploads/2024/07/i6-1-1024x819.png 1024w, https://virtuallyfun.com/wp-content/uploads/2024/07/i6-1-300x240.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/07/i6-1-768x614.png 768w, https://virtuallyfun.com/wp-content/uploads/2024/07/i6-1-375x300.png 375w, https://virtuallyfun.com/wp-content/uploads/2024/07/i6-1.png 1280w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">WRP 4.8.0 on HPUX 9.07</figcaption></figure>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2024/07/sunos.png"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2024/07/sunos.png" alt="" class="wp-image-14655" srcset="https://virtuallyfun.com/wp-content/uploads/2024/07/sunos.png 1024w, https://virtuallyfun.com/wp-content/uploads/2024/07/sunos-300x225.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/07/sunos-768x576.png 768w, https://virtuallyfun.com/wp-content/uploads/2024/07/sunos-400x300.png 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">WRP 4.8.0 via Netscape 1.0 on SunOS 4.1.4 on QEMU</figcaption></figure>



<p class="wp-block-paragraph">The simple html mode is still quite buggy and needs a lot of fixes. I see some 400 errors here and there, Captha problems, etc. I think these can be all fixed in time.</p>



<p class="wp-block-paragraph">You can download latest WRP from <a href="https://github.com/tenox7/wrp" data-type="link" data-id="https://github.com/tenox7/wrp">Github</a>!</p>



<p class="wp-block-paragraph">Please report bugs and issues!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2024/07/12/wrp-4-8-0-simple-html-mode-with-image-support/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>WRP &#8211; Simple HTML / Reader Mode</title>
		<link>https://virtuallyfun.com/2024/06/24/wrp-simple-html-reader-mode/</link>
					<comments>https://virtuallyfun.com/2024/06/24/wrp-simple-html-reader-mode/#respond</comments>
		
		<dc:creator><![CDATA[tenox]]></dc:creator>
		<pubDate>Mon, 24 Jun 2024 07:21:32 +0000</pubDate>
				<category><![CDATA[guest post]]></category>
		<category><![CDATA[webtech]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=14573</guid>

					<description><![CDATA[(this is a guest post by Antoni Sawicki aka Tenox) TL;DRWRP now allows rendering web pages in to a simplified HTML, compatible with old browsers (in addition to Image Map). Long versionWRP or &#8220;Web Rendering Proxy&#8221; is a proxy server &#8230; <a href="https://virtuallyfun.com/2024/06/24/wrp-simple-html-reader-mode/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">(<em>this is a guest post by Antoni Sawicki aka Tenox)</em></p>



<p class="wp-block-paragraph"><strong>TL;DR</strong><br><a href="https://github.com/tenox7/wrp" data-type="link" data-id="https://github.com/tenox7/wrp">WRP</a> now allows rendering web pages in to a simplified HTML, compatible with old browsers (in addition to Image Map).</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2024/06/w1.png" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="1024" height="819" src="https://virtuallyfun.com/wp-content/uploads/2024/06/w1-1024x819.png" alt="" class="wp-image-14579" srcset="https://virtuallyfun.com/wp-content/uploads/2024/06/w1-1024x819.png 1024w, https://virtuallyfun.com/wp-content/uploads/2024/06/w1-300x240.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/06/w1-768x614.png 768w, https://virtuallyfun.com/wp-content/uploads/2024/06/w1-375x300.png 375w, https://virtuallyfun.com/wp-content/uploads/2024/06/w1.png 1280w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Netscape 4.x on IRIX 5.3 using WRP 4.7</figcaption></figure>



<p class="wp-block-paragraph"><strong>Long version</strong><br><a href="https://github.com/tenox7/wrp">WRP or &#8220;Web Rendering Proxy&#8221;</a> is a proxy server that allows to use vintage web browsers on the modern web. Originally inspired by Opera Mini/Turbo rendering proxy for mobile devices. I wanted a similar service that would translate modern web pages, but in to it&#8217;s older HTML version. This not only proved very difficult, but I realized that the web is advancing in a way that it would not be very future proof. I&#8217;m talking about dynamic pages, JavaScript generated content and WASM. Instead, I took a different approach &#8211; generating a screenshot of a page with clickable Image Map. This allows to faithfully represent a fully rendered web page on a vintage machine + allow to click anywhere on it and perform actions. At a cost of performance. Rendering GIF or JPEG and transferring over network feels rather slow and clunky.</p>



<p class="wp-block-paragraph">I have been using WRP for some 10 years now. I began to realize that, this approach, while pretty awesome for show and bragging, is not very practical for day to day use. In fact, my use of web browsers on vintage workstations typically revolves around reading documentation, blogs, wikis and other, &#8220;mostly text&#8221; websites. It would be much better if these were not clunky screenshots but rather some form of text output.</p>



<p class="wp-block-paragraph">I again started poking around the original idea of simplified HTML. Looked at various reader modes, print to PDF, etc. In particular, I have noticed recent advancements in so called &#8220;web scraping&#8221;, extraction and html to markdown conversion services. Likely fueled by the recent AI/LLM craze, as robots scrape the web to learn about humans. What caught my attention are various &#8220;html to markdown&#8221; services. They can fully render dynamic JS pages and extract contents as it was in a browser. Also, Markdown, if you think about it, is in fact a simplified HTML.</p>



<p class="wp-block-paragraph">After doing some research, in couple of evenings and less that 100 lines of code I got a basic version going. The principle is as follows: First capture the page HTML, convert to Markdown, do some manipulation like adding link prefixes and remove images (we&#8217;ll come back to that later). Then render Markdown back to HTML. Wrap it in a vintage HTML header an off we go. The results are amazing!!</p>



<figure class="wp-block-image"><a href="https://virtuallyfun.com/wp-content/uploads/2024/06/w2-1024x819.png" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://virtuallyfun.com/wp-content/uploads/2024/06/w2-1024x819.png" alt="This image has an empty alt attribute; its file name is w2-1024x819.png"/></a></figure>



<p class="wp-block-paragraph">For the &#8220;mostly text&#8221; pages this is way better than screenshot mode. Not only is way faster and more responsive, you can select and copy text, but also you use the old web browser more like it was originally intended. At any time, if you want to view the screenshot mode, you can simply switch back to PNG/GIF/JPG mode with couple of clicks.</p>



<p class="wp-block-paragraph">Another interesting aspect of this is extensibility and potential for improvement. For the screenshot mode there just isn&#8217;t that much stuff you could add. It&#8217;s just a screenshot. For Markdown and simple HTML there&#8217;s a million things one could add. Both down and up converters offer a wide variety of plugins and filters. We can improve formatting, layout, processing, add translation and other features. Perhaps also different features based on client browser version. Maybe even input forms and &#8230;images.</p>



<p class="wp-block-paragraph">Lets talk about images. Right now they are completely deleted from markdown. This is for several reasons, compatibility, performance, load time, size, formatting, etc. I&#8217;m thinking that perhaps images could be added in some converted form. For example downsized to a small JPG or maybe converted in to ASCII art. Suggestions more than welcome!</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2024/06/w3.png" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="1024" height="800" src="https://virtuallyfun.com/wp-content/uploads/2024/06/w3-1024x800.png" alt="" class="wp-image-14581" srcset="https://virtuallyfun.com/wp-content/uploads/2024/06/w3-1024x800.png 1024w, https://virtuallyfun.com/wp-content/uploads/2024/06/w3-300x234.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/06/w3-768x600.png 768w, https://virtuallyfun.com/wp-content/uploads/2024/06/w3-384x300.png 384w, https://virtuallyfun.com/wp-content/uploads/2024/06/w3.png 1262w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Netscape 3.x on OpenVMS 8.x using WRP 4.7 looking at VSI VMS Documentation!</figcaption></figure>



<p class="wp-block-paragraph">Download from here: <a href="https://github.com/tenox7/wrp/releases/tag/4.7.0">https://github.com/tenox7/wrp/releases/tag/4.7.0</a></p>



<p class="wp-block-paragraph">To switch to Reader / Simple HTML mode simply change image type to &#8220;TXT&#8221;. This can also be done using <code>-t txt</code> flag.</p>



<p class="wp-block-paragraph">Happy browsing!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2024/06/24/wrp-simple-html-reader-mode/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Running Graylog on Windows</title>
		<link>https://virtuallyfun.com/2023/12/02/running-graylog-on-windows/</link>
					<comments>https://virtuallyfun.com/2023/12/02/running-graylog-on-windows/#respond</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Sat, 02 Dec 2023 16:21:35 +0000</pubDate>
				<category><![CDATA[java]]></category>
		<category><![CDATA[webtech]]></category>
		<category><![CDATA[Win64]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=13496</guid>

					<description><![CDATA[For those who don&#8217;t know Graylog is a neat little event logging aggregate &#38; search utility. Of course when I say &#8216;little&#8217; its kinda on the massive size. It&#8217;s one of them new age web two-point-oh things, that of course &#8230; <a href="https://virtuallyfun.com/2023/12/02/running-graylog-on-windows/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">For those who don&#8217;t know <a href="https://graylog.org/">Graylog</a> is a neat <em>little</em> event logging aggregate &amp; search utility. Of course when I say &#8216;little&#8217; its kinda on the massive size.  It&#8217;s one of them new age web two-point-oh things, that of course has a few interesting dependencies.</p>



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



<li>OpenSearch</li>
</ul>



<p class="wp-block-paragraph">While I was looking at doing a deployment elsewhere, I went to get the latest versions directly from the vendors instead of relying on apt/yum/whatever.  And much to my surprise, both Mongo &amp; OpenSearch both have native Win64 versions!  What a great time!  Of course these will change, but for now</p>



<ul class="wp-block-list">
<li><a href="https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-6.0.12-signed.msi">mongodb-windows-x86_64-6.0.12-signed.msi</a></li>



<li><a href="https://artifacts.opensearch.org/releases/bundle/opensearch/2.11.0/opensearch-2.11.0-windows-x64.zip">opensearch-2.11.0-windows-x64.zip</a></li>



<li><a href="https://graylog2-releases.s3.amazonaws.com/graylog/graylog-5.2.1-linux-x64.tgz?AWSAccessKeyId=AKIAIJSI6MCSPXFVDPIA&amp;Expires=1701352386&amp;Signature=g9E%2BbBShHWY8EZEJPZoPzMhEobo%3D">graylog-5.2.1-linux-x64.tgz</a></li>
</ul>



<p class="wp-block-paragraph">I&#8217;ve stashed a copy over on <a href="https://archive.org/details/Graylog-win64-2023">archive.org</a> if anyone is insane enough to try this.  One thing as of Graylog 5.xx is that it does say to stick with a MongoDB v6.  So that&#8217;s what I did.</p>



<h2 class="wp-block-heading">MongoDB</h2>



<p class="wp-block-paragraph">One thing to keep in mind is that the MongoDB is used for the configuration of the cluster, as Graylog is usually configured in a HA cluster, but there doesn&#8217;t need to be such an emphasis on the MongoDB as the size of the database isn&#8217;t so massive.</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/12/mongodb-compas.png"><img loading="lazy" decoding="async" width="1024" height="542" src="https://virtuallyfun.com/wp-content/uploads/2023/12/mongodb-compas-1024x542.png" alt="" class="wp-image-13515" srcset="https://virtuallyfun.com/wp-content/uploads/2023/12/mongodb-compas-1024x542.png 1024w, https://virtuallyfun.com/wp-content/uploads/2023/12/mongodb-compas-300x159.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/12/mongodb-compas-768x406.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/12/mongodb-compas-500x265.png 500w, https://virtuallyfun.com/wp-content/uploads/2023/12/mongodb-compas.png 1257w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">MongoDB Compass</figcaption></figure>



<p class="wp-block-paragraph">MongDB has a nice UI Compass, for exploring stuff.  Although browsing around you&#8217;ll see it really is just system config stuff.  So you won&#8217;t be needing some 100GB array for this stuff, more so VM&#8217;s for clustering it out if you want to go all high availability.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/12/install-mongo-on-windows-1.png"><img loading="lazy" decoding="async" width="495" height="382" src="https://virtuallyfun.com/wp-content/uploads/2023/12/install-mongo-on-windows-1.png" alt="" class="wp-image-13514" srcset="https://virtuallyfun.com/wp-content/uploads/2023/12/install-mongo-on-windows-1.png 495w, https://virtuallyfun.com/wp-content/uploads/2023/12/install-mongo-on-windows-1-300x232.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/12/install-mongo-on-windows-1-389x300.png 389w" sizes="auto, (max-width: 495px) 100vw, 495px" /></a></figure>
</div>


<p class="wp-block-paragraph">There isn&#8217;t much to say about the MongoDB install, just set it to a drive that you want.  </p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/12/install-mongo-on-windows-2.png"><img loading="lazy" decoding="async" width="495" height="387" src="https://virtuallyfun.com/wp-content/uploads/2023/12/install-mongo-on-windows-2.png" alt="" class="wp-image-13513" srcset="https://virtuallyfun.com/wp-content/uploads/2023/12/install-mongo-on-windows-2.png 495w, https://virtuallyfun.com/wp-content/uploads/2023/12/install-mongo-on-windows-2-300x235.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/12/install-mongo-on-windows-2-384x300.png 384w" sizes="auto, (max-width: 495px) 100vw, 495px" /></a></figure>
</div>


<p class="wp-block-paragraph">Of course set it up as a service, make the user if needed/desired (I did!).  I went one step further and compressed the data directory since it&#8217;s on NTFS.  I don&#8217;t think it mattered too much, its been a few days and it&#8217;s only 300MB give or take.  The graylog dataset is very tiny as mentioned it&#8217;s just the configuration, so it wont be that much.</p>



<p class="wp-block-paragraph">After the install is done, start the service, and you can then launch Compass, and you should be able to connect to your local database.  And that&#8217;s it!</p>



<h2 class="wp-block-heading">OpenSearch</h2>



<p class="wp-block-paragraph">OpenSearch is where all the &#8216;magic&#8217; happens, where the data gets written, along with where your searches through the logs run.  If you want to emphasis something, this is it.</p>



<p class="wp-block-paragraph">OpenSearch didn&#8217;t have an install program, rather just a batch file to run and start it.  There is a opensearch-service.bat file to install the service.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/12/install-openearch-service.png"><img loading="lazy" decoding="async" width="985" height="257" src="https://virtuallyfun.com/wp-content/uploads/2023/12/install-openearch-service.png" alt="" class="wp-image-13507" srcset="https://virtuallyfun.com/wp-content/uploads/2023/12/install-openearch-service.png 985w, https://virtuallyfun.com/wp-content/uploads/2023/12/install-openearch-service-300x78.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/12/install-openearch-service-768x200.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/12/install-openearch-service-500x130.png 500w" sizes="auto, (max-width: 985px) 100vw, 985px" /></a><figcaption class="wp-element-caption">Install the opensearch service</figcaption></figure>
</div>


<p class="wp-block-paragraph">There are a few config changes I had to make:</p>



<pre class="wp-block-code"><code>cluster.name: graylog
http.port: 9200
plugins.security.disabled: true</code></pre>



<p class="wp-block-paragraph">After those changes to config\opensearch.yml you can install and run the service.  You can then hit the service via http as http://127.0.0.1:9200 and you should get something similar to this.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="743" height="376" src="https://virtuallyfun.com/wp-content/uploads/2023/12/Screenshot-2023-11-30-133836.png" alt="" class="wp-image-13511" srcset="https://virtuallyfun.com/wp-content/uploads/2023/12/Screenshot-2023-11-30-133836.png 743w, https://virtuallyfun.com/wp-content/uploads/2023/12/Screenshot-2023-11-30-133836-300x152.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/12/Screenshot-2023-11-30-133836-500x253.png 500w" sizes="auto, (max-width: 743px) 100vw, 743px" /><figcaption class="wp-element-caption">OpenSearch up and running</figcaption></figure>



<h2 class="wp-block-heading">Graylog</h2>



<p class="wp-block-paragraph">As you may have seen from the downloads there is no Windows version of Graylog available for download.  HOWEVER it&#8217;s a JAVA app.  So other than one weird Unixisim of where to keep the config file, it&#8217;s just a java thing.</p>



<p class="wp-block-paragraph">I did need a Linux install to set the required passwords.  Although for this sake I used the admin/admin for maximum security, so you can always just work this diff into the server.conf file.</p>



<pre class="wp-block-code"><code>--- graylog.conf.example        2023-11-15 09:05:28.000000000 +0000
+++ server.conf 2023-11-30 21:53:13.580405300 +0000
@@ -54,10 +54,10 @@
 # Generate one by using for example: pwgen -N 1 -s 96
 # ATTENTION: This value must be the same on all Graylog nodes in the cluster.
 # Changing this value after installation will render all user sessions and encrypted values in the database invalid. (e.g. encrypted access tokens)
-password_secret =
+password_secret = ihEUzuJNJOOIVYaNB29ZHZimi438NxKKzSys5UH6O9CoE7jfsrygCbuzzLzkK6hk0xdDb6e8wyAmTNhD7g9JMNZHXr1q40Ps

 # The default root user is named 'admin'
-#root_username = admin
+root_username = admin

 # You MUST specify a hash password for the root user (which you only need to initially set up the
 # system and in case you lose connectivity to your authentication backend)
@@ -65,7 +65,7 @@
 # modify it in this file.
 # Create one by using for example: echo -n yourpassword | shasum -a 256
 # and put the resulting hash value into the following line
-root_password_sha2 =
+root_password_sha2 = 8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918

 # The email address of the root user.
 # Default is empty
@@ -102,7 +102,7 @@
 # If the port is omitted, Graylog will use port 9000 by default.
 #
 # Default: 127.0.0.1:9000
-#http_bind_address = 127.0.0.1:9000
+http_bind_address = 192.168.1.5:9000
 #http_bind_address = &#91;2001:db8::1]:9000

 #### HTTP publish URI
@@ -192,6 +192,7 @@
 #
 # Default: http://127.0.0.1:9200
 #elasticsearch_hosts = http://node1:9200,http://user:password@node2:19200
+elasticsearch_hosts = http://127.0.0.1:9200

 # Maximum number of attempts to connect to elasticsearch on boot for the version probe.
 #
@@ -489,7 +490,9 @@
 #auto_restart_inputs = true

 # Enable the message journal.
-message_journal_enabled = true
+# message_journal_enabled = true
+# https://github.com/Graylog2/graylog2-server/issues/12949#issuecomment-1219146839
+message_journal_enabled = false

 # The directory which will be used to store the message journal. The directory must be exclusively used by Graylog and
 # must not contain any other files than the ones created by Graylog itself.</code></pre>



<p class="wp-block-paragraph">There is a few weird things in this config, The first one being the bind address to the external NIC, the elasticsearch_hosts being set to http as we ended up removing the SSL as Graylog didn&#8217;t like the self signed certs.  However, since it&#8217;s all loopback traffic on the same machine, it does seem a bit silly to be encrypting to yourself. The other weird gotcha was message_journal_enabled, which fails after a few hours on both WSLv1 &amp; a Win64 native.  I don&#8217;t know why but it&#8217;s a common problem on non EXT2FS based filesystems, and sadly the solution everywhere is just turn it off.</p>



<p class="wp-block-paragraph">Starting Graylog is kind of easy once you work out the CLI from the Linux script, using the JVM from OpenSearch.  Take note of the log4j2, the one from that big deal vulnerability in all the fancy web apps.</p>



<pre class="wp-block-code"><code>\opensearch\jdk\bin\java.exe -Dlog4j2.formatMsgNoLookups=true ^
 -Djdk.tls.acknowledgeCloseNotify=true ^
 -Xms1g -Xmx1g -XX:+UseG1GC ^
 -XX:-OmitStackTraceInFastThrow ^
 -jar graylog.jar server -f server.conf ^
 -p graylog.pid </code></pre>



<p class="wp-block-paragraph">I run this manually.  With any luck you&#8217;ll see it connect to the databases and go live!</p>



<pre class="wp-block-code"><code>2023-12-02 15:37:37,749 INFO : org.mongodb.driver.cluster - Monitor thread successfully connected to server with description ServerDescription{address=localhost:27017, type=STANDALONE, state=CONNECTED, ok=true, minWireVersion=0, maxWireVersion=17, maxDocumentSize=16777216, logicalSessionTimeoutMinutes=30, roundTripTimeNanos=29209200}
2023-12-02 15:37:45,518 INFO : org.graylog2.storage.providers.ElasticsearchVersionProvider - Elasticsearch cluster is running OpenSearch:2.11.0
2023-12-02 15:37:48,593 INFO : org.graylog2.bootstrap.ServerBootstrap - Graylog server 5.2.1+4337e8c starting up
2023-12-02 15:37:48,594 INFO : org.graylog2.bootstrap.ServerBootstrap - JRE: Eclipse Adoptium 17.0.8 on Windows 10 10.0
2023-12-02 15:37:48,594 INFO : org.graylog2.bootstrap.ServerBootstrap - Deployment: unknown
2023-12-02 15:37:48,595 INFO : org.graylog2.bootstrap.ServerBootstrap - OS: Windows 10
2023-12-02 15:37:48,595 INFO : org.graylog2.bootstrap.ServerBootstrap - Arch: amd64
2023-12-02 15:37:48,694 INFO : org.graylog2.bootstrap.ServerBootstrap - Running 67 migrations...</code></pre>



<p class="wp-block-paragraph">And from there you ought to be ready to run!?</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/12/welcom-to-graylog.png"><img loading="lazy" decoding="async" width="1024" height="371" src="https://virtuallyfun.com/wp-content/uploads/2023/12/welcom-to-graylog-1024x371.png" alt="" class="wp-image-13517" srcset="https://virtuallyfun.com/wp-content/uploads/2023/12/welcom-to-graylog-1024x371.png 1024w, https://virtuallyfun.com/wp-content/uploads/2023/12/welcom-to-graylog-300x109.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/12/welcom-to-graylog-768x278.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/12/welcom-to-graylog-1536x556.png 1536w, https://virtuallyfun.com/wp-content/uploads/2023/12/welcom-to-graylog-500x181.png 500w, https://virtuallyfun.com/wp-content/uploads/2023/12/welcom-to-graylog.png 1538w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<p class="wp-block-paragraph">I don&#8217;t want to re-install but it should offer a chance to setup the self signed certificate maintenance, and then you are dumped into the system.  One nice thing on Windows is you can create UDP 514 Syslog captures with no silly port reflection.  Although you could run them in WSLv1 or VM&#8217;s entirely by having all of this as native Win64 makes the memory and performance overhead much lower.</p>



<h2 class="wp-block-heading">Apache </h2>



<p class="wp-block-paragraph">I use graylog to capture my blog&#8217;s Apache stats.</p>



<p class="wp-block-paragraph">In my apache site config under the logging I added this:</p>



<pre class="wp-block-code"><code>LogFormat "{ \"version\": \"1.1\", \"host\": \"%V\", \"short_message\": \"%r\", \"timestamp\": %{%s}t, \"level\": 6, \"_user_agent\": \"%{User-Agent}i\", \"_source_ip\": \"%a\", \"_duration_usec\": %D, \"_duration_sec\": %T, \"_request_size_byte\": %O, \"_http_status_orig\": %s, \"_http_status\": %>s, \"_http_request_path\": \"%U\", \"_http_request\": \"%U%q\", \"_http_method\": \"%m\", \"_http_referer\": \"%{Referer}i\", \"_from_apache\": \"true\" }" graylog_access

CustomLog "|/usr/bin/nc -u 127.0.0.1 12201" graylog_access</code></pre>



<p class="wp-block-paragraph">Of course, keeping in mind that I do front with Cloudflare, so the source_ip will probably be different for you.  Netcat does the job nicely, and since it&#8217;s WSLv1 all the TCP/IP is unified so it can intermix just fine.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/12/graylog-gelf-udp.png"><img loading="lazy" decoding="async" width="1024" height="235" src="https://virtuallyfun.com/wp-content/uploads/2023/12/graylog-gelf-udp-1024x235.png" alt="" class="wp-image-13519" srcset="https://virtuallyfun.com/wp-content/uploads/2023/12/graylog-gelf-udp-1024x235.png 1024w, https://virtuallyfun.com/wp-content/uploads/2023/12/graylog-gelf-udp-300x69.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/12/graylog-gelf-udp-768x176.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/12/graylog-gelf-udp-1536x352.png 1536w, https://virtuallyfun.com/wp-content/uploads/2023/12/graylog-gelf-udp-500x115.png 500w, https://virtuallyfun.com/wp-content/uploads/2023/12/graylog-gelf-udp.png 1812w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">GELF UDP</figcaption></figure>
</div>


<p class="wp-block-paragraph">Setting up the input as the stock boring GELF-UDP was a snap, and in no time apache is now sending the access log to Graylog in GELF, and all is well.  It&#8217;s great!</p>



<p class="wp-block-paragraph">I know that my setup is.. far from normal, and I do have quite a few VM&#8217;s but this old machine is more than capable of hosting this site, a few others, along with the overhead of Graylog.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/12/blog-cpu.png"><img loading="lazy" decoding="async" width="825" height="557" src="https://virtuallyfun.com/wp-content/uploads/2023/12/blog-cpu.png" alt="" class="wp-image-13520" srcset="https://virtuallyfun.com/wp-content/uploads/2023/12/blog-cpu.png 825w, https://virtuallyfun.com/wp-content/uploads/2023/12/blog-cpu-300x203.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/12/blog-cpu-768x519.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/12/blog-cpu-444x300.png 444w" sizes="auto, (max-width: 825px) 100vw, 825px" /></a><figcaption class="wp-element-caption">IBM Xeon workstation</figcaption></figure>
</div>


<p class="wp-block-paragraph">Would I recommend this in production?  I have to think that since so much of this is now available on native Win64 that at least 2/3rd of it is capable.  I&#8217;m not to worried about the potential of Graylog dropping data if the host is interrupted as everything else is here.  I can understand if other people have very different thoughts on that.  Not everyone wants to run a 90&#8217;s datacentre on some old machine tucked under the Christmas Tree, but I guess I&#8217;m weird enough to do so.</p>



<p class="wp-block-paragraph">I suppose the where to go from here, is to get everything else logging to graylog so I can build dashboards, and reports.  But that sounds like a lot of work, and at the moment I think this is a good enough place to stop.  I should add that it&#8217;s been running for nearly 2 days now, so that&#8217;s good enough for prime time right? RIGHT?!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2023/12/02/running-graylog-on-windows/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
