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

<channel>
	<title>ideatrash</title>
	<atom:link href="https://ideatrash.net/feed" rel="self" type="application/rss+xml"/>
	<link>https://ideatrash.net</link>
	<description>Society, writing, geekdom, politics, and errata. By Steven Saus.</description>
	<lastBuildDate>Mon, 13 Apr 2026 18:18:18 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://ideatrash.net/wp-content/uploads/2018/03/cropped-DARK_Square-1-1-32x32.jpg</url>
	<title>ideatrash</title>
	<link>https://ideatrash.net</link>
	<width>32</width>
	<height>32</height>
</image> 
<atom:link href="https://pubsubhubbub.appspot.com" rel="hub"/>
<atom:link href="https://pubsubhubbub.superfeedr.com" rel="hub"/>
<atom:link href="https://websubhub.com/hub" rel="hub"/>
<atom:link href="https://ideatrash.net/feed" rel="self"/>
	<itunes:explicit>no</itunes:explicit><itunes:image href="http://farm6.static.flickr.com/5044/5321894773_8f6541504a.jpg"/><itunes:keywords>drabble,fiction,free,flash,fiction</itunes:keywords><itunes:summary>Drabbles and other random flash fiction from Steven Saus, aka Uriel Wheeler or Steven the Nuclear Man.  Often heard on Laurence Simon's 100 Word Story Weekly Challenge.</itunes:summary><itunes:subtitle>Radio Free Steven The Nuclear Man</itunes:subtitle><itunes:category text="Society &amp; Culture"><itunes:category text="Personal Journals"/></itunes:category><itunes:owner><itunes:email>steven@alliterationink.com</itunes:email></itunes:owner><item>
		<title>Cover Your Story Scaffolding, Or, Grumbling About Monarch Season 2</title>
		<link>https://ideatrash.net/2026/04/cover-your-story-scaffolding-or-grumbling-about-monarch-season-2.html</link>
					<comments>https://ideatrash.net/2026/04/cover-your-story-scaffolding-or-grumbling-about-monarch-season-2.html#comments</comments>
		
		
		<pubDate>Mon, 13 Apr 2026 18:18:15 +0000</pubDate>
				<category><![CDATA[craft of writing]]></category>
		<category><![CDATA[writing]]></category>
		<category><![CDATA[godzilla]]></category>
		<category><![CDATA[plot]]></category>
		<category><![CDATA[story]]></category>
		<category><![CDATA[tropes]]></category>
		<guid isPermaLink="false">https://ideatrash.net/?p=145152</guid>

					<description><![CDATA[<a href="https://ideatrash.net/2026/04/cover-your-story-scaffolding-or-grumbling-about-monarch-season-2.html" title="Cover Your Story Scaffolding, Or, Grumbling About Monarch Season 2" rel="nofollow"><img width="744" height="400" src="https://ideatrash.net/wp-content/uploads/2026/04/Untitled.jpg" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin: auto; margin-bottom: 5px;max-width: 100%;" link_thumbnail="1" decoding="async" fetchpriority="high" srcset="https://ideatrash.net/wp-content/uploads/2026/04/Untitled.jpg 744w, https://ideatrash.net/wp-content/uploads/2026/04/Untitled-300x161.jpg 300w" sizes="(max-width: 744px) 100vw, 744px" /></a>Really, put in some effort.]]></description>
										<content:encoded><![CDATA[<a href="https://ideatrash.net/2026/04/cover-your-story-scaffolding-or-grumbling-about-monarch-season-2.html" title="Cover Your Story Scaffolding, Or, Grumbling About Monarch Season 2" rel="nofollow"><img width="744" height="400" src="https://ideatrash.net/wp-content/uploads/2026/04/Untitled.jpg" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin: auto; margin-bottom: 5px;max-width: 100%;" link_thumbnail="1" decoding="async" srcset="https://ideatrash.net/wp-content/uploads/2026/04/Untitled.jpg 744w, https://ideatrash.net/wp-content/uploads/2026/04/Untitled-300x161.jpg 300w" sizes="(max-width: 744px) 100vw, 744px" /></a>
<p>&#8220;Never let your readers hear the dice roll.&#8221;</p>



<p>It&#8217;s common advice from genre writers at gaming conventions, and it&#8217;s good advice.</p>



<p>It&#8217;s not a prohibition from using the framework or scaffolding of a game system — <em>Honor Among Thieves</em> uses <a href="https://redlib.catsarch.com/r/DnD/comments/1eki6ru/what_are_some_things_only_dd_players_notice_in/" target="_blank" rel="nofollow">initiative order and D&amp;D&#8217;s time pacing during its combat scenes</a>. It&#8217;s done well and feels natural even if you&#8217;ve never heard of the game before.  While that stands out to D&amp;D players, that scaffolding is not <em>obvious</em>, even though it is present.</p>



<p>The principle applies more broadly; when the scaffolding shows, the story suffers.</p>



<p><a href="https://tvtropes.org/pmwiki/pmwiki.php/Main/PlotInducedStupidity" target="_blank" rel="nofollow">Plot stupidity</a>, <a href="https://tvtropes.org/pmwiki/pmwiki.php/Main/DeusExMachina" target="_blank" rel="nofollow">deus ex machinas</a>, anything where it leads the reader (or viewer) to suddenly realize that the <em>only</em> reason certain things are happening is &#8220;because there has to be a plot.&#8221;  (The variant &#8220;<a href="https://tvtropes.org/pmwiki/pmwiki.php/Main/OnlyTheAuthorCanSaveThemNow" target="_blank" rel="nofollow">Only the Author Can Save Them Now</a>&#8221; is definitely what I mean here.)</p>



<p>I&#8217;m only three episodes into season two of <em>Monarch: Legacy of Monsters</em>, and it seems determined to strip away the facade and show off that scaffolding.</p>



<p>Don&#8217;t get me wrong. I really enjoyed the first season of <a href="https://ideatrash.net/2024/01/godzilla-has-a-cthulhu-problem-review-of-monarch-legacy-of-monsters.html">Monarch: Legacy of Monsters</a>; it was nuanced, layered, and <em>smart</em>. While characters made occasional stupid choices, it made sense within the context of the story and the nature of that character. The hotheaded military guy is aggressive when that&#8217;s not a smart move? Makes sense. The idealistic person is blindsided by humans being awful? That tracks. The burned-by-the-system cynical character doesn&#8217;t trust anyone enough to share information? Of course not.</p>



<p>In season two, a world where <em>Godzilla is known to exist</em>, Monarch is still ill-funded and ineffectual. A few real examples <em>from the same episode</em>:  It absolutely makes sense that corporations would try to profit from Titans (thank you <em>Pacific Rim</em>), but a third of a way through the second season seems like a strange place for a group you&#8217;ve never heard of before suddenly be ultra-influential and an outsized factor. Ah, there&#8217;s giant billboards showing some of your party&#8217;s faces as wanted fugitives? Let&#8217;s have them go run a simple errand instead of laying low, I&#8217;m sure it&#8217;ll be fine. Oh, you just happen to have an old &#8220;prototype&#8221; of the exact doohickey we need? How <em>convenient</em>.</p>



<p>Of course we all know that, yes, it IS convenient for the authors and writers. Those things drive the plot. You <em>need</em> scaffolding to give the story structure and shape. But when those convenient coincidences (or lapses in judgment or memory) are too large or too common, your readers and viewers are having to mentally duck and weave around that scaffolding to follow the story.</p>



<p><strong>They are paying more attention to the structure than to the story itself.</strong></p>



<p>There are outliers — <em><a href="https://amzn.to/48iNSmX" target="_blank" rel="nofollow">House of Leaves</a></em> immediately comes to mind — where the structure is very obvious, but rather than detracting from the experience, helps draw one into it. I found Choose-Your-Own-Adventure stories compelling, not because I just wanted to &#8220;win&#8221; and get the best ending, but seeing how the story <em>changed</em> with those decisions. Even my pet peeve of &#8220;clap for Tinkerbell&#8221; — in the stage versions, at least — <em>increases</em> the immersion for the young audience it&#8217;s meant for.</p>



<p>If you&#8217;re thinking about your work in progress, TTRPG campaign, or what you&#8217;ll write in the future, there is a fairly easy solution. You know what decision you want the characters to make. You know where the next scenario or scene should happen. You know they&#8217;ve got to survive this unsurvivable fight <em>somehow</em>.</p>



<p>All you have to do is to <em>rationalize it</em>.  And if you can&#8217;t rationalize it right away, add small details until you can.</p>



<p>One more actual example <em><strong>from the same episode</strong></em> of <em>Monarch: Legacy of Monsters</em>:</p>



<p>Our protagonists are being pursued by primitive religious zealots at night. It is a poorly lit night, and in some kind of wilderness, so everyone is just fast-walking. The zealots, who are maybe 100-200 meters back, want the protagonist&#8217;s camera, but are probably going to kill our protagonists as well. Ah, take the film out of the camera! That way we can keep the film and … leave the camera on the ground which may &#8220;buy them some time&#8221;. Immediate hard cut to one of the zealots walking carefully and examining the ground…and the camera pans down to show us our protagonists crouched in a small depression only 4 meters away.</p>



<p>Obviously they wanted this tense, life-in-danger scene. Across three different &#8220;will they be revealed&#8221; moments it both tense and provides a character moment for one of the zealots as well.</p>



<p>But to get to this scene, our protagonists had to <em>wait</em> for the zealots to catch up.  They had to just&#8230;twiddle their thumbs instead of using the time the camera supposedly bought.</p>



<p>It would be easy to fix. </p>



<p>The ditch might be the only place to hide they could get to.  One of them could have the classic &#8220;twisted ankle&#8221;.  They argue too long about whether or not to give up the camera.  Then they have a <em>reason</em> to be in the situation they&#8217;re in.</p>



<p>The same story beats can happen. The same scenes.  </p>



<p>It just takes a little more effort and thoughtfulness.</p>



<p>This may seem like a small, unimportant quibble, and to a degree it is. We&#8217;re all aware there has to be some degree of scaffolding. There will be small imperfections here and there. </p>



<p>It&#8217;s what I said above, though.  All those examples above are <em>from a single episode</em>.  Even if any of them wasn&#8217;t big enough to kick me out of the story completely, having it happen over and over again was just too much.</p>



<p>You want the ways you get the story from one scene to another, or get your characters from one location to another, to at least <em>try</em> to make sense <em>within</em> the fictional universe.</p>



<p>It shows that you care enough about the story to make sure the scaffolding doesn&#8217;t show.</p>



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



<p>(1) Yes, I know there are some times that is acceptable or expected, work with me here.</p>



<p>Featured Image by <a href="https://pixabay.com/users/bru-no-1161770/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=3142115" target="_blank" rel="nofollow">Bruno</a> from <a href="https://pixabay.com//?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=3142115" target="_blank" rel="nofollow">Pixabay</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://ideatrash.net/2026/04/cover-your-story-scaffolding-or-grumbling-about-monarch-season-2.html/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			<dc:creator>steven@alliterationink.com (Steven Saus)</dc:creator></item>
		<item>
		<title>Compensating For (Temporary?) Hearing Loss With Linux</title>
		<link>https://ideatrash.net/2026/04/compensating-for-temporary-hearing-loss-with-linux.html</link>
					<comments>https://ideatrash.net/2026/04/compensating-for-temporary-hearing-loss-with-linux.html#respond</comments>
		
		
		<pubDate>Sun, 12 Apr 2026 00:07:08 +0000</pubDate>
				<category><![CDATA[health]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[hearing]]></category>
		<category><![CDATA[linux]]></category>
		<guid isPermaLink="false">https://ideatrash.net/?p=145139</guid>

					<description><![CDATA[<a href="https://ideatrash.net/2026/04/compensating-for-temporary-hearing-loss-with-linux.html" title="Compensating For (Temporary?) Hearing Loss With Linux" rel="nofollow"><img width="790" height="451" src="https://ideatrash.net/wp-content/uploads/2026/04/rpeppi-photoshop-5173600.jpg" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin: auto; margin-bottom: 5px;max-width: 100%;" link_thumbnail="1" decoding="async" srcset="https://ideatrash.net/wp-content/uploads/2026/04/rpeppi-photoshop-5173600.jpg 800w, https://ideatrash.net/wp-content/uploads/2026/04/rpeppi-photoshop-5173600-300x171.jpg 300w, https://ideatrash.net/wp-content/uploads/2026/04/rpeppi-photoshop-5173600-768x439.jpg 768w" sizes="(max-width: 790px) 100vw, 790px" /></a>An online hearing test and EasyEffects to the rescue.]]></description>
										<content:encoded><![CDATA[<a href="https://ideatrash.net/2026/04/compensating-for-temporary-hearing-loss-with-linux.html" title="Compensating For (Temporary?) Hearing Loss With Linux" rel="nofollow"><img width="790" height="451" src="https://ideatrash.net/wp-content/uploads/2026/04/rpeppi-photoshop-5173600.jpg" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin: auto; margin-bottom: 5px;max-width: 100%;" link_thumbnail="1" decoding="async" srcset="https://ideatrash.net/wp-content/uploads/2026/04/rpeppi-photoshop-5173600.jpg 800w, https://ideatrash.net/wp-content/uploads/2026/04/rpeppi-photoshop-5173600-300x171.jpg 300w, https://ideatrash.net/wp-content/uploads/2026/04/rpeppi-photoshop-5173600-768x439.jpg 768w" sizes="(max-width: 790px) 100vw, 790px" /></a>
<p>I got an infection in both ears this week.</p>



<p>It was pretty sudden; over the course of twelve hours I went from feeling a little under-the-weather to sitting in a retail chain&#8217;s clinic with both eardrums having at least a small rupture and serous (like from a blister) drainage from each of them (1), occasional dizziness, and a prescription for antibiotics.</p>



<p>I spent the next 36 hours pretty much in bed, and I&#8217;m still recovering as I write this. While I don&#8217;t <em>feel</em> as unwell as I did a few days ago, I&#8217;m still very aware that my hearing has taken a (hopefully temporary) hit.</p>



<p>This isn&#8217;t the first time I&#8217;ve had an eardrum blow from an infection; the prior time was just before the pandemic, but I&#8217;m still a little freaked out about the (again, hopefully temporary) loss of hearing in both ears. My hearing isn&#8217;t the best to begin with, and once you add in sensory processing issues, it was already a bit of a problem at times.</p>



<p>It&#8217;s not the watery &#8220;muffled&#8221; effect so often used to illustrate hearing loss; it&#8217;s mostly just like someone turned the volume knob down. But how bad is it, <em>really</em>? (If, fingers crossed, temporarily.)</p>



<p>I have a good set of over-ear headphones, so I slapped those on and headed to this <a href="https://github.com/tzvatot/hearing-test" target="_blank" rel="nofollow">open-source online hearing test</a> with its <a href="https://tzvatot.github.io/hearing-test/" target="_blank" rel="nofollow">handy-dandy online demo</a>. (An offline tool that provides similar functionality for linux is here: <a href="https://gitlab.com/kreezxil/Linux-hearing-screen-toolkit" target="_blank" rel="nofollow">https://gitlab.com/kreezxil/Linux-hearing-screen-toolkit</a> .)</p>



<figure class="wp-block-image"><img decoding="async" width="872" height="575" src="https://ideatrash.net/wp-content/uploads/2026/04/s29Jq0T.jpg" alt="2026-04-11_19.03.11" class="wp-image-145142" srcset="https://ideatrash.net/wp-content/uploads/2026/04/s29Jq0T.jpg 872w, https://ideatrash.net/wp-content/uploads/2026/04/s29Jq0T-300x198.jpg 300w, https://ideatrash.net/wp-content/uploads/2026/04/s29Jq0T-768x506.jpg 768w" sizes="(max-width: 872px) 100vw, 872px" /></figure>



<p>A short while later, I had this terrifying chart and a downloadable CSV file showing how badly the upper bounds of my hearing are degraded. I couldn&#8217;t hear the 8000 Hz tone at all, even though I could hear the audio channels click on to produce it! Luckily, most of the damage is above where speech typically happens, but that&#8217;s still… not great. Especially with a job hunt underway, I kind of need my ears at the moment.</p>



<p>Luckily for me, a lot of that can be funneled through technology — VOIP, video chats, and so on. Which means I have a chance to mess with the audio beforehand.</p>



<p>I used <a href="https://github.com/wwmm/easyeffects" target="_blank" rel="nofollow">EasyEffects</a> so that it was across my whole system and not just a single application. Using just the equalizer, I got it about right, then verified that I was on the right path (and accepted some suggested tweaks from) an LLM. I ended up with this equalizer setting; the main differences the LLM suggested were starting by turning everything down so I had more room to amplify without clipping and turning the very high frequencies back <em>down</em> to avoid too much hiss.</p>



<figure class="wp-block-image"><img decoding="async" width="1024" height="575" src="https://ideatrash.net/wp-content/uploads/2026/04/T0qEIT3.jpg" alt="2026-04-11_19.20.10" class="wp-image-145143" srcset="https://ideatrash.net/wp-content/uploads/2026/04/T0qEIT3.jpg 1024w, https://ideatrash.net/wp-content/uploads/2026/04/T0qEIT3-300x168.jpg 300w, https://ideatrash.net/wp-content/uploads/2026/04/T0qEIT3-768x431.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>It also suggested adding some tweaks with multiband compression that I quite honestly don&#8217;t understand (&#8220;applying compression only to the upper bands to mimic hearing aid compression curves&#8221;?) but provide a small, but audible difference in quality for me.</p>



<p>Regardless, even without the LLM-suggested tweaks, having a system-wide user interface like <a href="https://github.com/wwmm/easyeffects" target="_blank" rel="nofollow">EasyEffects</a> made it pretty easy to adjust things so that everything sounds quite a bit clearer than it did before. I understand there&#8217;s even a way to build this directly into PipeWire without the nice user interface which will reduce latency, but since this will (hopefully!) not be quite so bad in a week or two, I&#8217;m not going to make any permanent changes yet.</p>



<p><a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC12718930/" target="_blank" rel="nofollow">But with hearing loss being a major risk factor for developing dementia</a>, once my hearing has stabilized and I either have a new position with medical coverage (or Medicaid re-approves me), I&#8217;ll be able to take this data to a real professional and see how else I can cyborg my hearing back into better functionality.</p>



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



<p>(1) Any benefit from turning down the auditory stimulation is THOROUGHLY offset by the utterly squicky sensation of fluid dribbling slowly from <em>both</em> ears… <em>shudder</em></p>



<p></p>



<p>Featured Image by <a href="https://pixabay.com/users/rpeppi-1587740/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=5173600" target="_blank" rel="nofollow">Viva la vida!!! Rosa Matilde Peppi</a> from <a href="https://pixabay.com//?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=5173600" target="_blank" rel="nofollow">Pixabay</a></p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://ideatrash.net/2026/04/compensating-for-temporary-hearing-loss-with-linux.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			<dc:creator>steven@alliterationink.com (Steven Saus)</dc:creator></item>
		<item>
		<title>You Posted It Publicly, So Who…Or What…Gets to Read It?</title>
		<link>https://ideatrash.net/2026/03/you-posted-it-publicly-so-who-or-what-gets-to-read-it.html</link>
					<comments>https://ideatrash.net/2026/03/you-posted-it-publicly-so-who-or-what-gets-to-read-it.html#comments</comments>
		
		
		<pubDate>Mon, 30 Mar 2026 17:39:05 +0000</pubDate>
				<category><![CDATA[copyright]]></category>
		<category><![CDATA[social media]]></category>
		<category><![CDATA[AI/ML]]></category>
		<category><![CDATA[technology]]></category>
		<guid isPermaLink="false">https://ideatrash.net/?p=145120</guid>

					<description><![CDATA[<a href="https://ideatrash.net/2026/03/you-posted-it-publicly-so-who-or-what-gets-to-read-it.html" title="You Posted It Publicly, So Who&#8230;Or What&#8230;Gets to Read It?" rel="nofollow"><img width="790" height="319" src="https://ideatrash.net/wp-content/uploads/2026/03/geralt-social-media-1989152.jpg" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin: auto; margin-bottom: 5px;max-width: 100%;" link_thumbnail="1" decoding="async" srcset="https://ideatrash.net/wp-content/uploads/2026/03/geralt-social-media-1989152.jpg 800w, https://ideatrash.net/wp-content/uploads/2026/03/geralt-social-media-1989152-300x121.jpg 300w, https://ideatrash.net/wp-content/uploads/2026/03/geralt-social-media-1989152-768x310.jpg 768w" sizes="(max-width: 790px) 100vw, 790px" /></a>There is an important distinction between objecting to your content being used to train an AI/LLM, and for one to process your content. Blurring that distinction does nobody [&#8230;]]]></description>
										<content:encoded><![CDATA[<a href="https://ideatrash.net/2026/03/you-posted-it-publicly-so-who-or-what-gets-to-read-it.html" title="You Posted It Publicly, So Who&#8230;Or What&#8230;Gets to Read It?" rel="nofollow"><img width="790" height="319" src="https://ideatrash.net/wp-content/uploads/2026/03/geralt-social-media-1989152.jpg" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin: auto; margin-bottom: 5px;max-width: 100%;" link_thumbnail="1" decoding="async" srcset="https://ideatrash.net/wp-content/uploads/2026/03/geralt-social-media-1989152.jpg 800w, https://ideatrash.net/wp-content/uploads/2026/03/geralt-social-media-1989152-300x121.jpg 300w, https://ideatrash.net/wp-content/uploads/2026/03/geralt-social-media-1989152-768x310.jpg 768w" sizes="(max-width: 790px) 100vw, 790px" /></a>
<h4 class="wp-block-heading">There is an important distinction between objecting to your content being used to train an AI/LLM, and for one to <em>process</em> your content. Blurring that distinction does nobody any favors.</h4>



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



<p>What rights do you have to your posts on social media?</p>



<p>I started thinking about this due to a reaction some users on Mastodon had <a href="https://zeitgeist.blue/" target="_blank" rel="nofollow">to a tool designed to summarize a user&#8217;s own home feed so you didn&#8217;t have to doomscroll to catch up</a>.</p>



<p>The objections were specificially about <em>how</em> the summarizing was being done — by an LLM.</p>



<figure class="wp-block-image"><img decoding="async" width="453" height="509" src="https://ideatrash.net/wp-content/uploads/2026/03/f1659553f4cc57dc.jpg" alt="Screenshot of 3 posts:  Laurie Voss @seldo  https://zeitgeist.blue is a multi-social-network app that summarizes your feed for the last 24 hours to let you catch up with doomscrolling. Now with support for Mastodon!  [Embedded link to: zeitgeist.blue Zeitgeist Summarize your Bluesky, Twitter, or Mastodon feed]   Jan Lehnardt @janl@narrativ.es  @seldo how can I make sure my posts are never used by this app to be sent to an LLM vendor?   Laurie Voss @seldo@alpaca.gold  @janl You would need to block me from following you, I suppose." class="wp-image-145126" srcset="https://ideatrash.net/wp-content/uploads/2026/03/f1659553f4cc57dc.jpg 453w, https://ideatrash.net/wp-content/uploads/2026/03/f1659553f4cc57dc-267x300.jpg 267w" sizes="(max-width: 453px) 100vw, 453px" /></figure>



<p>I&#8217;ve been thinking about this a <em>lot</em> since then.</p>



<p>Not about the tool itself, or whether or not it&#8217;s worthwhile. But the <em>objections.</em></p>



<p>Because the only way Jan (or anyone else) can actually prevent that is by <strong>not posting publicly</strong>.</p>



<p>Before I go any further: <strong>I think there&#8217;s an important difference between &#8220;my publicly posted content cannot be used to train an LLM&#8221; and &#8220;my publicly posted content cannot be see or used by certain classes of programs, people or entities.&#8221;</strong></p>



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



<p>First, the technical aspect: Even if those who object block Voss, that won&#8217;t achieve the goal if you have any public posts. That just means that <em>when Voss uses the tool</em> it won&#8217;t include those posts. But if someone <em>else</em> does, your public posts will be included.</p>



<p>That&#8217;s because they&#8217;re… well, public. Public posts (or public web pages) have to get sent to the receiving computer to be displayed. We&#8217;re running up against the same problem that DRM — digital rights management — has:  In order to show the content, you have to send the content to the person getting it.</p>



<p>Because viewing digital content inherently means copying it, we have to briefly consider copyright <em>for simply viewing</em> a post.  (I am not a copyright lawyer, this isn&#8217;t legal advice, I&#8217;m just a mostly-knowledgeable layperson, and I&#8217;m discussing from a US perspective.) </p>



<p>You automatically have copyright on anything you&#8217;ve written in the US; technically you are providing a license to display your content to the social media site.  But what rights do <em>others</em> have in regard to what you wrote?</p>



<p>The closest real-world analogy we have is of public photography; <a href="https://legalclarity.org/what-the-supreme-court-says-about-public-photography/" target="_blank" rel="nofollow">if you&#8217;re in a public space and do not have a reasonable expectation of privacy</a>, then taking a photo of what you see is a reasonable expectation. Posting publicly on a social media feed is our digital equivalent to being seen in public.  Taking a photograph is equivalent to displaying the post on the end user&#8217;s system. Add to that the ToS and express &#8220;right to display&#8221; that&#8217;s included, and that part is handled.</p>



<p>At that point, the copyright test depends entirely on the output. While <a href="https://legalclarity.org/are-social-media-posts-protected-by-copyright/" target="_blank" rel="nofollow">your social media posts are copyrighted</a>, that means that someone cannot <em>replicate</em> it. Arguably, my screencapture of the toots above would fall under this rule (although fair use clearly applies here). While a copyright holder does have the right to prepare derivative works, unless you&#8217;re discussing a summary of <em>just</em> your social media posts (rather than an aggregate of a timeline), that&#8217;d be a hard thing to prove.</p>



<p>It&#8217;s worth noting that this tool we&#8217;re talking about is utilizing other providers on the back end — either Anthropic or Copilot. So the data is being sent to them; whether or not they are using that data to <em>train</em> the LLM on is subject to whatever their ToS is.</p>



<p>That&#8217;s an important distinction — most copyright claims against LLMs is because they <em>are</em> substantially reproducing the style or content of the works it was trained on. <strong>That&#8217;s why I think giving the rights to use your content to <em>train</em> an LLM should always be opt-in only.</strong></p>



<p>In contrast, the summaries this tool produces look like this: </p>



<figure class="wp-block-image size-full"><img decoding="async" width="1000" height="341" src="https://ideatrash.net/wp-content/uploads/2026/03/bafkreihrlhm6ixvdgpbkmdyea75olxmsgh2yc5leg2hilvlcwnijvfdm64.webp" alt="" class="wp-image-145121" srcset="https://ideatrash.net/wp-content/uploads/2026/03/bafkreihrlhm6ixvdgpbkmdyea75olxmsgh2yc5leg2hilvlcwnijvfdm64.webp 1000w, https://ideatrash.net/wp-content/uploads/2026/03/bafkreihrlhm6ixvdgpbkmdyea75olxmsgh2yc5leg2hilvlcwnijvfdm64-300x102.webp 300w, https://ideatrash.net/wp-content/uploads/2026/03/bafkreihrlhm6ixvdgpbkmdyea75olxmsgh2yc5leg2hilvlcwnijvfdm64-768x262.webp 768w" sizes="(max-width: 1000px) 100vw, 1000px" /></figure>



<p>This looks nothing like a timeline feed, isn&#8217;t reproducing anyone&#8217;s original content or style, and is clearly transformative.  <strong>(Although whether or not you should <em>trust</em> a summary by an LLM is a completely separate issue!)</strong></p>



<p>Whatever rules we apply to this tool, we also have to apply to a tool that, say, creates alt text for images that do not have them… even if that tool is a human.</p>



<p>Those copyright tests have <em>nothing</em> to do with whether it is a human, program, or LLM creating that output.</p>



<p>So the <em>actual</em> objection (and demand) is not actually that there&#8217;s a summary of a social media feed. <strong>The objection is about an LLM doing it.</strong> </p>



<p>It&#8217;s the functional equivalent of &#8220;you can only read this post on Firefox, you&#8217;re not allowed to read it on Chrome.&#8221;</p>



<p>And that is entirely too close to the &#8220;shrink-wrap EULAs&#8221; for my comfort.</p>



<p>You know the type: &#8220;By receiving this email you agree to&#8221; and the like. Sort of like <a href="https://ideatrash.net/anti-eula">the anti-EULA that you&#8217;re now subject to because there&#8217;s a link to it in this post</a>. They&#8217;re all bullshit, and particularly in cases like this, where it&#8217;s just one parties&#8217; unwritten social expectation. I cannot say, for example, &#8220;all employees of this company cannot read or discuss my posts&#8221;<em>in</em> the posts and seriously expect that to hold water. (I&#8217;m sure you can imagine much more distasteful examples.)</p>



<p>Again, I think there&#8217;s an important difference between &#8220;train an LLM on my content&#8221; and &#8220;my publicly posted content cannot be see or used by certain classes of people or entities.&#8221; The first explicitly prepares the LLM to make derivative content. The second is functionally equivalent to viewing a post on your RSS reader, browser, or client. </p>



<p></p>



<p>There are real, valid concerns about AI/ML.  Freaking out over an AI simply reading your <em>public</em> posts distracts from those real concerns.</p>



<p></p>



<p>Featured Image by <a href="https://pixabay.com/users/geralt-9301/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=1989152" target="_blank" rel="nofollow">Gerd Altmann</a> from <a href="https://pixabay.com//?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=1989152" target="_blank" rel="nofollow">Pixabay</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://ideatrash.net/2026/03/you-posted-it-publicly-so-who-or-what-gets-to-read-it.html/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			<dc:creator>steven@alliterationink.com (Steven Saus)</dc:creator></item>
		<item>
		<title>Watching Broadcast TV On Linux</title>
		<link>https://ideatrash.net/2026/03/145107.html</link>
					<comments>https://ideatrash.net/2026/03/145107.html#comments</comments>
		
		
		<pubDate>Thu, 26 Mar 2026 23:02:33 +0000</pubDate>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[television]]></category>
		<guid isPermaLink="false">https://ideatrash.net/?p=145107</guid>

					<description><![CDATA[<a href="https://ideatrash.net/2026/03/145107.html" title="Watching Broadcast TV On Linux" rel="nofollow"><img width="790" height="474" src="https://ideatrash.net/wp-content/uploads/2026/03/pikura-tv-8760950_1920.jpg" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin: auto; margin-bottom: 5px;max-width: 100%;" link_thumbnail="1" decoding="async" srcset="https://ideatrash.net/wp-content/uploads/2026/03/pikura-tv-8760950_1920.jpg 800w, https://ideatrash.net/wp-content/uploads/2026/03/pikura-tv-8760950_1920-300x180.jpg 300w, https://ideatrash.net/wp-content/uploads/2026/03/pikura-tv-8760950_1920-768x461.jpg 768w" sizes="(max-width: 790px) 100vw, 790px" /></a>It is VERY easy to watch broadcast TV on my linux laptop with VLC.]]></description>
										<content:encoded><![CDATA[<a href="https://ideatrash.net/2026/03/145107.html" title="Watching Broadcast TV On Linux" rel="nofollow"><img width="790" height="474" src="https://ideatrash.net/wp-content/uploads/2026/03/pikura-tv-8760950_1920.jpg" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin: auto; margin-bottom: 5px;max-width: 100%;" link_thumbnail="1" decoding="async" srcset="https://ideatrash.net/wp-content/uploads/2026/03/pikura-tv-8760950_1920.jpg 800w, https://ideatrash.net/wp-content/uploads/2026/03/pikura-tv-8760950_1920-300x180.jpg 300w, https://ideatrash.net/wp-content/uploads/2026/03/pikura-tv-8760950_1920-768x461.jpg 768w" sizes="(max-width: 790px) 100vw, 790px" /></a>
<p>Watching over the air television in linux keeps getting easier. (1)</p>



<p>I had a USB tv tuner that I wanted to see if I could get to work with my laptop, particularly with the storms coming through. I figure that even if the power and internet were to go out, I could still watch weather updates from broadcast TV.</p>



<p>The last time I tried was several years ago, and it was a bit of a pain or required installing a whole framework, all of which was far more work and complexity that I wanted to deal with for something I&#8217;d use fairly rarely.</p>



<p>Well, it&#8217;s easier now. Starting with <a href="https://itsfoss.community/t/almost-too-easy-watch-digital-tv-on-linux/5476" target="_blank" rel="nofollow">this guide</a>, it&#8217;s even easier since <code>w-scan</code> is now packaged in Debian, and you can just use VLC.  <strong>NOTE:  The package name is w-scan but the program name is w_scan</strong>.</p>



<pre class="wp-block-preformatted">sudo apt install w-scan vlc</pre>



<p>then from the commandline:</p>



<pre class="wp-block-preformatted">w_scan -ft -A3 -c US -L &gt; ../vlcchans.xspf</pre>



<p>That will take a while; in my region it took about ten minutes.</p>



<p>After that, it&#8217;s as simple as</p>



<pre class="wp-block-preformatted">vlc ../vlcchans.xspf</pre>



<p>It&#8217;ll automatically start playing the first entry; to get back to the channel list, stop the playing channel.</p>



<p>(1) Though after watching some broadcast TV, I&#8217;m reminded why this was such a low priority for me.</p>



<p>Featured Image by <a href="https://pixabay.com/users/pikurā-17746921/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=8760950" target="_blank" rel="nofollow">Pikurā</a> from <a href="https://pixabay.com//?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=8760950" target="_blank" rel="nofollow">Pixabay</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://ideatrash.net/2026/03/145107.html/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			<dc:creator>steven@alliterationink.com (Steven Saus)</dc:creator></item>
		<item>
		<title>Google Patented A System To Let AI Change Your Page From Search Results.</title>
		<link>https://ideatrash.net/2026/03/google-patented-a-system-to-let-ai-change-your-page-from-search-results.html</link>
					<comments>https://ideatrash.net/2026/03/google-patented-a-system-to-let-ai-change-your-page-from-search-results.html#comments</comments>
		
		
		<pubDate>Wed, 25 Mar 2026 17:22:50 +0000</pubDate>
				<category><![CDATA[advertising]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[AI/ML]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[search]]></category>
		<guid isPermaLink="false">https://ideatrash.net/?p=145098</guid>

					<description><![CDATA[<a href="https://ideatrash.net/2026/03/google-patented-a-system-to-let-ai-change-your-page-from-search-results.html" title="Google Patented A System To Let AI Change Your Page From Search Results." rel="nofollow"><img width="790" height="444" src="https://ideatrash.net/wp-content/uploads/2026/03/They-Live-Newsstand-1.jpg" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin: auto; margin-bottom: 5px;max-width: 100%;" link_thumbnail="1" decoding="async" srcset="https://ideatrash.net/wp-content/uploads/2026/03/They-Live-Newsstand-1.jpg 1024w, https://ideatrash.net/wp-content/uploads/2026/03/They-Live-Newsstand-1-300x169.jpg 300w, https://ideatrash.net/wp-content/uploads/2026/03/They-Live-Newsstand-1-768x432.jpg 768w" sizes="(max-width: 790px) 100vw, 790px" /></a>You thought the AI summary feature was a bad idea.]]></description>
										<content:encoded><![CDATA[<a href="https://ideatrash.net/2026/03/google-patented-a-system-to-let-ai-change-your-page-from-search-results.html" title="Google Patented A System To Let AI Change Your Page From Search Results." rel="nofollow"><img width="790" height="444" src="https://ideatrash.net/wp-content/uploads/2026/03/They-Live-Newsstand-1.jpg" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin: auto; margin-bottom: 5px;max-width: 100%;" link_thumbnail="1" decoding="async" srcset="https://ideatrash.net/wp-content/uploads/2026/03/They-Live-Newsstand-1.jpg 1024w, https://ideatrash.net/wp-content/uploads/2026/03/They-Live-Newsstand-1-300x169.jpg 300w, https://ideatrash.net/wp-content/uploads/2026/03/They-Live-Newsstand-1-768x432.jpg 768w" sizes="(max-width: 790px) 100vw, 790px" /></a>
<p>TL;DR: Google patented a system that will silently swap out your page for an AI generated one if they want to. It is time to stop using Google search.</p>



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



<p>There are quite a few people who have been annoyed at Google&#8217;s AI summaries and promoted search results. To those people: You made the right choice.</p>



<p>If you&#8217;re still relying on tricks like adding a bit to the end of your search or an extension, <a href="https://www.forbes.com/sites/joetoscano1/2026/03/06/google-just-patented-the-end-of-your-website/" target="_blank" rel="nofollow">this news from Forbes</a> indicates that soon won&#8217;t be enough. (1)</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>A patent granted to Google on January 27, 2026 titled “<a href="https://patents.google.com/patent/US12536233B1/en" target="_blank" rel="nofollow">AI-generated content page tailored to a specific user</a>” describes a system that evaluates your company’s landing page in real time and, if it decides the page won’t perform well enough for a specific user, replaces it with an AI-generated version assembled on the fly. The user never sees what your team built, they see what Google&#8217;s machine learning model thinks they should see instead.</p>
</blockquote>



<p>The system described is not just a summary on the search. The article says this system will invisibly change what the user sees <strong><em>instead of your site</em>,</strong> changing what is presented in your browser.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>That alternative page isn’t a cached copy of your site. It’s a dynamically assembled page built from the user’s current query, their search history, their account context, and whatever Google can extract from your original page. The patent describes possible elements including personalized headlines, suggested product filters, a product feed, sitelinks to product detail pages, and even an embedded AI chatbot. In other words, a complete brand experience built by Google. Not you.</p>
</blockquote>



<p><strong>This is terrifying.</strong> Even if you use a different search engine, Google is the &#8220;default&#8221; for so many people that it&#8217;s practically a common noun. This is a degree of change and control over what others see that <em>nobody</em> should have.</p>



<p>And you can stop it.</p>



<p>How?</p>



<h5 class="wp-block-heading">Stop. Using. Google.</h5>



<p>If you don&#8217;t like those AI summaries and don&#8217;t want it to get worse, you have to vote with your (virtual) feet.  That&#8217;s it. <a href="https://www.computerhope.com/issues/ch001755.htm" target="_blank" rel="nofollow">Change the default search engine</a>, everywhere you can, and stop using products that won&#8217;t.</p>



<p>This is something you can do that has <em>real</em> results, as <a href="https://www.techradar.com/computing/windows/almost-3-years-later-its-time-to-admit-that-microsoft-copilot-was-a-mistake" target="_blank" rel="nofollow">we can see with Microsoft&#8217;s floundering from shoving Copilot into everything</a> and users, en-masse, simply not using it.  The company is changing what they are doing as a result.  </p>



<p>The same has to happen here.</p>



<p>I personally use — and recommend — Kagi for search. It&#8217;s a paid service, but their <a href="https://help.kagi.com/kagi/why-kagi/why-pay-for-search.html" target="_blank" rel="nofollow">argument for why it&#8217;s worth being paying for makes a lot of sense to me</a>, and I&#8217;m very happy with the results. <a href="https://duckduckgo.com/" target="_blank" rel="nofollow">DuckDuckGo</a> is frequently mentioned, as is <a href="https://search.brave.com/" target="_blank" rel="nofollow">Brave</a>, but there are <a href="https://privacysavvy.com/security/safe-browsing/private-search-engines/" target="_blank" rel="nofollow"><em>loads</em> of search engines that respect your privacy</a>, and if you want, you can use (or even self-host) <a href="https://docs.searxng.org/" target="_blank" rel="nofollow">SearXNG</a>.</p>



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



<p>(1) The viewpoint <a href="https://www.forbes.com/sites/joetoscano1/2026/03/06/google-just-patented-the-end-of-your-website/" target="_blank" rel="nofollow">from the Forbes article</a> presumes this is a bygone conclusion, and focuses on how businesses can <em>cooperate</em> with this, and make the web less friendly for humans and more useful for AI.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>If there’s one insight we all need to focus on most, it’s this: your job is no longer to build a destination. It’s to build a parts library. And one that’s well documented so that when an AI agent re-assembles those parts for the human on the other side, the parts are put together in a way you wish to be represented.</p>
</blockquote>



<p>As a technical matter, this is simply bullshit. Delivering different content depending on the capabilities of the viewer has been around since MIME/Multipart email was first developed last century. Delivering sitemaps and mobile-optimized pages is a matter of course, and has been for years.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ideatrash.net/2026/03/google-patented-a-system-to-let-ai-change-your-page-from-search-results.html/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			<dc:creator>steven@alliterationink.com (Steven Saus)</dc:creator></item>
		<item>
		<title>Getting Streaming Audio, Connecting Your Soundboard, Recording Audio, And Chatbot In Jitsi Meet – All In Just A Browser Window</title>
		<link>https://ideatrash.net/2026/03/getting-streaming-audio-connecting-your-soundboard-recording-audio-and-chatbot-in-jitsi-meet-all-in-just-a-browser-window.html</link>
					<comments>https://ideatrash.net/2026/03/getting-streaming-audio-connecting-your-soundboard-recording-audio-and-chatbot-in-jitsi-meet-all-in-just-a-browser-window.html#comments</comments>
		
		
		<pubDate>Thu, 12 Mar 2026 15:26:20 +0000</pubDate>
				<category><![CDATA[communication]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[1]]></category>
		<category><![CDATA[discord]]></category>
		<category><![CDATA[jitsi]]></category>
		<category><![CDATA[nextcloud]]></category>
		<category><![CDATA[self-hosted]]></category>
		<guid isPermaLink="false">https://ideatrash.net/?p=145052</guid>

					<description><![CDATA[<a href="https://ideatrash.net/2026/03/getting-streaming-audio-connecting-your-soundboard-recording-audio-and-chatbot-in-jitsi-meet-all-in-just-a-browser-window.html" title="Getting Streaming Audio, Connecting Your Soundboard, Recording Audio, And Chatbot In Jitsi Meet &#8211; All In Just A Browser Window" rel="nofollow"><img width="710" height="400" src="https://ideatrash.net/wp-content/uploads/2026/03/alexandra_koch-robot-7720802_1920.jpg" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin: auto; margin-bottom: 5px;max-width: 100%;" link_thumbnail="1" decoding="async" srcset="https://ideatrash.net/wp-content/uploads/2026/03/alexandra_koch-robot-7720802_1920.jpg 710w, https://ideatrash.net/wp-content/uploads/2026/03/alexandra_koch-robot-7720802_1920-300x169.jpg 300w" sizes="(max-width: 710px) 100vw, 710px" /></a>NOTE: Requires self-hosted Jitsi Meet instance!]]></description>
										<content:encoded><![CDATA[<a href="https://ideatrash.net/2026/03/getting-streaming-audio-connecting-your-soundboard-recording-audio-and-chatbot-in-jitsi-meet-all-in-just-a-browser-window.html" title="Getting Streaming Audio, Connecting Your Soundboard, Recording Audio, And Chatbot In Jitsi Meet &#8211; All In Just A Browser Window" rel="nofollow"><img width="710" height="400" src="https://ideatrash.net/wp-content/uploads/2026/03/alexandra_koch-robot-7720802_1920.jpg" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin: auto; margin-bottom: 5px;max-width: 100%;" link_thumbnail="1" decoding="async" srcset="https://ideatrash.net/wp-content/uploads/2026/03/alexandra_koch-robot-7720802_1920.jpg 710w, https://ideatrash.net/wp-content/uploads/2026/03/alexandra_koch-robot-7720802_1920-300x169.jpg 300w" sizes="(max-width: 710px) 100vw, 710px" /></a>
<p>One of the biggest gaps when moving away from Discord — at least for me and my group — are some of the specific bots and services that can be used with our group calls.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>I do NOT mean AI-powered chatbots. These are utility programs.</p>
</blockquote>



<p>Specifically, there&#8217;s four things that we tend to use:</p>



<ul class="wp-block-list">
<li>A text chat bot for die rolling and simple reminders</li>



<li>Audio streaming from an MP3 or OGG streaming station</li>



<li>Using a local soundboard (the quite excellent <a href="https://www.kenku.fm/" target="_blank" rel="nofollow">Kenku-FM</a>)</li>



<li>Audio recording (we&#8217;ve been using <a href="https://craig.chat/" target="_blank" rel="nofollow">Craig</a>, which is currently Discord-specific)</li>
</ul>



<p>With the exception of recording, there are not official ways to do this, and I was concerned that the processing demands of the official recording solution (<a href="https://github.com/jitsi/jibri" target="_blank" rel="nofollow">Jibri</a>) would exceed the hardware <a href="https://ideatrash.net/2026/02/weekend-project-how-to-replace-discord-with-free-software-and-an-old-pc.html">for the decade-old laptop I&#8217;m building all of this on</a>.</p>



<p>I <em>did</em> find some scripts that <a href="https://github.com/Bloodiko/jitsi-bot" target="_blank" rel="nofollow">had limited functionality</a>, <a href="https://github.com/Music-Bot-for-Jitsi/Jimmi" target="_blank" rel="nofollow">required adding a browser extension</a>, or hadn&#8217;t gotten <a href="https://github.com/webrtcHacks/jitsiLocalRecorder" target="_blank" rel="nofollow">updates since before the pandemic</a>, but found them not meeting the needs of this project in some fashion.</p>



<p>Using those as a base or inspiration, and with a non-trivial amount of help from an LLM (1), I developed and tested a solution for all of the above that works in your browser, without installing anything (2), and without being a huge change to your workflow (3).</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>ASIDE: A big caveat is that any of the audio functions effectively <em>require</em> you to use <a href="https://ideatrash.net/2026/03/how-to-self-host-jitsi-meet-for-audio-or-video-calls.html">a self-hosted Jitsi Meet server </a>due to the way that the public instance does shard load balancing. (4)</p>
</blockquote>



<p>The quickstart? Go to the GitHub pages page for the project in a new tab <a href="https://uriel1998.github.io/jitsi-bot/" target="_blank" rel="nofollow">https://uriel1998.github.io/jitsi-bot/</a>. It will load all four bots into iFrames in that tab, where you can toggle them independently. Put your conference URL into the appropriate field, and click &#8220;Toggle Bot&#8221;. It&#8217;ll reload in that frame and connect; the field will change colors once it&#8217;s connected. You can also see a log if you scroll down inside the iFrame.</p>



<p>Don&#8217;t like the iFrame? Then load the bot you want separately:</p>



<p><a href="https://uriel1998.github.io/jitsi-bot/streaming/streaming.html" target="_blank" rel="nofollow">https://uriel1998.github.io/jitsi-bot/streaming/streaming.html</a></p>



<p><a href="https://uriel1998.github.io/jitsi-bot/soundboard/soundboard.html" target="_blank" rel="nofollow">https://uriel1998.github.io/jitsi-bot/soundboard/soundboard.html</a></p>



<p><a href="https://uriel1998.github.io/jitsi-bot/chatbot/chatbot.html" target="_blank" rel="nofollow">https://uriel1998.github.io/jitsi-bot/chatbot/chatbot.html</a></p>



<p><a href="https://uriel1998.github.io/jitsi-bot/recording/recording.html" target="_blank" rel="nofollow">https://uriel1998.github.io/jitsi-bot/recording/recording.html</a></p>



<p>The chatbot has quite a few commands; try !command to start. It includes a die roller, card shuffler and drawer, text tarot card draw, and being able to respond with text files. You can put your own text in (if you run the bots locally) to meet your needs.</p>



<p>The soundboard bot will accept <em>any</em> audio through the virtual microphone, so if you&#8217;d rather play your local music player through there instead of the streaming version, go for it!</p>



<p>The recording bot <em>will</em> record audio tracks per-speaker and as a single combined whole. It will save the audio in chunks as <code>.webm</code> files every few minutes, so when prompted, tell your browser to save that filetype automatically. </p>



<figure class="wp-block-image size-full"><img decoding="async" width="1024" height="424" src="https://ideatrash.net/wp-content/uploads/2026/03/2026-03-12_10.28.21.jpg" alt="" class="wp-image-145059" srcset="https://ideatrash.net/wp-content/uploads/2026/03/2026-03-12_10.28.21.jpg 1024w, https://ideatrash.net/wp-content/uploads/2026/03/2026-03-12_10.28.21-300x124.jpg 300w, https://ideatrash.net/wp-content/uploads/2026/03/2026-03-12_10.28.21-768x318.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">For example, you can see the various &#8220;parts&#8221; here in this screenshot, as well as the script that will combine them all automatically.</figcaption></figure>



<p>That is both to allow the script to run in a smaller memory space and to protect against data loss if something crashes. There&#8217;s a <code>merge_recordings</code> script in the repository for Linux, Windows, and Macs to automatically stitch them together with <code>ffmpeg</code> and clean it all up.</p>



<p>You can see the rest of these guides for moving away from Discord to <a href="https://ideatrash.net/tag/nextcloud">NextCloud</a> and <a href="https://ideatrash.net/tag/jitsi">Jitsi Meet</a> on previous posts <a href="https://ideatrash.net/">on my blog</a>.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Getting Streaming Audio, Connecting Your Soundboard, Recording Audio, And Chatbot In Jitsi Meet" width="790" height="444" src="https://www.youtube.com/embed/Z_Lgwfvai_w?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p>Featured Image by <a href="https://pixabay.com/users/alexandra_koch-621802/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=7720802" target="_blank" rel="nofollow">Alexandra_Koch</a> from <a href="https://pixabay.com//?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=7720802" target="_blank" rel="nofollow">Pixabay</a></p>



<p>(1) Because I know this is contentious for some folx: I know enough to follow the structure, but I don&#8217;t know the specific syntax and commands to achieve specific goals. I also am not claiming any authorship or copyright on these scripts; any restrictions on their use is based off of the license of the code that was used for a base/inspiration. While functional, they are intended to be proof-of-concept. The idea is to maximize the public good against the use of the LLM to assist me in developing these.</p>



<p>(2) Okay, technically you need a virtual microphone for the soundboard bot and ffmpeg for merging recordings for the recording bot. Get a free virtual microphone without having to use OBS: <a href="https://github.com/VirtualDrivers/Virtual-Audio-Driver" target="_blank" rel="nofollow">Windows</a>,<a href="https://github.com/uriel1998/virtual_microphone" target="_blank" rel="nofollow">Linux</a>,<a href="https://apps.apple.com/us/app/dipper-audio-capture/id6450242673?mt=12" target="_blank" rel="nofollow">Macs</a>. Get ffmpeg : <a href="https://www.ffmpeg.org/download.html" target="_blank" rel="nofollow">FFmpeg download page (Windows builds)</a>, <a href="https://www.ffmpeg.org/download.html" target="_blank" rel="nofollow">FFmpeg download page (Linux packages)</a>, <a href="https://formulae.brew.sh/formula/ffmpeg" target="_blank" rel="nofollow">Homebrew <code>ffmpeg</code> formula</a></p>



<p>(3) I have touched base or put in issues with the dev team for both Craig and Kenku. Craig&#8217;s development team pointed me (ironically) to their Discord; I&#8217;ve not seen a response from Owlbear Studio. However, see <a rel="tag" class="hashtag u-tag u-category" href="https://ideatrash.net/tag/1">#1</a> above; PLEASE use this proof of concept to do something better.</p>



<p>(4) If there&#8217;s a way around it <em>without</em> running a headless browser as a client, I cannot figure it out. If the Craig dev team, Owlbear, or any other coder want to focus on a value-add beyond these, PLEASE use this proof of concept to do something better.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ideatrash.net/2026/03/getting-streaming-audio-connecting-your-soundboard-recording-audio-and-chatbot-in-jitsi-meet-all-in-just-a-browser-window.html/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			<dc:creator>steven@alliterationink.com (Steven Saus)</dc:creator></item>
		<item>
		<title>How To Self-Host Jitsi Meet For Audio (or Video) Calls</title>
		<link>https://ideatrash.net/2026/03/how-to-self-host-jitsi-meet-for-audio-or-video-calls.html</link>
		
		
		<pubDate>Wed, 11 Mar 2026 20:18:03 +0000</pubDate>
				<category><![CDATA[internet]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[jitsi]]></category>
		<category><![CDATA[nextcloud]]></category>
		<category><![CDATA[self-hosted]]></category>
		<guid isPermaLink="false">https://ideatrash.net/?p=145032</guid>

					<description><![CDATA[<a href="https://ideatrash.net/2026/03/how-to-self-host-jitsi-meet-for-audio-or-video-calls.html" title="How To Self-Host Jitsi Meet For Audio (or Video) Calls" rel="nofollow"><img width="775" height="350" src="https://ideatrash.net/wp-content/uploads/2026/03/alexandra_koch-home-office-video-conference-5230717_1920.jpg" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin: auto; margin-bottom: 5px;max-width: 100%;" link_thumbnail="1" decoding="async" srcset="https://ideatrash.net/wp-content/uploads/2026/03/alexandra_koch-home-office-video-conference-5230717_1920.jpg 775w, https://ideatrash.net/wp-content/uploads/2026/03/alexandra_koch-home-office-video-conference-5230717_1920-300x135.jpg 300w, https://ideatrash.net/wp-content/uploads/2026/03/alexandra_koch-home-office-video-conference-5230717_1920-768x347.jpg 768w" sizes="(max-width: 775px) 100vw, 775px" /></a>It is very doable, even with old hardware and limited bandwidth.]]></description>
										<content:encoded><![CDATA[<a href="https://ideatrash.net/2026/03/how-to-self-host-jitsi-meet-for-audio-or-video-calls.html" title="How To Self-Host Jitsi Meet For Audio (or Video) Calls" rel="nofollow"><img width="775" height="350" src="https://ideatrash.net/wp-content/uploads/2026/03/alexandra_koch-home-office-video-conference-5230717_1920.jpg" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin: auto; margin-bottom: 5px;max-width: 100%;" link_thumbnail="1" decoding="async" srcset="https://ideatrash.net/wp-content/uploads/2026/03/alexandra_koch-home-office-video-conference-5230717_1920.jpg 775w, https://ideatrash.net/wp-content/uploads/2026/03/alexandra_koch-home-office-video-conference-5230717_1920-300x135.jpg 300w, https://ideatrash.net/wp-content/uploads/2026/03/alexandra_koch-home-office-video-conference-5230717_1920-768x347.jpg 768w" sizes="(max-width: 775px) 100vw, 775px" /></a>
<p>If you just want to have video chat (and optionally a text chatbot helper), then using the public instance of Jitsi is easy to set up and has plenty of features. The big advantages of using the public instance of Jitsi are that it&#8217;s EXTREMELY simple, allows telephone call-ins, <a href="https://ideatrash.net/2026/03/comparing-jitsi-meet-and-nextcloud-talk-for-replacing-discords-calls.html" target="_blank" rel="noreferrer noopener">and that you don&#8217;t have to worry about total upstream bandwidth</a>.</p>



<p>The downside is that because of the way the public instance does load balancing, that <a href="https://github.com/uriel1998/jitsi-bot" target="_blank" rel="noreferrer noopener nofollow">these simpler bots</a> may (and probably will not) work on the public instance. On a public instance, adding in a separate audio stream for music or a soundboard or recording streams requires (effectively) running a whole other headless browser session for <em>each</em> stream.</p>



<p>It&#8217;s possible to use virtual microphones (or OBS) to mix in a soundboard or music stream on top of an existing speaker&#8217;s audio stream. However, OBS is not a <em>lightweight</em> application, and dumping extra audio into an existing speaker&#8217;s audio means that others cannot independently adjust it, problems with sound &#8220;ducking&#8221; from noise cancellation, and more.</p>



<p>My use case &#8212; audio-only calls and recordings for preservation and to use when writing recaps &#8212; happens to work well within the resource limits that I (and probably you) have. And because Jitsi Meet itself is just a forwarder, I can run it on the laptop already running NextCloud. Not only does this give us more control over everything, but it allows the usage of <a href="https://github.com/uriel1998/jitsi-bot" target="_blank" rel="noreferrer noopener nofollow">those lighter javascript bots</a>.</p>



<p>Estimated time: Approximately 30-45 minutes, mostly cut-and-paste into configuration files. More if you need to install and configure a reverse proxy before beginning.</p>



<h2 class="wp-block-heading">Before You Begin</h2>



<p>Take a look at my <a href="https://ideatrash.net/2026/03/comparing-jitsi-meet-and-nextcloud-talk-for-replacing-discords-calls.html" target="_blank" rel="noreferrer noopener">bandwidth comparisons/estimates for audio and video <em>egress</em> for Jitsi</a> and make sure your upload speed can handle the demands. This is the <strong>single most important consideration</strong>&#8230; unless you add on other optional services.  Because of my bandwidth and how my group works, I&#8217;m restricting it to audio-only.  If you want the default video options, I&#8217;ll tell you what NOT to change below as well.</p>



<h2 class="wp-block-heading">Getting Started</h2>



<h3 class="wp-block-heading">Get A Separate Subdomain</h3>



<p>The other big consideration is that you will need to be able to route traffic to the right place. You will need to obtain a separate subdomain name &#8212; the same process as you used <a href="https://ideatrash.net/2026/02/weekend-project-how-to-replace-discord-with-free-software-and-an-old-pc.html" target="_blank" rel="noreferrer noopener">for getting a DNS name from the NextCloud guide</a> will work perfectly &#8212; regardless of which solution applies to you below.</p>



<p>I am going to presume for this <em>that you already have a reverse proxy</em> set up, but I will also show how to configure things if you do not use or want one.</p>



<p>Here&#8217;s an explainer about <a href="https://medium.com/@uzair-jawaid_26268/reverse-proxies-what-they-are-and-how-to-build-one-2b94500612fc" target="_blank" rel="noreferrer noopener nofollow">what a reverse proxy is</a>, and a quickstart for <a href="https://medium.com/@priyansu011/build-your-first-reverse-proxy-with-nginx-a-hands-on-guide-for-developers-e7975c997d9a" target="_blank" rel="noreferrer noopener nofollow">nginx</a> and <a href="https://caddyserver.com/docs/quick-starts/reverse-proxy" target="_blank" rel="noreferrer noopener nofollow">caddy</a>.</p>



<h4 class="wp-block-heading">If you already have a reverse proxy</h4>



<p>If you have a reverse proxy already in place, this is relatively trivial and I&#8217;m assuming you know how to add a forwarder to whatever you&#8217;re using. <a href="https://gist.github.com/uriel1998/fb96fd0a74beaae5f900ffdd1e0ee0d2" target="_blank" rel="noreferrer noopener nofollow">An example nginx config is available</a>. Continue to &#8220;Setting up Jitsi Meet&#8221; below.</p>



<h4 class="wp-block-heading">I don&#8217;t have a reverse proxy, and I now want one.</h4>



<p>This is medium-difficulty, but is the cleanest and best way.</p>



<p>You&#8217;ll need to switch some things about your NextCloud AIO setup. From the Administration settings inside NextCloud, first click <code>Open Nextcloud AIO Interface</code> and then <code>Stop Containers</code>. Let that finish.</p>



<p>Open a terminal where your <code>docker-compose.yaml</code> file lives. If following my guide: <code>cd $HOME/apps/nextcloud</code>. Now stop and purge the mastercontainer (which will NOT delete your data):</p>



<pre class="wp-block-code"><code>sudo docker stop nextcloud-aio-mastercontainer  
sudo docker rm nextcloud-aio-mastercontainer
</code></pre>



<p>In your docker-compose.yaml file, open your editor and add these under <code>environment:</code>:</p>



<pre class="wp-block-code"><code>      APACHE_PORT: 11000 
      APACHE_IP_BINDING: 0.0.0.0 
      APACHE_ADDITIONAL_NETWORK: ""

</code></pre>



<p>You can also optionally remove <strong>ONLY</strong> the <em>entire</em> lines under <code>ports:</code> that begin with:</p>



<pre class="wp-block-code"><code>- 80:80
- 8443:8443
</code></pre>



<p>Close your editor, and bring everything back up: <code>sudo docker compose up -d</code></p>



<p>While all the containers spin back up, take that time to <a href="https://github.com/nextcloud-releases/all-in-one/blob/main/reverse-proxy.md" target="_blank" rel="noreferrer noopener nofollow">set up your reverse proxy</a> to point at port 11000 for NextCloud. I personally use nginx, and <a href="https://ideatrash.net/2026/02/weekend-project-how-to-replace-discord-with-free-software-and-an-old-pc.html" target="_blank" rel="noreferrer noopener">there is an example config in my guide ready to have Let&#8217;s Encrypt run on it</a>, as well as the <a href="https://gist.github.com/uriel1998/fb96fd0a74beaae5f900ffdd1e0ee0d2" target="_blank" rel="noreferrer noopener nofollow">example nginx config for Jitsi Meet here</a>.</p>



<p>Continue to &#8220;Setting up Jitsi Meet&#8221; below.</p>



<h4 class="wp-block-heading">I don&#8217;t have a reverse proxy, and I don&#8217;t want one.</h4>



<p>This is the quick-and-dirty-but-it-is-running-NOW solution.</p>



<p>If you do <em>not</em> have a reverse proxy and do not <em>want</em> a reverse proxy, that can work by specifying a port for Jitsi to use. We are going to assume <code>8444</code> here. Separate guides may suggest using <code>8443</code>, but that is already being used by NextCloud AIO. <strong>You will still need that separate subdomain.</strong></p>



<p>Continue to &#8220;Setting up Jitsi Meet&#8221; below.</p>



<h2 class="wp-block-heading">Setting Up Jitsi Meet With Docker</h2>



<p>Because we already have <a href="https://ideatrash.net/2026/02/weekend-project-how-to-replace-discord-with-free-software-and-an-old-pc.html" target="_blank" rel="noreferrer noopener">Docker set up and running from setting up NextCloud</a>, the <a href="https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-docker/" target="_blank" rel="noreferrer noopener nofollow">official instructions</a> work pretty much out of the box, although we&#8217;re going to tweak them and the order we do them in for clarity.</p>



<p>Back to the terminal! We are going to change to our user&#8217;s apps directory, create required directories, and download the program files for Jitsi Meet:</p>



<pre class="wp-block-code"><code>cd $HOME/apps
wget $(wget -q -O - https://api.github.com/repos/jitsi/docker-jitsi-meet/releases/latest | grep zip | cut -d\" -f4) -O latest_jitsi_meet.zip
unzip latest_jitsi_meet.zip
rm latest_jitsi_meet.zip
ls -d /*
</code></pre>



<p>The last shows you what directories exist here; there should be your <code>nextcloud</code> directory and one that begins with <code>jitsi-docker-jitsi-meet</code>, for example <code>jitsi-docker-jitsi-meet-35879bb</code>. Move into that directory: <code>cd jitsi-docker-jitsi-meet-35879bb</code></p>



<p>We&#8217;ll create some mandatory directories:</p>



<pre class="wp-block-code"><code>mkdir -p ~/.jitsi-meet-cfg/{web,transcripts,prosody/config,prosody/prosody-plugins-custom,jicofo,jvb,jigasi,jibri}
</code></pre>



<p>We will also copy the example configuration: <code>cp env.example .env</code></p>



<p>And then we will let a helper script generate some strong internal passwords for the .env file: <code>./gen-passwords.sh</code></p>



<h3 class="wp-block-heading">Editing Jitsi Meet&#8217;s Configuration</h3>



<p>Use your editor of choice to open <code>.env</code>. These are the entries to change, <strong>and why</strong>:</p>



<h4 class="wp-block-heading">If using a reverse proxy</h4>



<pre class="wp-block-code"><code># If you are using a reverse proxy, alter these lines:
# We are going to use 8444 so the port forward instructions
# are the same
HTTP_PORT=8444
# Comment out this line with a hash mark like so:
# HTTPS_PORT=8443
# Your PUBLIC_URL line should NOT have the specified port
# at the end, like so:
PUBLIC_URL=https://meet.example.com
# Turn off Let's Encrypt certificate generation, HTTPs, etc. That is all handled
# by the proxy.
ENABLE_LETSENCRYPT=0
DISABLE_HTTPS=1
ENABLE_HTTP_REDIRECT=0
</code></pre>



<p>Continue to &#8220;Everybody Change these&#8221;</p>



<h4 class="wp-block-heading">If NOT using a reverse proxy</h4>



<pre class="wp-block-code"><code># If you are NOT using a reverse proxy, 
# put a hash sign in front of the HTTP_PORT line.
# If Jitsi complains that it is commented out, 
# change it to something random you 
# are not going to use. 
# HTTP_PORT=8000
# Change HTTPS_PORT 8444
HTTPS_PORT=8444
# For the PUBLIC_URL line, 
# put your domain, but also make sure 
# it has the ${HTTPS_PORT} at the end.
PUBLIC_URL=https://meet.example.com:${HTTPS_PORT}
# Change these lines to enable Let's Encrypt, have HTTPS working, and 
ENABLE_LETSENCRYPT=1
DISABLE_HTTPS=0
ENABLE_HTTP_REDIRECT=0
</code></pre>



<p>Continue to &#8220;Everybody Change these&#8221;</p>



<h4 class="wp-block-heading">Everybody change these</h4>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><strong>IMPORTANT</strong> : If your public IP address changes, for example, if your modem resets, you will need to change the public IP address in this file manually, then bring the containers down <em>and rebuild them</em>.<br><code>docker compose down &amp;&amp; docker compose up -d --force-rebuild</code></p>
</blockquote>



<p>We are going to fill in our public and LAN IP settings:</p>



<pre class="wp-block-code"><code># Media IP addresses and ports to advertise by the JVB
# This setting deprecates DOCKER_HOST_ADDRESS, and supports a comma separated list of IPs
# PUT BOTH YOUR PUBLIC AND LAN IP ADDRESS HERE.
# JVB_ADVERTISE_IPS=74.111.11.111,192.168.1.5,
JVB_ADVERTISE_IPS=
</code></pre>



<p>We will use the TURN server from NextCloud AIO. The TURN_HOST is the domain of your NextCloud AIO instance, you get the TURN_CREDENTIALS from the Turn Server Secret in NextCloud Talk&#8217;s settings.</p>



<pre class="wp-block-code"><code># Enable Turn
TURN_HOST=example.com
TURN_PORT=3478
TURN_TRANSPORT=udp,tcp
TURN_CREDENTIALS=biglongstringofstuff
</code></pre>



<p>Jitsi is set up to be open by default. Which I don&#8217;t have a problem with, except for that whole <em>bandwidth</em> thing&#8230; so we&#8217;re going to require authorization to <em>create</em> a room, but anybody can join an existing room as long as there&#8217;s an authorized user already in it.</p>



<pre class="wp-block-code"><code># Enable authentication 
ENABLE_AUTH=1
# Enable guest access  
ENABLE_GUESTS=1
# Select authentication type: internal, jwt, ldap or matrix
AUTH_TYPE=internal
</code></pre>



<p>These are some changes to hide video user interface elements, since we are only doing voice calls. If that is not your use case, save the configuration file and skip to &#8220;Port Forwards.&#8221;</p>



<pre class="wp-block-code"><code>TOOLBAR_BUTTONS=microphone,hangup,chat,participants-pane,invite,profile
HIDE_PREMEETING_BUTTONS=camera,select-background,invite
ENABLE_LOBBY=0
ENABLE_PREJOIN_PAGE=1
ENABLE_WELCOME_PAGE=1
</code></pre>



<p>Save the configuration file.</p>



<p>We&#8217;re going to <em>also</em> define those same restrictions elsewhere for redundancy. I also put in a resolution restriction of 320px just in case someone still turned on their camera so it won&#8217;t immediately clobber the bandwidth.  Create and edit the file <code>${HOME}/.jitsi-meet-cfg/web/custom-config.js</code> and put this in it:</p>



<pre class="wp-block-code"><code>config.startAudioOnly = true;   
config.startWithVideoMuted = true;
config.resolution = 320;
config.toolbarButtons = &#91;
    'microphone',
    'camera',
    'chat',
    'invite',              // invite button explicitly enabled
    'profile',
    'participants-pane',
    'hangup'
];
</code></pre>



<p>Save that file as well.</p>



<h3 class="wp-block-heading">Port Forwards</h3>



<p>This is going to be radically different depending on the make, model, and software your modem/router is using. <a href="https://www.noip.com/support/knowledgebase/general-port-forwarding-guide" target="_blank" rel="noreferrer noopener nofollow">Here&#8217;s an existing guide which covers many varieties</a>.</p>



<p>You will need to forward port 10000/udp to the computer you&#8217;re installing Jitsi Meet on, regardless if you are using a reverse proxy.  If you are using a reverse proxy, it will handle everything else.</p>



<p>If you are <em>not</em> using a reverse proxy, additionally forward port 8444 tcp/udp (or whatever port if you chose something different above).</p>



<h3 class="wp-block-heading">Bring It Up And Secure It</h3>



<p>Change back to the directory where your <code>docker-compose.yml</code> file is, and type <code>docker compose pull &amp;&amp; docker compose up -d &amp;&amp; docker compose logs -f</code> to let you see the logs. It should reach a steady state without errors; once it has, press Ctrl-C to get out of the logs.</p>



<p>I only created myself as an authorized user; <em>you only need to have the people who are creating or moderating rooms to be authorized.</em></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><em>IMPORTANT</em>: TheDesiredUsername should be JUST a username; for example, <code>bob</code> instead of <code><span 
                data-original-string='PtljkxVIPXRpzSwVE6IQyQ==ba2nTtGarvKtrbem2XdAzl0Ew=='
                class='apbct-email-encoder'
                title='This contact has been encoded by Anti-Spam by CleanTalk. Click to decode. To finish the decoding make sure that JavaScript is enabled in your browser.'>bo<span class="apbct-blur">*</span>@<span class="apbct-blur">*****</span>le.com</span></code></p>
</blockquote>



<p>The commands below will enter the loaded Docker container, create <code>TheDesiredUsername</code> with password <code>TheDesiredPassword</code>, then show you a list of all registered users, then exit. Do <strong>NOT</strong> change <code>meet.jitsi</code> in the block below.</p>



<pre class="wp-block-code"><code>docker compose exec prosody /bin/bash

prosodyctl --config /config/prosody.cfg.lua register TheDesiredUsername meet.jitsi TheDesiredPassword

find /config/data/meet%2ejitsi/accounts -type f -exec basename {} .dat \;

exit

</code></pre>



<p>You&#8217;re done! If you&#8217;re using a reverse proxy, you should see the Jitsi welcome screen if you go to just the URL. If you chose to not use a reverse proxy, you will always need to put the port at the end: <code>https://meet.example.com:8444</code></p>



<p>You probably noticed that there are quite a few other features that you can enable here:  a recording component, a transcribing component, a whiteboard, collaborative documents, and so on.  I have <em>not</em> enabled them because we have them handled through NextCloud already or they put a non-trivial load on the system.  Recording and transcription, <em>especially</em> if you are using video, will require much beefier hardware than the decade-old laptop everything else is running on.  </p>



<p>Next I&#8217;ll do a full overview of the bots &#8212; including how to get per-speaker split recording &#8212; with your self-hosted Jitsi instance.</p>



<p>Featured Image by <a href="https://pixabay.com/users/alexandra_koch-621802/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=5230717" target="_blank" rel="nofollow">Alexandra_Koch</a> from <a href="https://pixabay.com//?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=5230717" target="_blank" rel="nofollow">Pixabay</a></p>



<p></p>
]]></content:encoded>
					
		
		
			<dc:creator>steven@alliterationink.com (Steven Saus)</dc:creator></item>
		<item>
		<title>How To Backfill Text Channels From Discord To NextCloud</title>
		<link>https://ideatrash.net/2026/03/how-to-backfill-text-channels-from-discord-to-nextcloud.html</link>
					<comments>https://ideatrash.net/2026/03/how-to-backfill-text-channels-from-discord-to-nextcloud.html#comments</comments>
		
		
		<pubDate>Fri, 06 Mar 2026 17:12:48 +0000</pubDate>
				<category><![CDATA[communication]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[chat]]></category>
		<category><![CDATA[discord]]></category>
		<category><![CDATA[nextcloud]]></category>
		<guid isPermaLink="false">https://ideatrash.net/?p=145011</guid>

					<description><![CDATA[<a href="https://ideatrash.net/2026/03/how-to-backfill-text-channels-from-discord-to-nextcloud.html" title="How To Backfill Text Channels From Discord To NextCloud" rel="nofollow"><img width="712" height="400" src="https://ideatrash.net/wp-content/uploads/2026/03/tumisu-whatsapp-3012138_1920-1.jpg" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin: auto; margin-bottom: 5px;max-width: 100%;" link_thumbnail="1" decoding="async" srcset="https://ideatrash.net/wp-content/uploads/2026/03/tumisu-whatsapp-3012138_1920-1.jpg 712w, https://ideatrash.net/wp-content/uploads/2026/03/tumisu-whatsapp-3012138_1920-1-300x169.jpg 300w" sizes="(max-width: 712px) 100vw, 712px" /></a>Text channels are still deeply important, and a major consideration when moving from Discord to another platform. Two major concerns are synchronizing the messages while you&#8217;re transitioning and [&#8230;]]]></description>
										<content:encoded><![CDATA[<a href="https://ideatrash.net/2026/03/how-to-backfill-text-channels-from-discord-to-nextcloud.html" title="How To Backfill Text Channels From Discord To NextCloud" rel="nofollow"><img width="712" height="400" src="https://ideatrash.net/wp-content/uploads/2026/03/tumisu-whatsapp-3012138_1920-1.jpg" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin: auto; margin-bottom: 5px;max-width: 100%;" link_thumbnail="1" decoding="async" srcset="https://ideatrash.net/wp-content/uploads/2026/03/tumisu-whatsapp-3012138_1920-1.jpg 712w, https://ideatrash.net/wp-content/uploads/2026/03/tumisu-whatsapp-3012138_1920-1-300x169.jpg 300w" sizes="(max-width: 712px) 100vw, 712px" /></a>
<p>Text channels are still deeply important, and a major consideration when moving <a href="https://ideatrash.net/tag/nextcloud">from Discord to another platform</a>. Two major concerns are synchronizing the messages while you&#8217;re transitioning and exporting old messages from Discord and importing them into your new system (called &#8220;backfilling&#8221;).</p>



<p>It&#8217;s more than possible to achieve both easily with Discord, NextCloud Talk, and the help of a cross platform program called <a href="https://github.com/42wim/matterbridge" target="_blank" rel="noreferrer noopener nofollow">Matterbridge</a>.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><strong>IMPORTANT</strong>: There is another program out there which is <em>also</em> called Matterbridge that works with some kind of home automation. You want the one at <a href="https://github.com/42wim/matterbridge" target="_blank" rel="noreferrer noopener nofollow">https://github.com/42wim/matterbridge</a></p>
</blockquote>



<p>Matterbridge is a very versatile program that &#8220;bridges&#8221; chatroom messages from one service to another. It can do this for a <em>lot</em> of chat services, so just like NextCloud, there&#8217;s a <em>lot</em> of documentation, but it&#8217;s not always clear how it all fits together.</p>



<p>That&#8217;s why this exists.</p>



<p>How long this will take depends on how many channels you are bridging, and how many messages you&#8217;re backfilling; I would estimate somewhere between 30-60 minutes with this guide. Further, once you&#8217;ve set this up <em>once</em>, it keeps working <em>and</em> allows you to do some additional cool stuff.</p>



<p>Like <a href="https://ideatrash.net/tag/nextcloud" target="_blank" rel="noreferrer noopener">my other guides</a> on moving from Discord to NextCloud, it may seem like a lot, but I&#8217;ve done my best at making them all work as a &#8220;step-by-step HOWTO&#8221;.</p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><strong>IMPORTANT</strong>: You may be wondering why I didn&#8217;t use the Matterbridge integration from NextCloud. That&#8217;s because it immediately caused my instance to crash, so we&#8217;ll do it the (slightly) harder way.</p>
</blockquote>



<p>You&#8217;ll need:</p>



<ul class="wp-block-list">
<li>Old Discord Server</li>



<li>NextCloud server with Talk installed</li>



<li>Python (a programming language for the importing of old messages)</li>
</ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Both <a href="https://github.com/42wim/matterbridge/releases/tag/v1.26.0" target="_blank" rel="noreferrer noopener nofollow">Matterbridge</a> and <a href="https://www.python.org/downloads/" target="_blank" rel="noreferrer noopener nofollow">Python</a> are crossplatform, but some of the specific commands may be slightly different on Windows or macOS. While there is plenty of documentation out there to cover various cases, the whole point of these guides are to get you up and running <em>simply</em> and <em>quickly</em>, so I am making the assumption that you followed<a href="https://ideatrash.net/2026/02/weekend-project-how-to-replace-discord-with-free-software-and-an-old-pc.html" target="_blank" rel="noreferrer noopener"> my guide (or close enough to it)</a>, in which case you&#8217;re already ready, or that you have a linux host available for you to use.</p>
</blockquote>



<h2 class="wp-block-heading">Create The Bot Accounts</h2>



<p>In NextCloud, click the circle in the top right and choose &#8220;Accounts&#8221;. Create a brand new account, and copy down its username and password in <a href="https://ideatrash.net/2026/02/keep-your-passwords-safe-and-under-your-control-for-free.html" target="_blank" rel="noreferrer noopener">your password manager</a>. Optionally, log in as the bot account to set its user icon and description to clearly note that it is a bot.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="496" height="210" src="https://ideatrash.net/wp-content/uploads/2026/03/2026-03-06_12.09.28.jpg" alt="" class="wp-image-145016" srcset="https://ideatrash.net/wp-content/uploads/2026/03/2026-03-06_12.09.28.jpg 496w, https://ideatrash.net/wp-content/uploads/2026/03/2026-03-06_12.09.28-300x127.jpg 300w" sizes="(max-width: 496px) 100vw, 496px" /></figure>



<p>Setting up the Discord side is a little more difficult, but Matterbridge already has a <a href="https://github.com/42wim/matterbridge/wiki/Discord-bot-setup" target="_blank" rel="noreferrer noopener nofollow">really good step-by-step instruction for this part</a>. <em>DO</em> enable webhooks. Copy the bot&#8217;s token (the very last step) to your password manager or notes; we&#8217;ll come back to it in a bit. Make sure this bot <a href="https://support.discord.com/hc/en-us/articles/10543994968087-Channel-Permissions-Settings-101" target="_blank" rel="noreferrer noopener nofollow">can access all the text channels you want it to</a>.</p>



<h2 class="wp-block-heading">Prepare The Text Channels</h2>



<p>In NextCloud Talk, make a <strong>new and empty</strong> Talk channel for every text channel you wish to bridge and backfill from Discord. This is both so that it doesn&#8217;t flood Discord with old messages and so that ongoing discussions in that channel are not pushed back by our backfill from Discord. It does not have to be the same name, but it will make your life easier. Be sure to give the bot account access to every channel you want it to bridge, or you will get errors later.</p>



<p>For each channel you wish to bridge:</p>



<ul class="wp-block-list">
<li>Open the room and copy the <em>end</em> of the URL. This is the &#8220;token&#8221; for the channel. For example, it&#8217;s &#8220;thisparthere&#8221; for <code>https://mycloud.example.com/call/thisparthere</code>.</li>



<li>Go to Discord, <em>right</em> click on the channel, and copy the Channel ID at the bottom.<br></li>
</ul>



<p>I ended up writing it down like this, the important part is copying it.</p>



<pre class="wp-block-code"><code>#general,12345678910,abcdefg
#gaming-memes,2345678910,bcdefga
</code></pre>



<h2 class="wp-block-heading">Download Matterbridge And Create The Configuration</h2>



<ul class="wp-block-list">
<li>Open a terminal window on your NextCloud machine (or other linux host) and create a directory for Matterbridge to live in: <code>mkdir -p $HOME/apps/matterbridge &amp;&amp; cd $HOME/apps/matterbridge</code></li>



<li>Download Matterbridge into that directory. The most recent releases <a href="https://github.com/42wim/matterbridge/releases/latest" target="_blank" rel="noreferrer noopener nofollow">live on GitHub</a>, but as it&#8217;s been three years since one, you can (currently) just do this: <code>wget https://github.com/42wim/matterbridge/releases/download/v1.26.0/matterbridge-1.26.0-linux-64bit</code>
<ul class="wp-block-list">
<li>If you are NOT following <a href="https://ideatrash.net/2026/02/weekend-project-how-to-replace-discord-with-free-software-and-an-old-pc.html" target="_blank" rel="noreferrer noopener">my guide,</a> select the correct release on GitHub for this step.</li>
</ul>
</li>



<li>Download my example configuration and make a copy with these commands (paste on one line): <br><code>wget https://gist.github.com/uriel1998/f5c824c5a028b323786387968b6559f2/raw/95f9090ad554870cb9704376d6101cde820545da/matterbridge.example.toml &amp;&amp; cp ./matterbridge.example.toml ./matterbridge.toml</code></li>



<li>You&#8217;ll now need to edit this file. You can either use an editor in the terminal, or simply type <code>xdg-open ./matterbridge.toml</code> which should open the file in a graphical editor.</li>



<li>Here&#8217;s what you need to edit:
<ul class="wp-block-list">
<li>Under <code>[discord.mydiscord]</code> add the Discord server and bot token</li>



<li>Under <code>[nctalk.cloud]</code> put your server&#8217;s URL, as well as the NextCloud bot account&#8217;s username and password</li>



<li>Skip down to the <strong>first</strong> <code>[[gateway]]</code> section. Each channel that you are bridging has its own gateway section. Each of these sections starts with the line <code>[[gateway]]</code></li>



<li>For each <code>[[gateway]]</code> section, put the name you want to call that gateway, fill in the Talk channel token, and the Discord channel ID. There are two examples already in there, just keep repeating <code>[[gateway]]</code> sections for each channel you want to bridge.</li>
</ul>
</li>



<li>Save the file.</li>
</ul>



<h2 class="wp-block-heading">Test And Set It To Automatically Run</h2>



<ul class="wp-block-list">
<li>In the terminal, type <code>matterbridge-1.26.0-linux-64bit</code>. This is where you find out that you made typos and can check that it has access to everything. If there are no errors, type Ctrl-C to stop it.</li>



<li>To get it to start automatically.
<ul class="wp-block-list">
<li>If you are NOT using <a href="https://ideatrash.net/2026/02/weekend-project-how-to-replace-discord-with-free-software-and-an-old-pc.html" target="_blank" rel="noreferrer noopener">my guide</a>, you might want to look at the official <a href="https://github.com/42wim/matterbridge/wiki/Service-files" target="_blank" rel="noreferrer noopener nofollow">instructions</a></li>



<li>Download my example configuration file <a href="%5Bhttps://gist.github.com/uriel1998/07591f2ca9ec123658c33c36dcbdba52%5D(https://gist.github.com/uriel1998/07591f2ca9ec123658c33c36dcbdba52)" target="_blank" rel="noreferrer noopener nofollow">from here</a> by typing in the terminal (on one line): <br><code>wget https://gist.githubusercontent.com/uriel1998/07591f2ca9ec123658c33c36dcbdba52/raw/47caba7dcead74c25461a1e28854529e5143e7c9/matterbridge.service</code></li>



<li>Edit this file just as you did the example earlier. The only thing you need to change is to put your linux username where it says USERNAME (twice), and save the file.
<ul class="wp-block-list">
<li>If you put matterbridge somewhere else, change the whole path name to point to the right location.</li>
</ul>
</li>



<li>Type <code>sudo cp ./matterbridge.service /etc/systemd/system/matterbridge.service</code>
<ul class="wp-block-list">
<li>You&#8217;ll need to put in your password for <code>sudo</code> commands; that&#8217;s administrator access</li>
</ul>
</li>



<li>Type <code>sudo systemctl enable --now matterbridge.service</code>
<ul class="wp-block-list">
<li>This will not only add it to start when the computer boots, but it&#8217;ll start <em>right now</em> as well.</li>
</ul>
</li>
</ul>
</li>
</ul>



<h2 class="wp-block-heading">Import (Backfill) Old Messages From Discord</h2>



<p>As I mentioned above, Matterbridge will automatically backfill <em>from</em> NextCloud <em>to</em> Discord, which is the opposite of what we want. But since we&#8217;ve already configured Matterbridge with all the information we need, <a href="https://github.com/uriel1998/discord_talk_backfill#" target="_blank" rel="noreferrer noopener nofollow">we can use a python script I put together to pull old messages out of Discord</a>.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><strong>IMPORTANT</strong>: The script does <em>not</em> check if it has already imported a message. If you run it more than once, you&#8217;ll get duplicates. Use <code>--dry run</code> to test it first!</p>
</blockquote>



<ul class="wp-block-list">
<li>Still in the terminal, type <code>cd ~/apps</code> to get to the main apps directory.</li>



<li>Download and unzip the program, get rid of the zip file, and change to the right directory: <code>wget https://github.com/uriel1998/discord_talk_backfill/archive/refs/heads/master.zip &amp;&amp; unzip ./master.zip &amp;&amp; rm ./master.zip &amp;&amp; cd discord_talk_backfill</code></li>



<li>Copy your Matterbridge configuration into this directory: <code>cp ../matterbridge/matterbridge.toml ./matterbridge.toml</code></li>



<li>Check the script and have it auto-configure by typing <code>python3 ./discord_talk_backfill.py --help</code>. You should see something like the help block below.</li>
</ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><strong>IMPORTANT</strong>: When the script runs, it is going to do a bunch of things. It&#8217;s creating its own workspace (venv) to do things in and downloading the things it needs, but keeping them separate from the rest of your system. If this fails, try <code>sudo apt install python3-venv</code> and retry.</p>
</blockquote>



<pre class="wp-block-code"><code>usage: discord_to_talk_backfill.py &#91;-h] &#91;--list-functions] &#91;--dryrun]
                                   &#91;--maxmessages MAXMESSAGES]
                                   &#91;--daysback DAYSBACK]

Backfill Discord messages to Nextcloud Talk using matterbridge mappings.

options:
  -h, --help            show this help message and exit
  --list-functions      List script utilities and exit.
  --dryrun              Print transformed payloads without posting to
                        Nextcloud Talk.
  --maxmessages MAXMESSAGES
                        Maximum number of most-recent messages to read per
                        Discord channel.
  --daysback DAYSBACK   Exclude messages older than this many days.
</code></pre>



<ul class="wp-block-list">
<li>Type <code>python3 ./discord_talk_backfill.py --dryrun</code> and make sure there are no errors and that you have channel pairs set up correctly.</li>



<li>Type <code>python3 ./discord_talk_backfill.py</code>. For most use cases, you will not need to use any options.</li>



<li>Watch the messages appear in your Talk channel. It will post 25 at a time, so it may take a little while.</li>



<li>The script adds 🪏 to the messages to indicate that they&#8217;re backfilled.</li>
</ul>



<p>The one &#8220;gotcha&#8221; is that because of the way that images and attachments are handled in Discord, they may just show up as links in NextCloud in backfilled and bridged messages. The links <em>work</em>, they&#8217;re just not inline if they link to something on Discord&#8217;s servers.</p>



<p><strong>And you&#8217;re done.</strong> Your text channels in NextCloud have pretty much the same content as your Discord channels. As your group/team/players transition to using NextCloud, they may post in Discord instead by accident; this means their messages aren&#8217;t lost.</p>



<h2 class="wp-block-heading">Additional Cool Stuff</h2>



<p>As mentioned, Matterbridge is a <em>very</em> versatile program that can<a href="https://github.com/42wim/matterbridge?tab=readme-ov-file#natively-supported" target="_blank" rel="noreferrer noopener nofollow"> bridge between quite a few chatroom types</a>, including Mattermost, Microsoft Teams, Mumble, Slack, Telegram, WhatsApp, XMPP, Matrix, and even (with some extra work) MINECRAFT.</p>



<p>In order to do that, you configure the <em>service</em> at the top, and then add that to the <code>[[gateway]]</code> section. For example, if I&#8217;d configured a XMPP (Jabber) at the top as well, and wanted to have the general chat channel show up both in NextCloud and on my Jabber server, I&#8217;d add the last three lines:</p>



<pre class="wp-block-code"><code>&#91;&#91;gateway]]
name="general"
enable=true
&#91;&#91;gateway.inout]]
account="nctalk.cloud"
channel="nextcloud_talk_room_token"
&#91;&#91;gateway.inout]]
account="discord.mydiscord"
channel="ID:123456789012345678"
&#91;&#91;gateway.inout]]
account="xmpp.myxmpp"
channel="general"</code></pre>



<p></p>



<p>Featured Image by <a href="https://pixabay.com/users/tumisu-148124/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=3012138" target="_blank" rel="nofollow">Tumisu</a> from <a href="https://pixabay.com//?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=3012138" target="_blank" rel="nofollow">Pixabay</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://ideatrash.net/2026/03/how-to-backfill-text-channels-from-discord-to-nextcloud.html/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			<dc:creator>steven@alliterationink.com (Steven Saus)</dc:creator></item>
		<item>
		<title>Comparing Jitsi Meet And NextCloud Talk For Replacing Discord’s Calls</title>
		<link>https://ideatrash.net/2026/03/comparing-jitsi-meet-and-nextcloud-talk-for-replacing-discords-calls.html</link>
					<comments>https://ideatrash.net/2026/03/comparing-jitsi-meet-and-nextcloud-talk-for-replacing-discords-calls.html#comments</comments>
		
		
		<pubDate>Wed, 04 Mar 2026 19:07:16 +0000</pubDate>
				<category><![CDATA[communication]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[audiochat]]></category>
		<category><![CDATA[discord]]></category>
		<category><![CDATA[jitsi]]></category>
		<category><![CDATA[nextcloud]]></category>
		<category><![CDATA[videochat]]></category>
		<guid isPermaLink="false">https://ideatrash.net/?p=144987</guid>

					<description><![CDATA[<a href="https://ideatrash.net/2026/03/comparing-jitsi-meet-and-nextcloud-talk-for-replacing-discords-calls.html" title="Comparing Jitsi Meet And NextCloud Talk For Replacing Discord&#8217;s Calls" rel="nofollow"><img width="790" height="319" src="https://ideatrash.net/wp-content/uploads/2026/03/alexandra_koch-home-office-5231389_1920.jpg" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin: auto; margin-bottom: 5px;max-width: 100%;" link_thumbnail="1" decoding="async" srcset="https://ideatrash.net/wp-content/uploads/2026/03/alexandra_koch-home-office-5231389_1920.jpg 1024w, https://ideatrash.net/wp-content/uploads/2026/03/alexandra_koch-home-office-5231389_1920-300x121.jpg 300w, https://ideatrash.net/wp-content/uploads/2026/03/alexandra_koch-home-office-5231389_1920-768x311.jpg 768w" sizes="(max-width: 790px) 100vw, 790px" /></a>Each has its strengths and weaknesses for our purposes.]]></description>
										<content:encoded><![CDATA[<a href="https://ideatrash.net/2026/03/comparing-jitsi-meet-and-nextcloud-talk-for-replacing-discords-calls.html" title="Comparing Jitsi Meet And NextCloud Talk For Replacing Discord&#8217;s Calls" rel="nofollow"><img width="790" height="319" src="https://ideatrash.net/wp-content/uploads/2026/03/alexandra_koch-home-office-5231389_1920.jpg" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin: auto; margin-bottom: 5px;max-width: 100%;" link_thumbnail="1" decoding="async" srcset="https://ideatrash.net/wp-content/uploads/2026/03/alexandra_koch-home-office-5231389_1920.jpg 1024w, https://ideatrash.net/wp-content/uploads/2026/03/alexandra_koch-home-office-5231389_1920-300x121.jpg 300w, https://ideatrash.net/wp-content/uploads/2026/03/alexandra_koch-home-office-5231389_1920-768x311.jpg 768w" sizes="(max-width: 790px) 100vw, 790px" /></a>
<p>I think that NextCloud + Jitsi Meet replicates nearly everything Discord does, but self-hosted and without the privacy and ongoing enshittification.  Enough so that I <a href="https://ideatrash.net/2026/02/weekend-project-how-to-replace-discord-with-free-software-and-an-old-pc.html" data-type="link" data-id="https://ideatrash.net/2026/02/weekend-project-how-to-replace-discord-with-free-software-and-an-old-pc.html">wrote a step-by-step guide on how to do it with a 10-year-old PC</a>, and an <a href="https://ideatrash.net/2026/02/installing-fail2ban-with-nextcloud-in-six-clicks.html">add-on about adding a layer of security in only six clicks</a>.</p>



<p>I recommended using Jitsi Meet over NextCloud Talk for audio/video conference rooms, and the lack of bots to handle some functions that are possible in Discord. I&#8217;m going to explain why I made that decision, some of the considerations that went into that recommendation, what you need to consider when choosing whether to use the public <a href="https://meet.jit.si/" target="_blank" rel="nofollow">Jitsi Meet</a> instance or self-hosting it, and what I did to make it all work anyway (as well as the bot situation).</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>TL;DR: Use Talk for the equivalent of text channels on Discord, use self-hosted Jitsi (either audio-only or limiting video, depending on your bandwidth) for conference rooms. Proof-of-concept bots now exist (and work) that run in a browser window that, with a virtual microphone, allow audio streaming and recording.</p>



<p><br>This is the post explaining why I&#8217;ve made the decisions I have, so you can see if they work for you. Later this week I&#8217;ll detail exactly <em>how</em> to get it set up for yourself and your group (including the bots).</p>
</blockquote>



<h2 class="wp-block-heading">Integration And Security</h2>



<p>NextCloud Talk is tightly integrated with the rest of NextCloud, which allows you to do all sorts of neat things with it. Embed files, control access by user groups, automatically create meeting rooms with appointments, and more. This is very neat, and I find it really useful with the text chat portion of Talk. Jitsi is designed to be <em>open</em> first, which is not ideal for self-hosted situations. It&#8217;s easy to add a lobby or password to an existing room, but neither is the default on the selfhosted setup. While making a room is super simple and easy, the default setup is to allow anybody who can reach the service to fully use it. Luckily for our use case, it&#8217;s possible to set up only a few users who are allowed to make rooms while still allowing anyone to join. You want this because of the next issue…</p>



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



<p>I was surprised to find that just videoconferencing&#8217;s big demand was not CPU power or RAM; it&#8217;s <em>bandwidth</em>.</p>



<p>Both NextCloud Talk (with its &#8220;high performance backend&#8221; enabled) and Jitsi Meet serve as stream <em>forwarders</em>. If you only have two people in the call, it&#8217;s pretty straightforward &#8211; there&#8217;s a stream in and out for each participant. Two streams in, two streams out. (This is a simplification, but gets the point across.)</p>



<p>It&#8217;s when you start adding <em>others</em> that it gets problematic. Let&#8217;s say you have five people in the call and everyone&#8217;s video and mics are disabled. The server only has one stream coming in, but it has <em>four</em> copies of that stream going back out — twice as much as two people chatting.</p>



<p>And that&#8217;s with restricting everyone else. If you have two people with incoming streams, it gets even worse: two streams in, <em>eight</em> out.  That number starts getting a LOT higher the more people you add to the call.  </p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img decoding="async" width="448" height="480" data-id="144988" src="https://ideatrash.net/wp-content/uploads/2026/03/2026-03-04_11.43.43.jpg" alt="" class="wp-image-144988" srcset="https://ideatrash.net/wp-content/uploads/2026/03/2026-03-04_11.43.43.jpg 448w, https://ideatrash.net/wp-content/uploads/2026/03/2026-03-04_11.43.43-280x300.jpg 280w" sizes="(max-width: 448px) 100vw, 448px" /><figcaption class="wp-element-caption">1-1</figcaption></figure>



<figure class="wp-block-image size-large"><img decoding="async" width="736" height="620" data-id="144989" src="https://ideatrash.net/wp-content/uploads/2026/03/2026-03-04_11.45.10.jpg" alt="" class="wp-image-144989" srcset="https://ideatrash.net/wp-content/uploads/2026/03/2026-03-04_11.45.10.jpg 736w, https://ideatrash.net/wp-content/uploads/2026/03/2026-03-04_11.45.10-300x253.jpg 300w" sizes="(max-width: 736px) 100vw, 736px" /><figcaption class="wp-element-caption">1 person seen</figcaption></figure>



<figure class="wp-block-image size-large"><img decoding="async" width="723" height="581" data-id="144990" src="https://ideatrash.net/wp-content/uploads/2026/03/2026-03-04_11.45.53.jpg" alt="" class="wp-image-144990" srcset="https://ideatrash.net/wp-content/uploads/2026/03/2026-03-04_11.45.53.jpg 723w, https://ideatrash.net/wp-content/uploads/2026/03/2026-03-04_11.45.53-300x241.jpg 300w" sizes="(max-width: 723px) 100vw, 723px" /><figcaption class="wp-element-caption">2 people seen</figcaption></figure>
</figure>



<p>This means that as a practical matter, if you are doing video with your conference calls, you need to have not just good <em>incoming</em> bandwidth, but <em>outgoing</em> as well. <a href="https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-requirements/" target="_blank" rel="nofollow">Jitsi recommends</a>:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>For a friends/small organization server, 1 Gbits/s will often be enough but for a serious server 10 Gbits/s is advisable.</p>
</blockquote>



<p>As of June 2024, <a href="https://docs.fcc.gov/public/attachments/DOC-411463A1.pdf" target="_blank" rel="nofollow">only 70% of US customers had less than 500Mbps upstream</a> (or half that speed). That is a <em>serious</em> problem if you want to use something selfhosted for more than 1-1 chats, regardless of whether you use Talk or Jitsi.</p>



<p>Jitsi has some ways to minimize the bandwidth by limiting the resolution of the video stream, limiting how many people are visible at any given time, or even turning off video entirely. If NextCloud Talk has similar controls, I&#8217;ve not yet found them yet. That&#8217;s a big point in Jitsi&#8217;s favor for me for group conference calls.</p>



<h2 class="wp-block-heading">Recording Support</h2>



<p>Both Jitsi Meet and NextCloud Talk have &#8220;native&#8221; ways to record conferences through adding on other services, through <a href="https://jitsi.support/how-to/install-configure-jibri-jitsi-meet/" target="_blank" rel="nofollow">Jibri</a> and <a href="https://github.com/MetaProvide/talked" target="_blank" rel="nofollow">Talked</a>, respectively. Both work essentially in the same way: they run another copy of a web browser that connects to the call just like a human would, and uses that to get the audio and video.</p>



<p>This part <em>does</em> take additional CPU and RAM power — to the point that both recommend running the recording service on another system than the one handling the call. If you need video recording (or sophisticated audio recording, like per-channel streams), this is where you&#8217;re going to end up looking. The added complexity and hardware demand is more than I&#8217;m aiming for with my guide, or that my group needs since we do audio-only calls anyway.</p>



<p>But if you just want basic audio of everyone who is on the call, keep reading.</p>



<h2 class="wp-block-heading">Bot Support</h2>



<p>I was looking for two types of bots: one type that interacted through the text chat, and one type that deals with audio streams, such as mixing in music, sound effects, or recording the audio.</p>



<p>The bot ecosystem around both Talk and Jitsi is pretty sparse. I also discovered some severe limitations on both sides. To access the audio or video for Talk&#8217;s conference rooms, it seems like you essentially <em>have</em> to run a headless browser. Once again, that adds complexity and hardware demands that I want to avoid. However, Jitsi&#8217;s public instance, because of the way that it handles traffic, means that <a href="https://github.com/Bloodiko/jitsi-bot" target="_blank" rel="nofollow">the audio bots</a> that <a href="https://github.com/Music-Bot-for-Jitsi/Jimmi" target="_blank" rel="nofollow">I found</a> can&#8217;t stay connected… and I wasn&#8217;t able to find a way around that. They do, however, work just fine when it&#8217;s self-hosted.</p>



<h2 class="wp-block-heading">Making It Work Anyway</h2>



<p>Rather than force either bit of software to do something it doesn&#8217;t want, I leaned into the strengths and weaknesses of each. I&#8217;m using NextCloud Talk as the equivalent of the text channels on Discord. It&#8217;s well suited for that due to its integration with the rest of NextCloud. Also, since we can have bot access to the text channel, <a href="https://github.com/nextcloud/command_bot" target="_blank" rel="nofollow">existing bots</a> and <a href="https://github.com/nextcloud/integration_giphy" target="_blank" rel="nofollow">existing integrations</a> can be upgraded to provide the functions I need, like <a href="https://github.com/uriel1998/die_roller_bot" target="_blank" rel="nofollow">responding with customizable information</a> or a <a href="https://github.com/uriel1998/nextcloud_stickerpicker" target="_blank" rel="nofollow">customizable stickerpicker</a>.</p>



<p>Because just running the conference room is not a big load on the computer itself, I installed it through Docker as well. I only had to create an account for myself, since I&#8217;m the only one who should be creating rooms. The configuration limits it to audio calls as well. I thought about limiting the number of video streams forwarded or limiting resolution, both of which Jitsi can do, but even then it would be a lot of bandwidth.</p>


<div class="wp-block-image">
<figure class="alignleft size-full"><img decoding="async" width="660" height="435" src="https://ideatrash.net/wp-content/uploads/2026/03/8bf6490c-14cf-408b-b614-0625cb7dd551.jpg" alt="" class="wp-image-144999" srcset="https://ideatrash.net/wp-content/uploads/2026/03/8bf6490c-14cf-408b-b614-0625cb7dd551.jpg 660w, https://ideatrash.net/wp-content/uploads/2026/03/8bf6490c-14cf-408b-b614-0625cb7dd551-300x198.jpg 300w" sizes="(max-width: 660px) 100vw, 660px" /></figure>
</div>


<p>Limiting to audio means that with my table it&#8217;s estimated to average around 2.5Mbps upstream, well within my upstream bandwidth. But add 320p video and that more than doubles to an average of 5.5Mbps, and a maximum that exceeds my upstream. 720p resolution or better has even higher bandwidth requirements for the server, even if you&#8217;re limiting the number of outbound video streams.  (Graphs of estimated <em>upstream</em> bandwidth for audio versus video resolution without any limiting are at the end of the post to give you an idea of what you might need for what you want to do.)</p>



<p>Luckily for me, my table does audio-only already, so that is more than sufficient for us.</p>



<p>By self-hosting the Jitsi server, that also means that I can use <a href="https://github.com/uriel1998/jitsi-bot" target="_blank" rel="nofollow">the bots I adapted</a> to pipe in a http audio stream, connect <a href="https://github.com/uriel1998/virtual_microphone" target="_blank" rel="nofollow">a virtual microphone</a> (so I can use Kenku), have the same chatbot functionality as in Talk, and record the audio stream to my local computer in a single extra browser window.</p>



<p>I&#8217;ll have a detailed guide later this week, but if this (plus the links in this post) is enough for you, give it a shot! </p>



<figure class="wp-block-gallery has-nested-images columns-2 is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-medium"><img decoding="async" width="300" height="239" data-id="144993" src="https://ideatrash.net/wp-content/uploads/2026/03/964b32d6-e3ae-4293-af3e-0f12924b4d35-300x239.jpg" alt="" class="wp-image-144993" srcset="https://ideatrash.net/wp-content/uploads/2026/03/964b32d6-e3ae-4293-af3e-0f12924b4d35-300x239.jpg 300w, https://ideatrash.net/wp-content/uploads/2026/03/964b32d6-e3ae-4293-af3e-0f12924b4d35.jpg 571w" sizes="(max-width: 300px) 100vw, 300px" /></figure>



<figure class="wp-block-image size-medium"><img decoding="async" width="300" height="239" data-id="144994" src="https://ideatrash.net/wp-content/uploads/2026/03/f0b1a0a1-fdcf-48ff-ad2b-afa09f4cacd6-300x239.jpg" alt="" class="wp-image-144994" srcset="https://ideatrash.net/wp-content/uploads/2026/03/f0b1a0a1-fdcf-48ff-ad2b-afa09f4cacd6-300x239.jpg 300w, https://ideatrash.net/wp-content/uploads/2026/03/f0b1a0a1-fdcf-48ff-ad2b-afa09f4cacd6.jpg 571w" sizes="(max-width: 300px) 100vw, 300px" /></figure>



<figure class="wp-block-image size-medium"><img decoding="async" width="300" height="243" data-id="144996" src="https://ideatrash.net/wp-content/uploads/2026/03/f80b5af4-d4ef-4289-9e39-421ce2a33948-300x243.jpg" alt="" class="wp-image-144996" srcset="https://ideatrash.net/wp-content/uploads/2026/03/f80b5af4-d4ef-4289-9e39-421ce2a33948-300x243.jpg 300w, https://ideatrash.net/wp-content/uploads/2026/03/f80b5af4-d4ef-4289-9e39-421ce2a33948.jpg 562w" sizes="(max-width: 300px) 100vw, 300px" /></figure>



<figure class="wp-block-image size-medium"><img decoding="async" width="300" height="246" data-id="144995" src="https://ideatrash.net/wp-content/uploads/2026/03/eb23d81b-6882-4214-8593-5d89864b1086-1-300x246.jpg" alt="" class="wp-image-144995" srcset="https://ideatrash.net/wp-content/uploads/2026/03/eb23d81b-6882-4214-8593-5d89864b1086-1-300x246.jpg 300w, https://ideatrash.net/wp-content/uploads/2026/03/eb23d81b-6882-4214-8593-5d89864b1086-1.jpg 554w" sizes="(max-width: 300px) 100vw, 300px" /></figure>
</figure>



<p>Featured Image by <a href="https://pixabay.com/users/alexandra_koch-621802/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=5231389" target="_blank" rel="nofollow">Alexandra_Koch</a> from <a href="https://pixabay.com//?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=5231389" target="_blank" rel="nofollow">Pixabay</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://ideatrash.net/2026/03/comparing-jitsi-meet-and-nextcloud-talk-for-replacing-discords-calls.html/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			<dc:creator>steven@alliterationink.com (Steven Saus)</dc:creator></item>
		<item>
		<title>Good Working Order: Relationship Driving Conditions Matter Too</title>
		<link>https://ideatrash.net/2026/03/good-working-order-relationship-driving-conditions-matter-too.html</link>
					<comments>https://ideatrash.net/2026/03/good-working-order-relationship-driving-conditions-matter-too.html#comments</comments>
		
		
		<pubDate>Mon, 02 Mar 2026 15:30:20 +0000</pubDate>
				<category><![CDATA[advice]]></category>
		<category><![CDATA[relationships]]></category>
		<category><![CDATA[good working order]]></category>
		<guid isPermaLink="false">https://ideatrash.net/?p=144974</guid>

					<description><![CDATA[<a href="https://ideatrash.net/2026/03/good-working-order-relationship-driving-conditions-matter-too.html" title="Good Working Order: Relationship Driving Conditions Matter Too" rel="nofollow"><img width="790" height="391" src="https://ideatrash.net/wp-content/uploads/2026/03/trendoss-vw-beetle-375665_1280.jpg" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin: auto; margin-bottom: 5px;max-width: 100%;" link_thumbnail="1" decoding="async" srcset="https://ideatrash.net/wp-content/uploads/2026/03/trendoss-vw-beetle-375665_1280.jpg 808w, https://ideatrash.net/wp-content/uploads/2026/03/trendoss-vw-beetle-375665_1280-300x149.jpg 300w, https://ideatrash.net/wp-content/uploads/2026/03/trendoss-vw-beetle-375665_1280-768x380.jpg 768w" sizes="(max-width: 790px) 100vw, 790px" /></a>A stock car on the highway is very different than a golf cart on the green.]]></description>
										<content:encoded><![CDATA[<a href="https://ideatrash.net/2026/03/good-working-order-relationship-driving-conditions-matter-too.html" title="Good Working Order: Relationship Driving Conditions Matter Too" rel="nofollow"><img width="790" height="391" src="https://ideatrash.net/wp-content/uploads/2026/03/trendoss-vw-beetle-375665_1280.jpg" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin: auto; margin-bottom: 5px;max-width: 100%;" link_thumbnail="1" decoding="async" srcset="https://ideatrash.net/wp-content/uploads/2026/03/trendoss-vw-beetle-375665_1280.jpg 808w, https://ideatrash.net/wp-content/uploads/2026/03/trendoss-vw-beetle-375665_1280-300x149.jpg 300w, https://ideatrash.net/wp-content/uploads/2026/03/trendoss-vw-beetle-375665_1280-768x380.jpg 768w" sizes="(max-width: 790px) 100vw, 790px" /></a>
<p>Dan Savage (among others) has pointed out that before trying to be in a relationship, <a href="https://www.thestranger.com/blogs/2011/01/25/6475053/sl-letter-of-the-day-good-working-order" target="_blank" rel="nofollow">one should be in &#8220;good working order&#8221;</a>. While that is something pretty easy to assess at the extreme ends (<a href="https://www.thestranger.com/blogs/2011/01/25/6475053/sl-letter-of-the-day-good-working-order/comments/7" target="_blank" rel="nofollow">like this commenter does</a>), the reality of the situation is, as Dan says, that we are <em>all</em> used cars. You do not expect a used car to be factory-mint-condition, but you <em>do</em> expect it to be <em>operational</em>.</p>



<p>Because realistically, the odds of making it to adulthood — let alone the part of adulthood <em>I</em> am in — without experiencing some kind of trauma are near-zero. Every one of our &#8220;used cars&#8221; has metaphorical dings in the finish or a figurative slight wobble in the steering. And that&#8217;s before you account for the stress of the rest of the world.</p>



<p>But to expand that metaphor just a little bit further, &#8220;good working order&#8221; is not the same for all conditions or vehicles.</p>



<p>What counts for &#8220;good working order&#8221; for a golf cart is different than for a NASCAR stock car. That goes the other way as well: a stock car is pretty awful at caddying golfers on the green. My little three-cylinder car (&#8220;Hamsters&#8221;) is great for both tooling around southwest Ohio and going further west onto the relatively flat plains. It has a <em>lot</em> more issues when I go east over the Appalachian mountains, though.</p>



<p>There are some factors — interfaith relationships, long distance, polyamory, to name a few — that change the &#8220;road conditions&#8221; of relationships. They aren&#8217;t &#8220;bad&#8221; or &#8220;good&#8221;, just that they&#8217;re different &#8220;driving conditions&#8221;.</p>



<p>For example, if there is a slight (metaphorical) &#8220;steering wobble&#8221; in your relationship, it&#8217;s probably going to become more noticeable if the relationship becomes long distance.</p>



<p>Sometimes that means that you don&#8217;t take the relationship down that particular &#8220;road&#8221;. Perhaps you choose to not become long distance, or choose to break up. Sometimes that means that you instead do more work — sometimes a LOT more work — on the vehicle to get rid of that wobble. Sometimes you just adjust to it, especially if those &#8220;road conditions&#8221; are expected to change.</p>



<p>It&#8217;s more important than ever to keep that in mind these days. Not only does everyone have the &#8220;regular&#8221; amount of trauma, but the additional traumas of … well, the world since 2020.</p>



<p>It isn&#8217;t just whether or not you are in good working order, but whether you&#8217;re in good working order <em>for the driving conditions of your current relationship(s).</em></p>



<p>And if you aren&#8217;t, what are you willing or able to do about that?</p>



<p>Featured Image by <a href="https://pixabay.com/users/trendoss-308604/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=375665" target="_blank" rel="nofollow">trendoss</a> from <a href="https://pixabay.com//?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=375665" target="_blank" rel="nofollow">Pixabay</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://ideatrash.net/2026/03/good-working-order-relationship-driving-conditions-matter-too.html/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			<dc:creator>steven@alliterationink.com (Steven Saus)</dc:creator></item>
		<item>
		<title>Installing Fail2Ban With NextCloud In Six Clicks</title>
		<link>https://ideatrash.net/2026/02/installing-fail2ban-with-nextcloud-in-six-clicks.html</link>
					<comments>https://ideatrash.net/2026/02/installing-fail2ban-with-nextcloud-in-six-clicks.html#comments</comments>
		
		
		<pubDate>Sat, 28 Feb 2026 21:59:45 +0000</pubDate>
				<category><![CDATA[internet]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[fail2ban]]></category>
		<category><![CDATA[nextcloud]]></category>
		<guid isPermaLink="false">https://ideatrash.net/?p=144940</guid>

					<description><![CDATA[<a href="https://ideatrash.net/2026/02/installing-fail2ban-with-nextcloud-in-six-clicks.html" title="Installing Fail2Ban With NextCloud In Six Clicks" rel="nofollow"><img width="790" height="333" src="https://ideatrash.net/wp-content/uploads/2026/02/flutie8211-cyber-security-8819383_1280.jpg" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin: auto; margin-bottom: 5px;max-width: 100%;" link_thumbnail="1" decoding="async" srcset="https://ideatrash.net/wp-content/uploads/2026/02/flutie8211-cyber-security-8819383_1280.jpg 1024w, https://ideatrash.net/wp-content/uploads/2026/02/flutie8211-cyber-security-8819383_1280-300x127.jpg 300w, https://ideatrash.net/wp-content/uploads/2026/02/flutie8211-cyber-security-8819383_1280-768x324.jpg 768w" sizes="(max-width: 790px) 100vw, 790px" /></a>Make things more secure in just a few minutes.]]></description>
										<content:encoded><![CDATA[<a href="https://ideatrash.net/2026/02/installing-fail2ban-with-nextcloud-in-six-clicks.html" title="Installing Fail2Ban With NextCloud In Six Clicks" rel="nofollow"><img width="790" height="333" src="https://ideatrash.net/wp-content/uploads/2026/02/flutie8211-cyber-security-8819383_1280.jpg" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin: auto; margin-bottom: 5px;max-width: 100%;" link_thumbnail="1" decoding="async" srcset="https://ideatrash.net/wp-content/uploads/2026/02/flutie8211-cyber-security-8819383_1280.jpg 1024w, https://ideatrash.net/wp-content/uploads/2026/02/flutie8211-cyber-security-8819383_1280-300x127.jpg 300w, https://ideatrash.net/wp-content/uploads/2026/02/flutie8211-cyber-security-8819383_1280-768x324.jpg 768w" sizes="(max-width: 790px) 100vw, 790px" /></a>
<p>My initial guide about <a href="https://ideatrash.net/2026/02/weekend-project-how-to-replace-discord-with-free-software-and-an-old-pc.html">setting up NextCloud as a Discord alternative </a>was focused on getting you running quickly within 90 minutes. There&#8217;s quite a few tweaks and improvements you can make <em>after</em> installation, including making your setup a bit more secure.</p>



<p>There&#8217;s a really easy, quick way to make your server more secure: Add <a href="https://en.wikipedia.org/wiki/Fail2ban" target="_blank" rel="nofollow">fail2ban</a>. It&#8217;s a program that is designed to stop <a href="https://en.wikipedia.org/wiki/Brute-force_attack" target="_blank" rel="nofollow">brute-force attacks</a> against your server.</p>



<p>It&#8217;s a powerful program, with many <em>many</em> ways to configure it, to meet many use cases and possible issues. However, the NextCloud AIO team have put together a simple community container that makes it a few-click install.</p>



<ul class="wp-block-list">
<li>Go to the Admin settings of your NextCloud instance, and open the AIO interface.</li>



<li>Click &#8220;stop containers&#8221; and wait for it to finish.</li>



<li>Scroll down to &#8220;Community Containers&#8221;. You may have to expand the category to see the options.</li>



<li>Select fail2ban.</li>



<li>Scroll back up and &#8220;start containers&#8221;</li>



<li>Aaaaand you&#8217;re done.</li>
</ul>



<p>This will almost certainly work out of the box. For sure if you followed <a href="https://ideatrash.net/digital-shop">my guide</a>, but even if you didn&#8217;t, it&#8217;s a very easy install and well worth it for the added security. In the <em>tiny</em> chance you get an error about non-matching iptables, it&#8217;s <a href="https://github.com/szaimen/aio-fail2ban/issues/9#issuecomment-2026898790" target="_blank" rel="nofollow">both known and solveable</a>.</p>



<p>Featured Image by <a href="https://pixabay.com/users/flutie8211-17475707/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=8819383" target="_blank" rel="nofollow">Vicki Hamilton</a> from <a href="https://pixabay.com//?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=8819383" target="_blank" rel="nofollow">Pixabay</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://ideatrash.net/2026/02/installing-fail2ban-with-nextcloud-in-six-clicks.html/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			<dc:creator>steven@alliterationink.com (Steven Saus)</dc:creator></item>
		<item>
		<title>Weekend Project: How To Replace Discord With Free Software And An Old PC</title>
		<link>https://ideatrash.net/2026/02/weekend-project-how-to-replace-discord-with-free-software-and-an-old-pc.html</link>
					<comments>https://ideatrash.net/2026/02/weekend-project-how-to-replace-discord-with-free-software-and-an-old-pc.html#comments</comments>
		
		
		<pubDate>Fri, 27 Feb 2026 19:36:08 +0000</pubDate>
				<category><![CDATA[internet]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[social media]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[alternative]]></category>
		<category><![CDATA[discord]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[jitsi]]></category>
		<category><![CDATA[nextcloud]]></category>
		<guid isPermaLink="false">https://ideatrash.net/?p=144905</guid>

					<description><![CDATA[<a href="https://ideatrash.net/2026/02/weekend-project-how-to-replace-discord-with-free-software-and-an-old-pc.html" title="Weekend Project: How To Replace Discord With Free Software And An Old PC" rel="nofollow"><img width="790" height="353" src="https://ideatrash.net/wp-content/uploads/2026/02/mohamed_hassan-server-9660905_1280.png" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin: auto; margin-bottom: 5px;max-width: 100%;" link_thumbnail="1" decoding="async" srcset="https://ideatrash.net/wp-content/uploads/2026/02/mohamed_hassan-server-9660905_1280.png 800w, https://ideatrash.net/wp-content/uploads/2026/02/mohamed_hassan-server-9660905_1280-300x134.png 300w, https://ideatrash.net/wp-content/uploads/2026/02/mohamed_hassan-server-9660905_1280-768x343.png 768w" sizes="(max-width: 790px) 100vw, 790px" /></a>Looking for a Discord replacement or alternative? I have a solution for you...and a guide on how to make it happen.]]></description>
										<content:encoded><![CDATA[<a href="https://ideatrash.net/2026/02/weekend-project-how-to-replace-discord-with-free-software-and-an-old-pc.html" title="Weekend Project: How To Replace Discord With Free Software And An Old PC" rel="nofollow"><img width="790" height="353" src="https://ideatrash.net/wp-content/uploads/2026/02/mohamed_hassan-server-9660905_1280.png" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin: auto; margin-bottom: 5px;max-width: 100%;" link_thumbnail="1" decoding="async" srcset="https://ideatrash.net/wp-content/uploads/2026/02/mohamed_hassan-server-9660905_1280.png 800w, https://ideatrash.net/wp-content/uploads/2026/02/mohamed_hassan-server-9660905_1280-300x134.png 300w, https://ideatrash.net/wp-content/uploads/2026/02/mohamed_hassan-server-9660905_1280-768x343.png 768w" sizes="(max-width: 790px) 100vw, 790px" /></a>
<p>It&#8217;s a sadly familiar story: You or your group starts using a service, particularly because its free tier is worthwhile. But then the ads get worse. Or it becomes <dfn><a href="https://ideatrash.net/2026/02/how-corporate-social-medias-design-encourages-hateful-speech.html">harder to keep your community safe from toxic actors</a></dfn>, and moderation becomes overwhelming. Or you&#8217;re worried the platform <dfn><a href="https://ideatrash.net/2018/04/i-am-not-a-number-i-am-a-free-man-or-why-you-should-never-rely-on-social-media.html">may suddenly decide your account is in violation</a></dfn> <dfn><a href="https://ideatrash.net/2022/03/vague-ban-messages-another-reason-to-own-your-own-web-presence.html">for something you didn&#8217;t do</a></dfn>. Or you want to make sure your data is safe. Or the service itself gets worse, premium features become more expensive, or the service gets more invasive about your privacy and careless about your data.  Or any combination of the above.</p>



<p>I&#8217;m facing the same problem; I run online tabletop roleplaying games and have relied on a Discord server.</p>



<p>With the controversies <dfn><a href="https://arstechnica.com/tech-policy/2026/02/discord-and-persona-end-partnership-after-shady-uk-age-test-sparks-outcry/" target="_blank" rel="nofollow">around Discord&#8217;s pending ID requirements</a></dfn> roiling and <a href="https://ideatrash.net/2026/02/how-corporate-social-medias-design-encourages-hateful-speech.html">corporate social media platforms promoting toxicity by design</a>, there are a lot of people &#8212; including me &#8212; who are looking for alternatives. So I went looking.</p>



<p>And I found one.</p>



<p>It works, <strong>I set it up personally</strong>, and <a href="https://ideatrash.net/digital-shop" data-type="page" data-id="144898">I wrote up a step-by-step guide to get you up and running using an old PC and about an hour and a half.  </a></p>



<p>I&#8217;m going to tell you who this solution is for (and who it <em>isn&#8217;t</em> for), why I prefer it to the other solutions, what that solution is, and the remaining big catch (and why it&#8217;s not going to be a big catch for long).  If you&#8217;re comfortable taking it from there, <em>great</em>.  If that seems intimidating or confusing, <a href="https://ideatrash.net/digital-shop" data-type="link" data-id="https://ideatrash.net/digital-shop">then the few bucks for my step-by-step guide may be worth it for you</a>. </p>



<h2 class="wp-block-heading">Who This Is For</h2>



<p>Before I go on, let me mention that my solution will work for <em>many</em> people and groups, but definitely <em>not</em> for others. This recommendation is for smallish groups. Roleplayers, gamers, small community organizations, and non-profits. Your church group or book club. Anything where you have a group of known (or at least <em>invited</em>) people.</p>



<p>If you are using Discord as a support forum, or have your server open to random people via invite, this is <em>not</em> what you want to be using. Arguably, you shouldn&#8217;t be using Discord for those purposes or your primary </p>



<p>It assumes the primary method of communication most times is going to be text with room-style video or audio chats intermittently. That there are files &#8212; notes, maps, handouts &#8212; that need to be shared with people, and perhaps worked on collaboratively.  And it assumes that at least the person who will be in charge of it is familiar and not intimidated by computers. You don&#8217;t need to be a tech guru to benefit from my guide (although gurus may also find it useful.)</p>



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



<h2 class="wp-block-heading"><a></a>The Other Solutions Have Problems</h2>



<p>While many are discussing TeamSpeak, Mumble, and others, those ideas suffer from one or more of a few problems:</p>



<ul class="wp-block-list">
<li>They want to swap one platform wholesale to another one. This just delays the problem by resetting the clock. The same forces that are driving Discord are going to drive any other for-profit business.</li>



<li>They have the same or similar privacy concerns.</li>



<li>The alternatives are lacking significant features. Discord has a wide feature set, and there really isn&#8217;t any one single product that is ready for production use that hits all the marks.</li>



<li>The alternatives require a good deal of know-how to set up, both for the people running it <em>as well as the users</em>.</li>
</ul>



<p>These are all deal-breakers for me.  Your use case may be different, and a different solution might work well for you.  </p>



<p>I found a combination solution that I believe is hands-down the best for hobbyists and small organizations, particularly with a few tweaks to smooth out some rough edges. It will allow you to not only leverage the strengths of the program itself, but also <em>any other site you like</em> if you want to use something different.</p>



<p>And with my guide and a ten-year-old laptop (or other older/retired computer), you can have something up and running in about an hour and a half.</p>



<h2 class="wp-block-heading">The Solution</h2>



<p>In a nutshell, the answer is NextCloud + (optionally) Jitsi Meet.</p>



<p>Particularly with its recent release, NextCloud handles nearly all of the features that Discord does.</p>



<p>Nextcloud&#8217;s business/academic bent means that there are a <strong>lot</strong> of integrated apps, and they&#8217;re all optional. Log in with your social media account. A cookbook. A kanban deck. Forms. Email, photos, and the like.  It does have a Talk app with both text and video conferencing as well.</p>



<p>However, adding voice and video chat can add a <em>lot</em> of complexity, bandwidth, and processing requirements, so in order to get up and running quickly, the (free) public-facing instance of Jitsi Meet can help make that problem go away. With the public instance, participants only need a web browser or even just a phone. The person creating the meeting chooses a room name, and you&#8217;ll be able to share a link or phone number that will allow anybody to join (with optional password) for free, untimed video conferencing and zero setup.</p>



<p>And because both are open-source projects that have ongoing support &#8212; <dfn><a href="https://nextcloud.com/about/" target="_blank" rel="nofollow">NextCloud</a></dfn>, <dfn><a href="https://simple.wikipedia.org/wiki/Jitsi" target="_blank" rel="nofollow">Jitsi</a></dfn> &#8212; they don&#8217;t have the same incentives toward enshittification.</p>



<p>My goals for this project were to create a setup that has the features of Discord that I primarily use with online gaming, which also mirror those for small-group organizing. With the selection of apps and tech that I&#8217;ve outlined here, it fits that need well, and is also relatively easy to deploy quickly. You&#8217;ll spend way more time customizing and tweaking.</p>



<p>Just <em>some</em> of the benefits I&#8217;ve found:</p>



<ul class="wp-block-list">
<li>Can run entirely in a browser, meaning that my players don&#8217;t have to install anything.</li>



<li>There are mobile and desktop apps for those that prefer such that as well</li>



<li>Easily synchronize files, including from Obsidian, using a dedicated app in my system tray or using WebDAV.</li>



<li>Share links to files and wiki pages to the public web, just to certain users, or not at all.</li>



<li>My players can subscribe to a calendar with <em>whatever they&#8217;re already using</em> and see upcoming dates and times for sessions.</li>



<li>Share folders of bookmarks easily to different groups, such as direct links to the campaign on Roll20 and D&amp;D Beyond.</li>



<li>Each user can have their own file space on the server.</li>



<li>Collaboration on session notes and wiki built right in.</li>



<li>Set up open office hours as a GM.</li>



<li>Embed (almost) any site.</li>
</ul>



<p>Because the data is integrated across all of the apps &#8212; while not being locked in to them &#8212; it means that I can create a board in Deck (the kanban app) so our party can plan how to best defend against the BBEG next week. Edit a page in Collectives (the wiki app) in a plain text editor on my laptop and have it synchronize. Get a notification on my phone if a player asks me a question.</p>



<h3 class="wp-block-heading">The Catch</h3>



<p><strong>The one major catch at this point</strong> is the lack of a bot ecosystem (for either NextCloud Talk or Jitsi Meet) like the one Discord has for voice/video chats. While some exist, they are designed for corporate users, and so omit functionality that I need and seem complicated to install and use. I&#8217;ve already sent messages to the devs (or put a feature request in the issue tracker) for the two bots I mostly use: <dfn><a href="https://craig.chat/" target="_blank" rel="nofollow">Craig</a></dfn> and <dfn><a href="https://www.kenku.fm/" target="_blank" rel="nofollow">Kenku</a></dfn>. There are not many more for text chat either, but that&#8217;s likely to change. I f<dfn><a href="https://github.com/uriel1998/die_roller_bot" target="_blank" rel="nofollow">orked and modified one bot</a></dfn> to include a few functions (rolling dice, drawing a card) for the text chat in Talk fairly easily. And between the first draft of writing that prior sentence and cleaning it up for publishing, I’ve been able to do proof-of-concept work to replicate the functionality of (or to wire in) both Kenku-FM and Craig, and running a few tests to see how viable this is using a self-hosted setup instead of a cloud provider. I hope to have a writeup of that at least a week before Discord changes their policies.</p>



<h2 class="wp-block-heading">A Quick Shout-Out</h2>



<p>I want to take the time to thank both of my gaming tables for helping me test and make sure this setup works and is viable for groups this size.  </p>



<p>I also want to thank the people who have put in countless hours to develop this software and who have written all sorts of guides to various use cases.  There is a lot of documentation that is out there, and I want to give them credit. At the same time&#8230; whew, it&#8217;s a <em>lot</em> of documentation. That&#8217;s great: if you find yourself in a weird situation, you&#8217;ll almost certainly find the answer. But jumping back and forth between documentation and determining what advanced settings are actually important for yourself can be really time consuming and exhausting.</p>



<p>Which is why my guide exists. This guide aims to make that part as easy as possible, and should get you set up and have something useable and running in approximately an hour to an hour and a half. <em> </em>My goal was to remove the (legitimate) complaint of <em>&#8220;I don&#8217;t know how and the instructions are confusing&#8221;</em>.</p>



<h2 class="wp-block-heading">What Next?</h2>



<p>If just knowing what I settled on is enough for you to take it from there, <em>get to it!</em> There <em>is</em> a lot of documentation out there for this software, but sorting through it, figuring out what was current and applicable, and so on, took a fair amount of time.</p>



<p>If you&#8217;d rather <a href="https://ideatrash.net/digital-shop" data-type="page" data-id="144898">have a step-by-step guide on how to turn an old unused PC into a Discord replacement for a few bucks, then you want to check out my guide</a>, which includes PDF, epub, and Kindle versions, along with a few configuration file examples.</p>



<p>I&#8217;m pretty happy with what I&#8217;ve put together so far.  The biggest gaps for me are the bots I currently use for a soundboard/music and recording sessions.  That said, I am nearly there with proof-of-concept models that either replace a service or, with a small tweak, allow you to use that service.  While what I have now <em>does</em> work with Jitsi Meet, it&#8217;s not polished or fully ready for prime-time.  My hope is that the guide and the proof-of-concept bots will be ready within a week.  I also hope that with the additional attention and pressure to move away from enshittified corporate structures, the <em>existing</em> solutions &#8212; looking at you, Craig Team and Owlbear Studio &#8212; will incorporate them natively as well.  </p>



<p>In the meantime, give it a shot.  <a href="https://ideatrash.net/digital-shop" data-type="page" data-id="144898">Pick up my guide if you want to save yourself some time and effort.</a>  If you don&#8217;t need the guide and found this useful, <a href="https://ko-fi.com/stevensaus" target="_blank" rel="nofollow">toss me a few bucks over on Ko-Fi</a>.</p>



<p>And happy (private) computing!</p>



<p></p>



<p>Featured Image by <a href="https://pixabay.com/users/mohamed_hassan-5229782/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=9660905" target="_blank" rel="nofollow">Mohamed Hassan</a> from <a href="https://pixabay.com//?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=9660905" target="_blank" rel="nofollow">Pixabay</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://ideatrash.net/2026/02/weekend-project-how-to-replace-discord-with-free-software-and-an-old-pc.html/feed</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			<dc:creator>steven@alliterationink.com (Steven Saus)</dc:creator></item>
		<item>
		<title>How Corporate Social Media’s Design Encourages Hateful Speech</title>
		<link>https://ideatrash.net/2026/02/how-corporate-social-medias-design-encourages-hateful-speech.html</link>
		
		
		<pubDate>Mon, 23 Feb 2026 18:14:24 +0000</pubDate>
				<category><![CDATA[internet]]></category>
		<category><![CDATA[social media]]></category>
		<guid isPermaLink="false">https://ideatrash.net/?p=144884</guid>

					<description><![CDATA[<a href="https://ideatrash.net/2026/02/how-corporate-social-medias-design-encourages-hateful-speech.html" title="How Corporate Social Media&#8217;s Design Encourages Hateful Speech" rel="nofollow"><img width="640" height="426" src="https://ideatrash.net/wp-content/uploads/2026/02/olga-filo-man-3864064_640.jpg" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin: auto; margin-bottom: 5px;max-width: 100%;" link_thumbnail="1" decoding="async" srcset="https://ideatrash.net/wp-content/uploads/2026/02/olga-filo-man-3864064_640.jpg 640w, https://ideatrash.net/wp-content/uploads/2026/02/olga-filo-man-3864064_640-300x200.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /></a>All it takes is a badly designed incentive.]]></description>
										<content:encoded><![CDATA[<a href="https://ideatrash.net/2026/02/how-corporate-social-medias-design-encourages-hateful-speech.html" title="How Corporate Social Media&#8217;s Design Encourages Hateful Speech" rel="nofollow"><img width="640" height="426" src="https://ideatrash.net/wp-content/uploads/2026/02/olga-filo-man-3864064_640.jpg" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin: auto; margin-bottom: 5px;max-width: 100%;" link_thumbnail="1" decoding="async" srcset="https://ideatrash.net/wp-content/uploads/2026/02/olga-filo-man-3864064_640.jpg 640w, https://ideatrash.net/wp-content/uploads/2026/02/olga-filo-man-3864064_640-300x200.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /></a>
<p><a href="https://www.youtube.com/watch?v=p7ZG_xWYLzI" target="_blank" rel="nofollow">John Oliver this week talks about what&#8217;s happened with Twitter since Musk took over</a>, and as he says at the top of the piece, whatever you think you know… it&#8217;s worse.</p>



<p>One thing I did <em>not</em> know was that premium users can get a payout depending on retweets/likes/replies.</p>



<p>Not only is this <em>bad</em>, but it also highlights how the design of corporate social media encourages hate speech, misinformation, and bad actors.  That&#8217;s not just bad for the platform and society at large, but also for legitimate people and businesses. </p>



<p>It deliberately incentivizes &#8220;engagement.&#8221; And the quickest way to get &#8220;engagement&#8221; is to try to piss people off. In its most mild form, it&#8217;s called Cunningham&#8217;s Law: &#8220;the best way to get the right answer on the internet is not to ask a question; it&#8217;s to post the wrong answer.&#8221; In its most extreme form, you&#8217;re talking about encouraging <a href="https://news.berkeley.edu/2025/02/13/study-finds-persistent-spike-in-hate-speech-on-x/" target="_blank" rel="nofollow">hate speech, which has most definitely increased on Twitter since Musk bought it</a>.</p>



<p>Even a modest payout is a big deal if you live somewhere other than the US, and where the standard of living is lower. And some of these accounts claim to get payouts over $1K every two weeks, which is stretching the idea of &#8220;modest&#8221; by quite a bit.</p>



<p>Put those two elements together, and <em>of course</em> a bunch of people start deliberately rage-baiting everyone else on any topic that&#8217;s controversial enough. With that design choice, you are going to end up with a site full of anger, hatred, and prejudice. A site that actively works to make things more divisive. You don&#8217;t need a state actor running a <a href="https://www.ynetnews.com/tech-and-digital/article/sj48v6utge" target="_blank" rel="nofollow">botfarm</a> <a href="https://www.bbc.com/news/articles/c4ng24pxkelo" target="_blank" rel="nofollow">(although they do</a>). You don&#8217;t need the platform tweaking the algorithm (<a href="https://www.independent.co.uk/tech/elon-musk-trump-x-algorithm-bias-b2640976.html" target="_blank" rel="nofollow">although they do</a>, and <a href="https://www.theguardian.com/technology/2021/oct/22/twitter-admits-bias-in-algorithm-for-rightwing-politicians-and-news-outlets" target="_blank" rel="nofollow">have admitted doing it</a>).</p>



<p>Just combining those two elements together provides a clear, strong financial incentive for the worst kind of posting on the site.</p>



<p>But it&#8217;s not just cash. While Musk made it explicit, there are definitely incentives that promote &#8220;engagement&#8221; on other corporate social media as well, highlighting posts that are &#8220;active&#8221; or &#8220;controversial&#8221;. Most people at least look at their engagement numbers, and intentionally or not, start playing to the audience to get &#8220;engagement&#8221;.</p>



<p>That&#8217;s natural, but when those posts are highlighted by the platform, by design the platform artificially increases the &#8220;virality&#8221; of those posts. (1) It intensifies the pressure to get &#8220;engagement&#8221; any way you can, even if it&#8217;s simply to be heard at all. That starts a self-reinforcing and self-perpetuating cycle and focusing solely on what to do to get more clicks/views/likes/shares. This is great for the companies running the social media sites, since that means more eyeballs and attention that they can then sell to advertisers. It&#8217;s not so great for everyone else. (2)</p>



<p>The result of this design choice is that arguments become more prominent than discussion. It predictably, inevitably, turns a town fair into a town brawl.</p>



<p>Not only is this bad for society, but this is bad for <em>businesses</em> of all sizes, from side-hustles and independent artists to Fortune 500 companies.</p>



<p>Because this design for corporate social media will bury your legitimate content under an avalance of rage-bait &#8220;popular&#8221; posts. Nobody has to be doing or manipulating anything, it&#8217;s built to work that way.</p>



<p>The result? If you want to be seen on corporate social media, you have to buy advertising from them, and hope their targeted advertising actually reaches the right people: both the people who already follow you, as well as those who are interested in you. <a href="https://anupamdas.org/paper/CSCW2022.pdf" target="_blank" rel="nofollow">Research suggests</a> that <a href="https://www.jonloomer.com/30-percent-of-facebook-interests-are-inaccurate/" target="_blank" rel="nofollow">their targeted advertising is not so targeted</a>, so in order to get the results you expect, you buy more advertising to make sure it gets out there. Cha-ching.</p>



<p>There are solutions to this. One is voting with your feet, both as a business and as an individual. Or if you don&#8217;t leave those sites, limit your engagement on them, and be deliberate about <em>what</em> you engage with. For businesses, particularly those who buy advertising, make your displeasure known however you can. If it makes sense for you, try Bluesky or Mastodon or Pixelfed. Or even go back to having your own site and RSS feeds and newsletters and Patreon/Kofi/Medium, where your audience is the people who are interested in you or your product.</p>



<p>And the platforms could solve this problem as well. Ordering your feed in chronological order was the default not all that long ago.</p>



<p>And, of course, stop paying people for arguments. That was only funny when Monty Python did it.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Argument Clinic | Monty Python (Official Sketch)" width="790" height="444" src="https://www.youtube.com/embed/TpQlyUjp3vM?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p>(1) Look, everyone looks at their numbers, at least a little bit. It&#8217;s difficult when you feel like you&#8217;re screaming into the void. I&#8217;m saying here that the design of featuring posts with &#8220;engagement&#8221; artificially makes some things more &#8220;viral&#8221; than they would be organically. And by increasing that effect, it increases the pressure to <em>just</em> to get that &#8220;engagement&#8221; in order to be heard.</p>



<p>Featured Image by <a href="https://pixabay.com/users/olga-filo-5546384/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=3864064" target="_blank" rel="nofollow">Ольга Фоломеева</a> from <a href="https://pixabay.com//?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=3864064" target="_blank" rel="nofollow">Pixabay</a></p>
]]></content:encoded>
					
		
		
			<dc:creator>steven@alliterationink.com (Steven Saus)</dc:creator></item>
		<item>
		<title>Keep Your Passwords Safe And Under Your Control, For Free</title>
		<link>https://ideatrash.net/2026/02/keep-your-passwords-safe-and-under-your-control-for-free.html</link>
					<comments>https://ideatrash.net/2026/02/keep-your-passwords-safe-and-under-your-control-for-free.html#comments</comments>
		
		
		<pubDate>Wed, 18 Feb 2026 22:58:13 +0000</pubDate>
				<category><![CDATA[security]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[cybersecurity]]></category>
		<category><![CDATA[passwords]]></category>
		<guid isPermaLink="false">https://ideatrash.net/?p=144876</guid>

					<description><![CDATA[<a href="https://ideatrash.net/2026/02/keep-your-passwords-safe-and-under-your-control-for-free.html" title="Keep Your Passwords Safe And Under Your Control, For Free" rel="nofollow"><img width="790" height="610" src="https://ideatrash.net/wp-content/uploads/2026/02/mohamed_hassan-phishing-6573326_1280.png" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin: auto; margin-bottom: 5px;max-width: 100%;" link_thumbnail="1" decoding="async" srcset="https://ideatrash.net/wp-content/uploads/2026/02/mohamed_hassan-phishing-6573326_1280.png 1024w, https://ideatrash.net/wp-content/uploads/2026/02/mohamed_hassan-phishing-6573326_1280-300x232.png 300w, https://ideatrash.net/wp-content/uploads/2026/02/mohamed_hassan-phishing-6573326_1280-768x593.png 768w" sizes="(max-width: 790px) 100vw, 790px" /></a>Where and how you sync your passwords matters too.]]></description>
										<content:encoded><![CDATA[<a href="https://ideatrash.net/2026/02/keep-your-passwords-safe-and-under-your-control-for-free.html" title="Keep Your Passwords Safe And Under Your Control, For Free" rel="nofollow"><img width="790" height="610" src="https://ideatrash.net/wp-content/uploads/2026/02/mohamed_hassan-phishing-6573326_1280.png" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin: auto; margin-bottom: 5px;max-width: 100%;" link_thumbnail="1" decoding="async" srcset="https://ideatrash.net/wp-content/uploads/2026/02/mohamed_hassan-phishing-6573326_1280.png 1024w, https://ideatrash.net/wp-content/uploads/2026/02/mohamed_hassan-phishing-6573326_1280-300x232.png 300w, https://ideatrash.net/wp-content/uploads/2026/02/mohamed_hassan-phishing-6573326_1280-768x593.png 768w" sizes="(max-width: 790px) 100vw, 790px" /></a>
<p>When it comes to keeping your digital life secure, there&#8217;s one bit of advice that I&#8217;ve been recommending <a href="https://ideatrash.net/2017/06/you-need-password-manager-if-you-wan.html">over</a> and <a href="https://ideatrash.net/2012/08/make-your-online-life-secure-howto-wi.html">over</a> again:</p>



<h2 class="wp-block-heading">Have a password manager, and make it one where you control who holds the data.</h2>



<p>That part <em>after</em> the comma is almost as important as the part in front. And knowing that can also save you some cash.</p>



<p>What is a password manager? There&#8217;s a lot of them &#8212; including the built in one that&#8217;s probably in your browser offering to auto-fill passwords &#8212; that offer all sorts of bells and whistles.</p>



<p>But really, all a password manager <strong>must</strong> be is a <em>Notes app that encrypts its notes under a master password.</em> (1) It&#8217;s like you have written all the passwords for everything else into one locking diary. (2)</p>



<p>You have the master password &#8212; the only key to open that diary &#8212; so you no longer have to remember all those other passwords for all those other sites. Just remember that <em>one</em> password, and you no longer have to worry about any of the others, no matter how long or complicated they are. As long as you remember your master password, you&#8217;re set. And if someone were to try to sneak a peek at that diary of your passwords, they can&#8217;t get in without the key.</p>



<p>Well, mostly.</p>



<p>Just like in our analogy, if someone physically had <em>your</em> locking diary, they could pick the lock with enough time and skill. And that brings us back to where we started: who holds the data.</p>



<p>One of the most needed features is being able to access those passwords wherever you are. Your computer (no matter what operating system), your phone, tablet, and so on.</p>



<p>But the &#8220;cloud&#8221; &#8212; and the services that synchronize over it &#8212; are just someone else&#8217;s computer, and open to being hacked themselves. After previous <a href="https://arstechnica.com/information-technology/2022/12/lastpass-says-hackers-have-obtained-vault-data-and-a-wealth-of-customer-info/" target="_blank" rel="nofollow">multiple</a> <a href="https://arstechnica.com/information-technology/2023/02/lastpass-hackers-infected-employees-home-computer-and-stole-corporate-vault/" target="_blank" rel="nofollow">breaches</a> at LastPass or <a href="https://www.pcmag.com/news/hack-of-password-manager-onelogin-exposes-user-info" target="_blank" rel="nofollow">OneLogin</a>, those hawking paid password manager solutions make a point of saying they still cannot read your data (<a href="https://arstechnica.com/security/2026/02/password-managers-promise-that-they-cant-see-your-vaults-isnt-always-true/" target="_blank" rel="nofollow">although that seems to be not <em>entirely</em> accurate in all cases</a>).</p>



<p>Even if they cannot, ultimately, what you are paying for with your subscription to these vendors is for a tiny bit of cloud storage service where hackers know there is a <em>lot</em> of juicy data being stored in the same place. (3)</p>



<p>For most people, I continue to recommend using the open-source, crossplatform, free, and feature-rich <a href="https://keepassxc.org/" target="_blank" rel="nofollow">KeePassXC </a>for storing their passwords on their computer. Use one of the many mobile apps that can read KeePass format (I use <a href="https://play.google.com/store/apps/details?id=keepass2android.keepass2android_nonet" target="_blank" rel="nofollow">Keepass2Android Offline</a>; Keepassium is for iOS and <a href="https://keepassium.com/articles/keepass-apps-for-ios/" target="_blank" rel="nofollow">maintains a list comparing features with other iOS apps</a>) to access your passwords on mobile phones and tablets.</p>



<p>And then use whatever syncing service you already use for everything else to keep them in sync. Yes, even if you&#8217;re using a commercial service like iCloud, Google Drive, or Dropbox, that still means your password diary is not being stored <em>with a whole bunch of other password diaries</em>. </p>



<p>You don&#8217;t have to.  If you want to avoid that possibility, you&#8217;ll probably be interested in (free, open source, crossplatform) <a href="https://syncthing.net/" target="_blank" rel="nofollow">SyncThing</a>, or if you have a home server, look into installing <a href="https://nextcloud.com/" target="_blank" rel="nofollow">NextCloud</a>.</p>



<p>And then stop paying someone else to keep your passwords in a big room labeled &#8220;everyone&#8217;s passwords.&#8221;</p>



<p>Featured Image by <a href="https://pixabay.com/users/mohamed_hassan-5229782/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=6573326" target="_blank" rel="nofollow">Mohamed Hassan</a> from <a href="https://pixabay.com//?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=6573326" target="_blank" rel="nofollow">Pixabay</a></p>



<p>(1) Yes, you <em>can</em> use a Notes page that you lock behind a password if you must.</p>



<p>(2) That password diary is usually called a &#8220;vault&#8221; for the symbolism.<br>(3) This characterization of their services applies when talking about everyday individuals.  Services for teams, organizations, and corporations are a totally different beast and quite a bit more complicated.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ideatrash.net/2026/02/keep-your-passwords-safe-and-under-your-control-for-free.html/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			<dc:creator>steven@alliterationink.com (Steven Saus)</dc:creator></item>
		<item>
		<title>Watch Out For The Citi Legal DMCA Copyright Infringement Notice Backlink Scam</title>
		<link>https://ideatrash.net/2026/02/watch-out-for-the-citi-legal-dmca-copyright-infringement-notice-backlink-scam.html</link>
					<comments>https://ideatrash.net/2026/02/watch-out-for-the-citi-legal-dmca-copyright-infringement-notice-backlink-scam.html#comments</comments>
		
		
		<pubDate>Thu, 12 Feb 2026 18:02:18 +0000</pubDate>
				<category><![CDATA[internet]]></category>
		<category><![CDATA[scam]]></category>
		<category><![CDATA[scams]]></category>
		<category><![CDATA[dmca]]></category>
		<guid isPermaLink="false">https://ideatrash.net/?p=144869</guid>

					<description><![CDATA[<a href="https://ideatrash.net/2026/02/watch-out-for-the-citi-legal-dmca-copyright-infringement-notice-backlink-scam.html" title="Watch Out For The Citi Legal DMCA Copyright Infringement Notice Backlink Scam" rel="nofollow"><img width="790" height="527" src="https://ideatrash.net/wp-content/uploads/2026/02/markus-winkler-FjyseC7iV3k-unsplash.jpg" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin: auto; margin-bottom: 5px;max-width: 100%;" link_thumbnail="1" decoding="async" srcset="https://ideatrash.net/wp-content/uploads/2026/02/markus-winkler-FjyseC7iV3k-unsplash.jpg 1024w, https://ideatrash.net/wp-content/uploads/2026/02/markus-winkler-FjyseC7iV3k-unsplash-300x200.jpg 300w, https://ideatrash.net/wp-content/uploads/2026/02/markus-winkler-FjyseC7iV3k-unsplash-768x512.jpg 768w" sizes="(max-width: 790px) 100vw, 790px" /></a>Nothing like a scammy DMCA notice to annoy me.]]></description>
										<content:encoded><![CDATA[<a href="https://ideatrash.net/2026/02/watch-out-for-the-citi-legal-dmca-copyright-infringement-notice-backlink-scam.html" title="Watch Out For The Citi Legal DMCA Copyright Infringement Notice Backlink Scam" rel="nofollow"><img width="790" height="527" src="https://ideatrash.net/wp-content/uploads/2026/02/markus-winkler-FjyseC7iV3k-unsplash.jpg" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin: auto; margin-bottom: 5px;max-width: 100%;" link_thumbnail="1" decoding="async" srcset="https://ideatrash.net/wp-content/uploads/2026/02/markus-winkler-FjyseC7iV3k-unsplash.jpg 1024w, https://ideatrash.net/wp-content/uploads/2026/02/markus-winkler-FjyseC7iV3k-unsplash-300x200.jpg 300w, https://ideatrash.net/wp-content/uploads/2026/02/markus-winkler-FjyseC7iV3k-unsplash-768x512.jpg 768w" sizes="(max-width: 790px) 100vw, 790px" /></a>
<p>Have you gotten a DMCA takedown notice from &#8220;Citi Legal Services&#8221; about an image you have on your blog, Patreon, or website? Particularly if it&#8217;s an image that you originally sourced from Unsplash, Pixabay, or the like, and appropriately credited?</p>



<p><strong>Yeah, it&#8217;s a scam.</strong></p>



<p>I got an email yesterday with the subject line &#8220;DMCA Copyright Infringement Notice&#8221; notifying me about a picture I&#8217;d used on the blog from Unsplash. The email looked <em>mostly</em> legit (I have added (dot) to the domains so that they are not live links) :</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<pre class="wp-block-preformatted">Dear owner of https://ideatrash.net/2023/10/not-all-substances-are-the-same-bad-research-illustrates-how-the-conversation-needs-to-change.html,<br>​<br>We're reaching out on behalf of the Intellectual Property division of a notable entity, in relation to an image connected to our client Pill Reports.<br>​<br>Image Reference: https://i.imgur.com/3eWDnKx.png<br>Image Placement: https://ideatrash.net/2023/10/not-all-substances-are-the-same-bad-research-illustrates-how-the-conversation-needs-to-change.html<br>​<br>We've observed the display of the image on your site. We need you to add a credit to our client immediately. A visible and clickable link to https://pillreports(dot)net/ is required, placed either below the image or in the page's footer. This should be addressed in the next five business <br>days.<br>​<br>We're sure you realize the urgency of this request. Kindly understand that simply removing the image does not conclude the matter. Should we not see appropriate action within the given timeframe, we nned to activate the case No. 64351 and take action as outlined in DMCA Section 512(c).<br>​<br>For your convenience, past usage records can be reviewed using the Wayback Machine at https://web.archive.org, a recognized digital archive.<br>​<br>Think of this as formal communication. We value your swift action and your cooperation.<br>​<br>Kindly communicate in English.<br>​<br>Rob Anderson<br>Trademark Attorney <br>​<br>Citi Legal Services<br>1 Beacon St 12th floor<br>Boston, MA 02108<br>​<br>rob@cl-experts(dot)info<br>www.cl-experts(dot)info</pre>
</blockquote>



<p>The &#8220;notable entity&#8221; made me question whether or not it was a real DMCA notice, and doubly so when I looked at <a href="https://ideatrash.net/2023/10/not-all-substances-are-the-same-bad-research-illustrates-how-the-conversation-needs-to-change.html">the page in question</a> and saw that I had, indeed, appropriately credited the image, <a href="https://unsplash.com/photos/a-pile-of-pills-sitting-next-to-each-other-on-top-of-a-table-RS0-h_pyByk" target="_blank" rel="nofollow">which was sourced from Unsplash</a>. The website mentioned in the email (which is the same content as clexperts(dot)biz ) seems polished, but when I tried the contact phone numbers, the 800 number went nowhere and the other number went to a very puzzled answering service.</p>



<p>I&#8217;m a little confused as to the <em>point</em> of the scam — the website they wanted a link to is apparently about the drug ecstasy, and hasn&#8217;t posted anything for nine months or so — but I was quite annoyed at having to spend my time figuring this out.</p>



<p>I was annoyed enough that I bothered to look up the WHOIS information for those domains, and report them to the abuse departments for their domain name registrar and hosting company.</p>



<p><a href="https://geekmamas.com/2025/09/07/citi-legal-dmca-copyright-infringement-notice-scam/" target="_blank" rel="nofollow">Geek Mamas (among others) has written an even more detailed look at this backlinking scam</a>, which has been going on with the same fake company and boilerplate email for at least a year.</p>



<p>Stay alert and stay safe from the scammers out there.</p>



<p>Featured Photo by <a href="https://unsplash.com/@markuswinkler?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" target="_blank" rel="nofollow">Markus Winkler</a> on <a href="https://unsplash.com/photos/scam-spelled-with-scrabbles-on-a-wooden-table-FjyseC7iV3k?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" target="_blank" rel="nofollow">Unsplash</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://ideatrash.net/2026/02/watch-out-for-the-citi-legal-dmca-copyright-infringement-notice-backlink-scam.html/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			<dc:creator>steven@alliterationink.com (Steven Saus)</dc:creator></item>
	</channel>
</rss>