# 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 238089
# self = https://watcher.sour.is?offset=228138
# next = https://watcher.sour.is?offset=228238
# prev = https://watcher.sour.is?offset=228038
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
[47°09′49″S, 126°43′41″W] Dosimeter still failing
So this should build caddy with both modules:


$ xcaddy build --with git.mills.io/prologic/caddy-ratelimit --with  git.mills.io/prologic/caddy-waf


Right?
@lyse The west. Nasty wind is always coming from the bloody west. (My apartment is facing the west and so I get to enjoy all the storms. 😂)

Good weather/wind comes from the east. (Which makes all the planes approach from the west again and so I get to enjoy their noise. 😂😂)
@lyse The west. Nasty wind is always coming from the bloody west. (My apartment is facing the west and so I get to enjoy all the storms. 😂)

Good weather/wind comes from the east. (Which makes all the planes approach from the west again and so I get to enjoy their noise. 😂😂)
@lyse The west. Nasty wind is always coming from the bloody west. (My apartment is facing the west and so I get to enjoy all the storms. 😂)

Good weather/wind comes from the east. (Which makes all the planes approach from the west again and so I get to enjoy their noise. 😂😂)
@lyse The west. Nasty wind is always coming from the bloody west. (My apartment is facing the west and so I get to enjoy all the storms. 😂)

Good weather/wind comes from the east. (Which makes all the planes approach from the west again and so I get to enjoy their noise. 😂😂)
@movq hahahahaha! I see. Of course, better be safe than... well, you know it. :-)
Meh, I hit an import cycle while writing tests. Now I have to relocate some code. What do we conclude from that: don't write tests. ;-)
The rate-limit one too (https://git.mills.io/prologic/caddy-ratelimit), for sure! Would the caddy-waf be:


$ xcaddy build --with git.mills.io/prologic/caddy-waf


Yes? Still, the README for a configuration example would be awesome!
@prologic cool! Looking forward to the README for https://git.mills.io/prologic/caddy-waf! :-) I will probably build that module on my Caddy!
Where is all this wind suddenly coming from?
@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:~#
@prologic can you give me an example of one ASN you have blocked? First time I heard of ASNs but, furthermore, blocking ASNs. It seems like they are *huge* blocks!
@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).
@bender Maybe, I don’t want to risk anything, though, and I can’t get this video out of my head: https://www.youtube.com/watch?v=tDacjrSCeq4 😅 (My main machine runs on an SSD, the HDDs are just for additional data like my software archive, music, …)

@lyse 😂
@bender Maybe, I don’t want to risk anything, though, and I can’t get this video out of my head: https://www.youtube.com/watch?v=tDacjrSCeq4 😅 (My main machine runs on an SSD, the HDDs are just for additional data like my software archive, music, …)

@lyse 😂
@bender Maybe, I don’t want to risk anything, though, and I can’t get this video out of my head: https://www.youtube.com/watch?v=tDacjrSCeq4 😅 (My main machine runs on an SSD, the HDDs are just for additional data like my software archive, music, …)

@lyse 😂
@bender Maybe, I don’t want to risk anything, though, and I can’t get this video out of my head: https://www.youtube.com/watch?v=tDacjrSCeq4 😅 (My main machine runs on an SSD, the HDDs are just for additional data like my software archive, music, …)

@lyse 😂
Retocada en blanco y negro. Ahora es más adorable
#catsoftwtxt
Retocada en blanco y negro. Ahora es más adorable
#catsoftwtxt
Retocada en blanco y negro. Ahora es más adorable
/https://baldo.cat/media/photos/IMG_3339.jpeg) #catsoftwtxt
Montando en elefante
#catsoftwtxt
Montando en elefante
#catsoftwtxt
Montando en elefante
/https://baldo.cat/media/photos/IMG_3322.jpeg) #catsoftwtxt
@prologic what's ASN again?
On my blog: Developer Diary, Epiphany https://john.colagioia.net/blog/2025/01/06/epiphany.html #programming #project #devjournal
Well. A new year came and I am reading Solenoid, a masterpiece written by Mircea Cărtărescu
somehow this server went out overnight??? weird
somehow this server went out overnight??? weird
[47°09′34″S, 126°43′23″W] Dosimeter malfunction
Nouvel article pour les anxieux comme moi : Sac d'urgence. https://si3t.ch/log/2025-01-06-sac-d-urgence.txt
Nouvel article pour les anxieux comme moi : Sac d'urgence. https://si3t.ch/log/2025-01-06-sac-d-urgence.txt
@aelaraji Thank you very much, glad you like it. :-) I always try to make web pages use as much semantic tags as possible and keep the HTML very simple, so that they also have a chance to look decent in terminal browsers. The logo took me a few hours to draw in all its three sizes.
I just solved my issue with noise in my headphone. Thank you public archives! So smooth now :) https://www.mail-archive.com/misc@openbsd.org/msg182180.html
I just solved my issue with noise in my headphone. Thank you public archives! So smooth now :) https://www.mail-archive.com/misc@openbsd.org/msg182180.html
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_)
[47°09′08″S, 126°43′28″W] Transfer aborted
@kat I love blue 🤣
@kat I love blue 🤣
Saludos desde Argentina
@kat i wound up with xcolor AND pastel at the same time, because xcolor does exactly what i want while pastel and its picker subcommand does the same thing, relying on xcolor, but brings up a nice graphic of the picked color and related colors, plus more than just the hex code. neat.
@kat i wound up with xcolor AND pastel at the same time, because xcolor does exactly what i want while pastel and its picker subcommand does the same thing, relying on xcolor, but brings up a nice graphic of the picked color and related colors, plus more than just the hex code. neat.
just spent like half an hour finding a terminal based color picker that would just. turn the cursor into a cross hair and let me pick from the screen. in linux fashion this was somehow difficult
just spent like half an hour finding a terminal based color picker that would just. turn the cursor into a cross hair and let me pick from the screen. in linux fashion this was somehow difficult
@prologic i love pink i put it on all my sites
@prologic i love pink i put it on all my sites
@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!
[47°09′08″S, 126°43′23″W] Bad satellite signal -- switching to analog communication
Browsing X and fell down a gopher hole. Love it. ✌️ -Steve Galbincea
@xuu ROFLMAO! 🤣 reading that, the Tech bro sounded in my mind like Cow from Cow and Chicken
@xuu ROFLMAO! 🤣 reading that, the Tech bro sounded in my mind like Cow from Cow and Chicken
@bender @movq I appreciate you! and don't you worry about it, if 2025 doesn't behave itself we Will make it! 🦾 (now I know the real meaning behind the expression of _Making it_)
@bender @movq I appreciate you! and don't you worry about it, if 2025 doesn't behave itself we Will make it! 🦾 (now I know the real meaning behind the expression of _Making it_)
I was looking for an #mpd/#rofi script and stumbled upon this repo adi1090x/rofi, it is just 🤤 DELICIOUS! ... and a great reference/kick starter for making my own.
I was looking for an #mpd/#rofi script and stumbled upon this repo adi1090x/rofi, it is just 🤤 DELICIOUS! ... and a great reference/kick starter for making my own.
Seriously @prologic you should think about making a pink theme the _De Facto_ for yarn, even the 🧶 emoji is pink! 😆
Seriously @prologic you should think about making a pink theme the _De Facto_ for yarn, even the 🧶 emoji is pink! 😆
HAHAHAHA! 🤣 I freaking love this reaction. Welcome aboard @gretahayes
HAHAHAHA! 🤣 I freaking love this reaction. Welcome aboard @gretahayes
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! 🙌
@bmallred did you rotate your twtxt file or something happened to your twts? 🤔 asking just in case...
@bmallred did you rotate your twtxt file or something happened to your twts? 🤔 asking just in case...
@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? 🤔
@prologic fail2ban should work fine.
@kat well even after doing the new fixes my invidious instance is still dead because google blocked my ip i think and i don't have a proxy server so uhhhhhhhhhh. not much to watch unless i use videos on my server
@kat well even after doing the new fixes my invidious instance is still dead because google blocked my ip i think and i don't have a proxy server so uhhhhhhhhhh. not much to watch unless i use videos on my server
@kat am i in an idol video watching mood or play with single board computers mood
@kat am i in an idol video watching mood or play with single board computers mood
bros i am so anxious right now i need to DO SOMETHING FUNNNNNNNNN
bros i am so anxious right now i need to DO SOMETHING FUNNNNNNNNN
@prologic yay!
@prologic yay!
@seabirdie let's goooo!!!!!! wait lemme follow u
@seabirdie let's goooo!!!!!! wait lemme follow u
@seabirdie I'M BACK I WON AGAINST THE SERVER GODS
@seabirdie I'M BACK I WON AGAINST THE SERVER GODS
@kat token will still be valid 👌
@kat token will still be valid 👌
@prologic hahahah i see!!
@prologic hahahah i see!!