5
38
submitted 4 weeks ago* (last edited 4 weeks ago) by ticoombs@reddthat.com to c/reddthat@reddthat.com

Today I made a new Template for our Go-Away anti-bot protection and am up-streaming the solution so that all of lemmy admins can have a drop in replacement.

When I was creating it I made it for us and by default it looks like this: (The Reddthat one has our icon instead ofcourse)

A screenshot of an anti-bot protection system with the Lemmy log and a loading challenge text

I named the template file reddthat-challenge.gohtml and when I was making it more 'generic' I renamed it from reddthat and typed lemmy...

Turns out I typed lemmmy instead! It's technically valid, ansible-lint and ansible-playbook --syntax-check both pass without issue! Our test PR deployment also was successful because like all of the other items, everything was correct and the one thing it doesnt do is issue a 'reload' or a dry-run. Even then when issuing a dry-run it says the container will be recreated, which is an expected outcome as I made a change to the go-away proxy, so I expect it to restart...

***
a/templates/docker-compose.yml
+++ b/templates/docker-compose.yml
@@ -170,7 +170,7 @@ services:
     volumes:
       - "goaway_cache_main:/cache"
       - "./policy.yml:/policy.yml:ro"
-      - "./lemmmy-challenge.gohtml:/lemmy-challenge.gohtml:ro"
+      - "./lemmy-challenge.gohtml:/lemmy-challenge.gohtml:ro"
     environment:
       GOAWAY_CLIENT_IP_HEADER: "X-Real-Ip"

Our monitoring was/is were all returning success?!?

This is a screenshot from https://status.reddthat.com/:
A graph showing an increase in response time since 11am
(This service is Betterstack)

It was setup to only alert when "the url becomes unavailable" (which is any code outside than 2XX). Previously Cloudflare used to pass through the error code? As this has always alerted me whenever the backend failed?)

Here is a memory graph you can see the red 'swap' be basically static until I tested the template and then the swap came back up again and then at 10:53 (00:53 UTC) it was restarted and never came back!

(This service is hetrixtools)

And here is my own on-site monitoring service showing all green!

(This is uptime-kuma. (Note: This goes directly to the box and not via cloudflare))

I can probably dig deeper into the logs but as I went out to lunch and my commit at 10:52 coincides with the exact 'increase'/lack of increase seen above we can be certain it's related!

A 3 hour outage and I didn't know about it because all 3 uptime monitoring solutions all agreed we were online!

Resolution:

I'm so sorry!

Turns out uptimekuma which is my fallback for the online serivces was setup to monitor the PORT only directly on the box. So as our webserver was still running as far as it was concerned, it was technically "online".

  • I've added a few more checks to uptime-kuma so instead of just being a port check, there is a HTTPS check with keyword. So the page has to load, and the keyword needs to be on the page otherwise I'll get notified.
  • I've updated Betterstack to check only a 200 HTTP code. Which is what Hetrixtools was already set too.
  • I've updated Hetrixtools to also check for "Reddthat" in the page.
  • Hetrixtools also can monitor the docker service, so if the docker service goes down I get a message now.
  • I'm thinking about adding a way to punch into the box from uptimekuma too and monitor the docker container itself, as Hetrixtools doesnt seem to do that, but that might be overkill? Or not? This will probably be the only way in which I can tell?

Even after 15 years (oof now I feel old) doing "IT" I am still amazing at how no matter how many systems you put in place to try and catch issues, assumptions and unfortunate circumstances can rear its ugly head.

Our automated testing all passed.
Our external monitoring solutions passed.
Our internal monitoring solutions passed.
Our syntax checker all passed. Our service still went down.

Cheers,

Happy May!

Tiff


Also happy June? What was I thinking...

The above is probably enough of an update. Things are mostly normal. Lemmy devs are nearing 1.0 release, which will probably mean a big push across the internet and more people joining. (Hopefully picking Reddthat :P ).

I've been struggling to accept all the new people in a timely manner. As I like to sleep for at least 6 hours and don't always wake up and immediately open Reddthat (Shocking I know!), sometimes people end up getting to around the 12 hour mark for their applications to be accepted. Which I can see being a problem, especially when they don't supply an email address. I'm working on a better solution to alert me when there are applications that need processing.

Also did you know I renewed the domain again? That means it's been 3 Years now!

Honestly insane. This Lemmy thing is probably the biggest thing I've done for a community on the internet for a long time! Here's to 3 years more!

<3

Tiff

Donation Thingy:

Note: On Liberapay, donations are paid in advance, but you are more than welcome to make it recurring monthly instead of paying yearly. Don’t worry too much about the “fees”. It’s just the cost of doing business via the credit card duopoly.

💸 “Expenses”:

  • April Costs: ~A$150
  • May Costs: ~A$150

Still tracking around the ~150 mark per month. I managed to cull some assets from our S3 bucket (ie; our old backups and all the dev buckets) to bring our costs down a little bit, so when the June bill come in the next 3 days I'll update it.

⭐ Donation “Statistics”:

  • New Donators in May: 0
  • Lost Donators (Who did not renew): 0
  • Total Weekly: ~A$26.84 (Trending Down)
  • (“Monthly”: 26.84×52÷12 = ~A$116.30)
  • Our Public Donators: <3
  • AppleStrudel
  • asqapro
  • bitwize
  • ~1903711
  • Matthew Fennell

🥅 Goal: 26.84 / 60.00

Want a month dedicated to you? -> https://liberapay.com/reddthat

PS: don’t like fees? Use Crypto (Litecoin/Monero) for even better transaction fees than credit cards for your donation. (See the main sidebar for addresses). And validate them again on liberapay too if you want to ensure I get those dollary doos!

spoiler


How much is a coffee in your part of the world? If you can shout me a coffee per month, we'll easily crush our donation goals.

33
submitted 1 month ago* (last edited 1 month ago) by ticoombs@reddthat.com to c/reddthat@reddthat.com

We took some time today to reboot the server with the new kernel to protect us against dirtyfrag/copyfail etc/etc.

Reddthat then failed to come back online because of a slight miss-configuration / DNS shenanigans.

This was the first time we'd rebooted since our move to our dedicated server and in classic fashion something happened!

Actual issue explainedlocalhost resolved to
(IPv6) and our lemmy containers only exposed a local port on IPv4 127.0.0.1.

Why on earth it didn't forward the traffic who knows but I told nginx who's boss and then we were back up and running.

I ended up specifying 127.0.0.1 to force it all via IPv4 so you can all get back to the memes asap. :::

Yes, it's always DNS.

Cheers,

Tiff

Donation Plug Goes Here: https://liberapay.com/reddthat/

0
submitted 2 months ago by ticoombs@reddthat.com to c/coffee@reddthat.com

An interesting take on the Amerocano

29

Hello Friends!

The silent admin has come out of hibernation to give you an update. As we've been moderating, approving, and all around enjoying the content reddthat & the lemmyverse provides I figured we might as well have an update.

Reddthat has been upgraded to the latest lemmy verison 0.19.18. 🥳

See the link in the post for the main updates, as well as the 0.19.17 and 0.19.16 versions. But honestly... there hasn't been many changes that are relatable for end users. The Lemmy devs have been pushing out only serious fixes. The only one that is even slightly relevant is 'Display UserBadges for Bot, Banned and Deleted users in all PersonListings'

It looks like this:

We've been kicking along but have seen a huge increase in our image/video storage! Which has unfortunately meant that I'm getting charged close to $44USD/m for our storage, and we are now further away from breaking even. So all the savings we manged to find with our server migration has been offset with our increase in storage usages. This happened a couple months ago and I don't have a pretty graph showing the increase, but happened in Feb based on the financials.

Active Storage 5.21 TB

We regular serve about 1 to 2 TB per month from the server and have apparently "saved" 1TB over the past 30 days.

Bandwidth Saved: 1TB of 1.4TB

Something else that is interesting (to me at least), and might be part of the current state of AI nonsense is that even though we have always blocked 'old.reddthat.com' from the search engines it is still significantly queried more than other hostnames. Including one of our old frontends 'next' which has been removed for a "long time".

DNS Queries by Hostname

The DNS query map shows the closest datacentre for those queries. Interestingly there are some tiny tiny tiny datacenters there.

DNS Queries Map

The total number of connections also is an indication of how popular the lemmyverse is. As this includes the server to server connections, not just our regular users it is a bit polluted but shows how many connections we need to respond to on a regular basis.

Connections

And if you've made it to the end, I want to make a special shoutout to everyone for being around, having fun, and being respectful to our fellow netizens. Unfortunately there have been a few bad actors so I would like to reiterate our No. 1 Rule. Remember the human! (no harassment, threats, etc.) (Yeah... While it's certainly not number 1 in the list, it should be!) On a whole Reddthat users are always special in my heart and we have been very "stable" in the number of users. For those of you who regularly, comment, vote, post, and use reddthat thankyou!

An an extra special shoutout to those who "put their money where their mouth is" and support Reddthat financially. I honestly wouldn't be doing this after all these years without your continued support.

Cheers,

Tiff


Note: On Liberapay, donations are paid in advance, but you are more than welcome to make it recurring monthly instead of paying yearly. Don't worry too much about the "fees". It's just the cost of doing business via the credit card duopoly.

💸 "Expenses":

  • Jan Costs: ~A$122
  • Feb Costs: ~A$156
  • March Costs: ~A$148
  • April Costs: ~A$150

I expect future costs to stay around the 150 mark. We were so close to being self sufficient but as always, if we get close to our goal of $60/w we'll finally be in a solid position to stay forever online.

⭐ Donation "Statistics":

  • New Donators in Jan,Feb,March,April: 0
  • Lost Donators (Who did not renew): 1
  • Total Weekly: ~A$27.36
  • ("Monthly": 27.36×52÷12 = ~A$118.56)
  • Our Public Donators: <3
    • AppleStrudel
    • asqapro
    • bitwize
    • ~1903711
    • Matthew Fennell

🥅 Goal: 27.36 / 60.00

Want a month dedicated to you? -> https://liberapay.com/reddthat

PS: don't like fees? Use Crypto (Litecoin/Monero) for even better transaction fees than credit cards for your donation. (See the main sidebar for addresses). And validate them again on liberapay too if you want to ensure I get those dollary doos!

10

A word on limitations

Little Snitch for Linux is built for privacy, not security, and that distinction matters. The macOS version can make stronger guarantees because it can have more complexity. On Linux, the foundation is eBPF, which is powerful but bounded: it has strict limits on storage size and program complexity. Under heavy traffic, cache tables can overflow, which makes it impossible to reliably tie every network packet to a process or a DNS name. And reconstructing which hostname was originally looked up for a given IP address requires heuristics rather than certainty. The macOS version uses deep packet inspection to do this more reliably. That's not an option here.

For keeping tabs on what your software is up to and blocking legitimate software from phoning home, Little Snitch for Linux works well. For hardening a system against a determined adversary, it's not the right tool.

I like this.

9

It could be worse... People could use Azure sign in for securing their infrastructure! #joke

4

Massive French Torrent Tracker that earned 5-8 Million Euros per year has been leaked.

5
submitted 5 months ago by ticoombs@reddthat.com to c/antim@reddthat.com

Hey #AntiMeme

Feel like becoming a moderator for a next to no content community? Every felt like your calling was to resurrect a community to only eventually leave it, fulfilling the communities inherit nature.

Let Me Know

Tiff

7

Hey #WebComics ,

We'd like to have a moderator who can keep the webcomics community alive and give it a nice refresh.

Please comment here (&/or send me a PM directly) if you wish to become a mod :) .

Thanks,

Tiff

32
submitted 6 months ago* (last edited 6 months ago) by ticoombs@reddthat.com to c/reddthat@reddthat.com

I found some time. and in 15 minutes from this post we will go down for ~1 hour to ensure we have complete data consistency.

  • 09:00 UTC to 10:00 UTC

~~See you soon!~~

HI!!!!!!!!

48

I've made my position pretty clear how this was the wrong move by our government...

Services that eSafety considers will be age-restricted social media platforms

Facebook
Instagram
Kick
Reddit
Snapchat
Threads
TikTok
Twitch
X (formerly Twitter)
YouTube

Services that eSafety considers will not be age-restricted social media platforms

Discord
GitHub
Google Classroom
LEGO Play
Messenger
Pinterest
Roblox
Steam and Steam Chat
WhatsApp
YouTube Kids
[-] ticoombs@reddthat.com 13 points 11 months ago

Oops! Sometimes we admins like to joke around!

[-] ticoombs@reddthat.com 107 points 11 months ago

Hey! Sorry for the joke, I didn't expect it to be seen by a real user!

As we are one of the very few instances that has a no email policy there is very few ways in which we can determine if a person signing up is a bot or a regular user.

Recently a very very specific person or group of people have been abusing Reddthat to create accounts, then ask interesting questions (let's just say that), and then proceed to delete their account (which deletes all of their posts and comments). This makes it impossible to figure out what they have done unless someone quotes the reply or reports it before they delete it.

I'm sorry you got caught up in the little bit of fun us admins have with writing little anecdotes or fun catch phases!

You are welcome to come say hi on Reddthat any time!

[-] ticoombs@reddthat.com 13 points 1 year ago

Good news! We managed to get all of the donation money! So none of it is lost and we're back in business! 🎉🎉

It seems our host decided to come back online or see our messages? Still no communication from them, but now that we have completed managed to get all our money back we are good to migrate to Librapay without any issues!

[-] ticoombs@reddthat.com 19 points 1 year ago* (last edited 1 year ago)

Looks easy : https://www.ifixit.com/Guide/Steam+Deck+SSD+Replacement/148989

Edit: Is it worth 30-60minutes of your time, the screwdrivers, maybe the spatchula, and reinstalling steamOS onto the drive?

[-] ticoombs@reddthat.com 16 points 2 years ago

This is sso support as the client. So you could use any backend that supports the oauth backend (I assume, didn't look at it yet).

So you could use a forgejo instance, immediately making your git hosting instance a social platform, if you wanted.
Or use something as self hostable like hydra.

Or you can use the social platforms that already exist such as Google or Microsoft. Allowing faster onboarding to joining the fediverse. While allowing the issues that come with user creation to be passed onto a bigger player who already does verification. All of these features are up for your instance to decide on.
The best part, if you don't agree with what your instance decides on, you can migrate to one that has a policy that coincides with your values.

Hope that gives you an idea behind why this feature is warranted.

[-] ticoombs@reddthat.com 18 points 2 years ago

We enabled the CloudFlare AI bots and Crawlers mode around 0:00 UTC (20/Sept).

This was because we had a huge number of AI scrapers that were attempting to scan the whole lemmyverse.

It successfully blocked them... While also blocking federation 😴

I've disabled the block. Within the next hour we should see federation traffic come through.

Sorry for the unfortunate delay in new posts!

Tiff

[-] ticoombs@reddthat.com 36 points 2 years ago* (last edited 2 years ago)
[-] ticoombs@reddthat.com 20 points 2 years ago* (last edited 2 years ago)

That's a big decision I won't make without community input as it would affect all of us.

If we purely treated it as just another instance with no history then I believe our stance on it would be to allow them, as we are an allow-first type of instance. While there are plenty of people we might not want to interact with, that doesn't mean we should immediately hit that defederate button.

When taking history into account it becomes a whole different story. One may lean towards just saying no without thought.

All of our content (Lemmy/Fediverse) is public by default (at the present time) searchable by anyone and even if I were to block all of the robots and crawlers it wouldn't stop anyone from crawling one of the many other sites where all of that content is shared.

A recent feature being worked on is the private/local only communities. If a new Lemmy instance was created and they only used their local only communities, would we enact the same open first policy when their communities are closed for us to use? Or would we still allow them because they can still interact, view comments, vote and generate content for our communities etc?

What if someone created instances purely for profit? They create an instance corner stone piece of the "market" and then run ads? Or made their instance a subscription only instance where you have to pay per month for access?

What if there are instances right now federating with us and will use the comments and posts you make to create a shit-posting-post or to enhance their classification AI? (Obviously I would be personally annoyed, but we can't stop them)

An analogy of what threads is would be to say threads is a local only fediverse instance like mastodon, with a block on replies. It restricts federation to their users in USA, Canada and Japan and Users cannot see when you comment/reply to their posts and will only see votes. They cannot see your posts either and only allow other fediverse users to follow threads users.

With all of that in mind if we were to continue with our open policy, you would be able to follow threads users and get information from them, but any comments would stay local to the instance that comments on the post (and wouldn't make it back to threads).

While writing up to this point I was going to stay impartial... But I think the lack of two way communication is what tips the scales towards our next instance block. It might be a worthwhile for keeping up-to-date with people who are on threads who don't understand what the fediverse is. But still enabled the feature because it gives their content a "wider reach" so to speak. But in the context of Reddthat and people expressing views and opinions, having one sided communication doesn't match with what we are trying to achieve here.

Tiff

Source(s): https://help.instagram.com/169559812696339/about-threads-and-the-fediverse/

PS: As we have started the discussion I'll leave what I've said for the next week to allow everyone to reply and see what the rest of the community thinks before acting/ blocking them.

Edit1:(30/Mar) PPS: we are currently not federated with them, as no one has bothered to initiate following a threads account

[-] ticoombs@reddthat.com 21 points 2 years ago

It's a sad day when something like this happens. Unfortunately with how the Lemmy's All works it's possible a huge amount of the initial downvotes are regular people not wanting to see the content, as downvotes are federated. This constituted as part of my original choices for disabling it when I started my instance. We had the gripes people are displaying here and it probably constituted to a lack in Reddthat's growth potential.

There needs to be work done not only for flairs, which I like the idea of, but for a curated All/Frontpage (per-instance). Too many times I see people unable to find communities or new content that piques their interest. Having to "wade through" All-New to find content might attribute to the current detriment as instead of a general niche they might want to enjoy they are bombarded with things they dislike.

Tough problem to solve in a federated space. Hell... can't even get every instance to update to 0.18.5 so federated moderation actions happen. If we can't all decide on a common Lemmy instance version, I doubt we can ask our users to be subjected to not using the tools at their disposal. (up/down/report).

Keep on Keeping on!

Tiff - A fellow admin.

[-] ticoombs@reddthat.com 23 points 2 years ago

Don't forget & in community names and sidebars.

Constantly getting trolled by &amp;

[-] ticoombs@reddthat.com 20 points 2 years ago

Updates hiding in the comments again!

We are now using v0.18.3!

There was extended downtime because docker wouldn't cooperate AT ALL.

The nginx proxy container would not resolve the DNS. So after rebuilding the containers twice and investigating the docker network settings, a "simple" reboot of the server fixed it!

  1. Our database on the filesystem went from 33GB to 5GB! They were not kidding about the 80% reduction!
  2. The compressed database backups went from 4GB to ~0.7GB! Even bigger space savings.
  3. The changes to backend/frontend has resulted in less downtime when performing big queries on the database so far.
  4. The "proxy" container is nginx, and because it utilises the configuration upstream lemmy-ui & upstream lemmy. These are DNS entries which are cached for a period of time. So if a new container comes online it doesn't actually find the new containers because it cached all the IPs that lemmy-ui resolves too. (In this example it would have been only 1, and then we add more containers the proxy would never find them). 4.1 You can read more here: http://forum.nginx.org/read.php?2,215830,215832#msg-215832
  5. The good news is that https://serverfault.com/a/593003 is the answer to the question. I'll look at implementing this over the next day(s).

I get notified whenever reddthat goes down, most of the time it coincided with me banning users and removing content. So I didn't look into it much, but honestly the uptime isn't great. (Red is <95% uptime, which means we were down for 1 hour!).

Actually, it is terrible.

With the changes we've made i'll be monitoring it over the next 48 hours and confirm that we no longer have any real issues. Then i'll make a real announcement.

Thanks all for joining our little adventure!
Tiff

[-] ticoombs@reddthat.com 27 points 2 years ago

These were because of recent spam bots.

I made some changes today. We now have 4 containers for the UI (we only had 1 before) and 4 for the backend (we only had 2)

It seems that when you delete a user, and you tell lemmy to also remove the content (the spam) it tells the database to mark all of the content as deleted.

Kbin.social had about 30 users who posted 20/30 posts each which I told Lemmy to delete.
This only marks it as deleted for Reddthat users until the mods mark the post as deleted and it federates out.

The problem

The UPDATE in the database (marking the spam content as deleted) takes a while and the backend waits(?) for the database to finish.

Even though the backend has 20 different connections to the database it uses 1 connection for the UPDATE, and then waits/gets stuck.

This is what is causing the outages unfortunately and it's really pissing me off to be honest. I can't remove content / action reports without someone seeing an error.

I don't see any solutions on the 0.18.3 release notes that would solve this.

Temp Solution

So to combat this a little I've increased our backend processes from 2 to 4 and our front-end from 1 to 4.

My idea is that if 1 of the backend processes gets "locked" up while performing tasks, the other 3 processes should take care of it.

This unfortunately is an assumption because if the "removal" performs an UPDATE on the database and the /other/ backend processes are aware of this and wait as well... This would count as "locking" up the database and it won't matter how many processes I scale out too, the applications will lockup and cause us downtime.

Next Steps

  • Upgrade to 0.18.3 as it apparently has some database fixes.
  • look at the Lemmy API and see if there is a way I can push certain API commands (user removal) off to its own container.
  • fix up/figure out how to make the nginx proxy container know if a "backend container" is down, and try the other ones instead.

Note: we are kinda doing #3 point already it does a round-robbin (tries each sequentially). But from what I've seen in part of the logs it can't differentiate between one that is down and one that is up. (From the nginx documentation, that feature is a paid one)

Cheers, Tiff

view more: next ›

ticoombs

0 post score
0 comment score
joined 3 years ago
MODERATOR OF