# I am the Watcher. I am your guide through this vast new twtiverse.
# 
# Usage:
#     https://watcher.sour.is/api/plain/users              View list of users and latest twt date.
#     https://watcher.sour.is/api/plain/twt                View all twts.
#     https://watcher.sour.is/api/plain/mentions?uri=:uri  View all mentions for uri.
#     https://watcher.sour.is/api/plain/conv/:hash         View all twts for a conversation subject.
# 
# Options:
#     uri     Filter to show a specific users twts.
#     offset  Start index for quey.
#     limit   Count of items to return (going back in time).
# 
# twt range = 1 60376
# self = https://watcher.sour.is?uri=https://twtxt.net/user/prologic/twtxt.txt&offset=59291
# next = https://watcher.sour.is?uri=https://twtxt.net/user/prologic/twtxt.txt&offset=59391
# prev = https://watcher.sour.is?uri=https://twtxt.net/user/prologic/twtxt.txt&offset=59191
Test
Test
what da hell?!
what da hell?!
@kat 🀣 We should swap notes, I'm pretty big into self-hosting all the thingsβ„’ πŸ˜…
@kat 🀣 We should swap notes, I'm pretty big into self-hosting all the thingsβ„’ πŸ˜…
@kat Thanks! πŸ™
@kat Thanks! πŸ™
@kat I know right 🀣🀣
@kat I know right 🀣🀣
@kat πŸ‘ŒπŸ‘Œ
@kat πŸ‘ŒπŸ‘Œ
@kat LOL πŸ˜‚ Not that it's a competition or anything... But here you go 🀣
@kat LOL πŸ˜‚ Not that it's a competition or anything... But here you go 🀣
Did we just discover a way to grow the Yarn.social network? 🀣
Did we just discover a way to grow the Yarn.social network? 🀣
> All our servers come with an initial 2tb for free.
> All our servers come with an initial 2tb for free.
Their response:

> The bandwidth for our free instances is 2 TB of free bandwidth.
>
> Mike Wolfman
> ww.vultr.com
> enior Linux Systems Administrator

😱
Their response:

> The bandwidth for our free instances is 2 TB of free bandwidth.
>
> Mike Wolfman
> ww.vultr.com
> enior Linux Systems Administrator

😱
@bender Is right. Apparently it's 0 bandwidth. I'm asking them some clarifying questions:

> Hi Team,
>
> Just noticed that you offer FREE (as in $0) VM(s) on the vc2-1c-0.5gb-free
> plan. however I also note that this has 0 Bandwidth.
>
> I'm a bit confused by this. What would be the point of having a free VM if it has no Bandwidth? How is network bandwidth charged in this case?
>
> cheers
> james
@bender Is right. Apparently it's 0 bandwidth. I'm asking them some clarifying questions:

> Hi Team,
>
> Just noticed that you offer FREE (as in $0) VM(s) on the vc2-1c-0.5gb-free
> plan. however I also note that this has 0 Bandwidth.
>
> I'm a bit confused by this. What would be the point of having a free VM if it has no Bandwidth? How is network bandwidth charged in this case?
>
> cheers
> james
@aelaraji Yes it would be honestly, for low traffic volumes for sure!
@aelaraji Yes it would be honestly, for low traffic volumes for sure!
@terron Oh! For a minute there I thought this was our cat 🐱 Haha πŸ˜†
@terron Oh! For a minute there I thought this was our cat 🐱 Haha πŸ˜†
@lyse Or... You got interrupted and forgot about the shape of the codebase you were going for 🀣
@lyse Or... You got interrupted and forgot about the shape of the codebase you were going for 🀣
@kat Morning! πŸ‘‹ I'm quite ill today, taking today/tomorrow off work. Not sure what I've come down with 😒 😷
@kat Morning! πŸ‘‹ I'm quite ill today, taking today/tomorrow off work. Not sure what I've come down with 😒 😷
@kat HTMX is very nice to use 🀣
@kat HTMX is very nice to use 🀣
Look forward to it πŸ˜…
Look forward to it πŸ˜…
@bender It's true! This is only a good thing @kat 🀣 You keep going like this with your own little community of friends, and my twtxt.net (_flagship pod_) will no longer be 🀣 I've always want to see Yarn.social grow, but grow in ways that keep to its truest sense of "decentralised". That's one of the reasons I built yarnd not to scale too much 🀣 My own pod has around ~18-20 active users per month (_give or take_) and that's honestly enough πŸ˜…~
@bender It's true! This is only a good thing @kat 🀣 You keep going like this with your own little community of friends, and my twtxt.net (_flagship pod_) will no longer be 🀣 I've always want to see Yarn.social grow, but grow in ways that keep to its truest sense of "decentralised". That's one of the reasons I built yarnd not to scale too much 🀣 My own pod has around ~18-20 active users per month (_give or take_) and that's honestly enough πŸ˜…~
@kat Oh you self-host Plex too! πŸ€” Nice! πŸ‘
@kat Oh you self-host Plex too! πŸ€” Nice! πŸ‘
I don't want it to be 2026 🀣
I don't want it to be 2026 🀣
@bmallred You can probably recover missing twts from our caches if you need to...
@bmallred You can probably recover missing twts from our caches if you need to...
Hey this could be good news for self-hosters and folks that want to run their own yarnd? πŸ€” Vultr is offering 1 vCPU, 500MB Memory and 10GB Storage for FREE! That's right $0.00 🀣
Hey this could be good news for self-hosters and folks that want to run their own yarnd? πŸ€” Vultr is offering 1 vCPU, 500MB Memory and 10GB Storage for FREE! That's right $0.00 🀣
@aelaraji Man I'm sorry to hear this. 😒 Whatever it is you're going through, things will get better I promise you πŸ€—
@aelaraji Man I'm sorry to hear this. 😒 Whatever it is you're going through, things will get better I promise you πŸ€—
@aelaraji Same, I hope things get much better for you bud πŸ€—
@aelaraji Same, I hope things get much better for you bud πŸ€—
No more stupid little DDoS(s) from fucking China now 🀣
No more stupid little DDoS(s) from fucking China now 🀣
Note for reference I was trying to write and fix this rule (_fixed version below_):


# Ignore Content-Type restrictions for Git
SecRule REQUEST_HEADERS:Host "@streq git.mills.io" "id:101,phase:1,t:none,nolog,ctl:ruleRemoveById=920420"
Note for reference I was trying to write and fix this rule (_fixed version below_):


# Ignore Content-Type restrictions for Git
SecRule REQUEST_HEADERS:Host "@streq git.mills.io" "id:101,phase:1,t:none,nolog,ctl:ruleRemoveById=920420"
Notably the custom operator @lookupASN
Notably the custom operator @lookupASN
I'll try to add a README for caddy-waf soonβ„’ (_going back to bed now_) at least document the customizations I've made to this WAF (_which I forked from caddy-coraza_)
I'll try to add a README for caddy-waf soonβ„’ (_going back to bed now_) at least document the customizations I've made to this WAF (_which I forked from caddy-coraza_)
This is how I build my caddy:


proxy-1:~# cat build.caddy.sh
#!/bin/sh

xcaddy build \\
\t--with github.com/caddy-dns/cloudflare \\
\t--with github.com/caddyserver/cache-handler \\
\t--with git.mills.io/prologic/caddy-ratelimit \\
\t--with git.mills.io/prologic/caddy-waf
proxy-1:~#
This is how I build my caddy:


proxy-1:~# cat build.caddy.sh
#!/bin/sh

xcaddy build \
	--with github.com/caddy-dns/cloudflare \
	--with github.com/caddyserver/cache-handler \
	--with git.mills.io/prologic/caddy-ratelimit \
	--with git.mills.io/prologic/caddy-waf
proxy-1:~#
This is how I build my caddy:


proxy-1:~# cat build.caddy.sh
#!/bin/sh

xcaddy build \
	--with github.com/caddy-dns/cloudflare \
	--with github.com/caddyserver/cache-handler \
	--with git.mills.io/prologic/caddy-ratelimit \
	--with git.mills.io/prologic/caddy-waf
proxy-1:~#
Ahh fuck! Sorry I was fixing a rule 🀣 This is much better!


proxy-1:~# grep -c 'Bad ASN' /var/log/caddy/caddy.log
2441
Ahh fuck! Sorry I was fixing a rule 🀣 This is much better!


proxy-1:~# grep -c 'Bad ASN' /var/log/caddy/caddy.log
2441
@bender Yes they are rather large 🀣 Here you go:


proxy-1:~# cat /etc/caddy/waf/bad_asns.txt
# CHINANET-BACKBONE No.31,Jin-rong Street, CN
# Why: DDoS
4134

# CHINA169-BACKBONE CHINA UNICOM China169 Backbone, CN
# Why: DDoS
4837

# CHINAMOBILE-CN China Mobile Communications Group Co., Ltd., CN
# Why: DDoS
9808

# FACEBOOK, US
# Why: Bad Bots
32934
proxy-1:~#
@bender Yes they are rather large 🀣 Here you go:


proxy-1:~# cat /etc/caddy/waf/bad_asns.txt
# CHINANET-BACKBONE No.31,Jin-rong Street, CN
# Why: DDoS
4134

# CHINA169-BACKBONE CHINA UNICOM China169 Backbone, CN
# Why: DDoS
4837

# CHINAMOBILE-CN China Mobile Communications Group Co., Ltd., CN
# Why: DDoS
9808

# FACEBOOK, US
# Why: Bad Bots
32934
proxy-1:~#
@bender AS Number):

> An autonomous system (AS) is a collection of connected Internet Protocol (IP) routing prefixes under the control of one or more network operators on behalf of a single administrative entity or domain, that presents a common and clearly defined routing policy to the Internet.[1] Each AS is assigned an autonomous system number (ASN), for use in Border Gateway Protocol (BGP) routing. Autonomous System Numbers are assigned to Local Internet Registries (LIRs) and end-user organizations by their respective Regional Internet Registries (RIRs), which in turn receive blocks of ASNs for reassignment from the Internet Assigned Numbers Authority (IANA). The IANA also maintains a registry of ASNs which are reserved for private use (and should therefore not be announced to the global Internet).
@bender AS Number):

> An autonomous system (AS) is a collection of connected Internet Protocol (IP) routing prefixes under the control of one or more network operators on behalf of a single administrative entity or domain, that presents a common and clearly defined routing policy to the Internet.[1] Each AS is assigned an autonomous system number (ASN), for use in Border Gateway Protocol (BGP) routing. Autonomous System Numbers are assigned to Local Internet Registries (LIRs) and end-user organizations by their respective Regional Internet Registries (RIRs), which in turn receive blocks of ASNs for reassignment from the Internet Assigned Numbers Authority (IANA). The IANA also maintains a registry of ASNs which are reserved for private use (and should therefore not be announced to the global Internet).
@bender AS Number):

> An autonomous system (AS) is a collection of connected Internet Protocol (IP) routing prefixes under the control of one or more network operators on behalf of a single administrative entity or domain, that presents a common and clearly defined routing policy to the Internet.\n Each AS is assigned an autonomous system number (ASN), for use in Border Gateway Protocol (BGP) routing. Autonomous System Numbers are assigned to Local Internet Registries (LIRs) and end-user organizations by their respective Regional Internet Registries (RIRs), which in turn receive blocks of ASNs for reassignment from the Internet Assigned Numbers Authority (IANA). The IANA also maintains a registry of ASNs which are reserved for private use (and should therefore not be announced to the global Internet).
Cool! 😎 So I can now block ASN(s) 🀣 (_And I bet no-one noticed anything_)
Cool! 😎 So I can now block ASN(s) 🀣 (_And I bet no-one noticed anything_)
@kat I love blue 🀣
@kat I love blue 🀣
@aelaraji Still in my cache 🀣
@aelaraji Still in my cache 🀣
@aelaraji Bahahaha, you know where the default theme lives 🀣 PRs welcome!
@aelaraji Bahahaha, you know where the default theme lives 🀣 PRs welcome!
It's nice to see that _some_ Crawlers _actaully_ respect rate limits and respect a 429 Too many requests response πŸ‘Œ Thank you Google! πŸ™Œ
It's nice to see that _some_ Crawlers _actaully_ respect rate limits and respect a 429 Too many requests response πŸ‘Œ Thank you Google! πŸ™Œ
@bender So you mean, get failtb2n to look at my Caddy audit logs for violations and then just block at the firewall level for repeated violations? πŸ€”
@bender So you mean, get failtb2n to look at my Caddy audit logs for violations and then just block at the firewall level for repeated violations? πŸ€”
@kat token will still be valid πŸ‘Œ
@kat token will still be valid πŸ‘Œ
@kat πŸ™Œ
@kat πŸ™Œ
@kat Yeah that's what the admin function does. Normal user password reset is different but requires working email 🀣
@kat Yeah that's what the admin function does. Normal user password reset is different but requires working email 🀣
@kat Speaking of KVM, Tiny Pilot and Jet KVM look really good!
@kat Speaking of KVM, Tiny Pilot and Jet KVM look really good!
@kat It'll be whatever the actual server's time zone is.
@kat It'll be whatever the actual server's time zone is.
@kat Temporally change the admin account on your pod to another account. Then login with that and reset the password on your main account.
@kat Temporally change the admin account on your pod to another account. Then login with that and reset the password on your main account.
What didn't work? Hmmm πŸ€”
What didn't work? Hmmm πŸ€”
Hmm? πŸ€”
Hmm? πŸ€”
@seabirdie πŸ‘‹ Welcome to Yarn.social πŸ™Œ
@seabirdie πŸ‘‹ Welcome to Yarn.social πŸ™Œ
@kat Haha 🀣
@kat Haha 🀣
Also yarnd supports video too 🀣
Also yarnd supports video too 🀣