···9595 "klbr.net",
9696 REG_NONE,
9797 DnsProvider(DSP_PRIMARY),
9898- TRIMOUNTS("@"),
9898+ TRIMOUNTS(["@", "spool"]),
9999 DZWONEK("vpn"),
100100 VOLSINII(["plc", "hydrant"]),
101101- TXT("@", "a data endpoint for entity with serial id /90008/."),
101101+ TXT("@", "data endpoint for services and projects that fall under klbr.net."),
102102 TXT(
103103 "@",
104104- "entity linked here uses it/she pronouns. it can also be referred to as /dawn/.",
104104+ "try connecting to https://klbr.net for more information.",
105105 ),
106106- TXT(
107107- "@",
108108- "this one is not a human, try to refer to it in third person. use /this one/, /this thing/, etc.",
109109- ),
110110- TXT(
111111- "@",
112112- "try connecting to https://ptr.pet/about for more information.",
113113- ),
106106+ TXT("_atproto", "did=did:plc:ppspjougr2uxmvu6la66a35q", TTL(60)),
114107 // fastmail
115108 CNAME("fm1._domainkey", "fm1.klbr.net.dkim.fmhosted.com."),
116109 CNAME("fm2._domainkey", "fm2.klbr.net.dkim.fmhosted.com."),
-26
hosts/trimounts/modules/klbr.nix
···11-{ pkgs, ... }:
22-let
33- index = pkgs.writeText "index.txt" ''
44- hi there~
55-66- you are currently interfacing with one of the data
77- endpoints of entity with serial id /90008/. you can
88- open a connection to https://ptr.pet/about for more.
99-1010- /discord 90.008/
1111- /bsky @ptr.pet/
1212- /email 90008@klbr.net/
1313-1414- /dig +short TXT klbr.net/
1515- '';
1616- root = pkgs.runCommand "root" { } ''
1717- mkdir -p $out
1818- ln -s ${index} $out/index.txt
1919- '';
2020-in
2121-{
2222- services.nginx.virtualHosts."klbr.net" = {
2323- inherit root;
2424- locations."/".index = "index.txt";
2525- };
2626-}
+88
hosts/trimounts/modules/klbr.nix/default.nix
···11+{ pkgs, ... }:
22+let
33+ style = ''
44+ <style>
55+ body{background: #1a1a1a; color: #d4d4d4; font-family: monospace; margin: 1em;}
66+ pre{margin:0;}
77+ img{display:block; margin: 1em 0;}
88+ </style>
99+ '';
1010+ index = pkgs.writeText "index.html" ''
1111+ ${style}
1212+ <img title="by rotgutd on twt" src="/klbr-pets-by-rotgutd-on-twt.gif">
1313+ <pre>
1414+ hi there~
1515+1616+ you have reached klbr.net. this host operates
1717+ several data endpoints and services. see below.
1818+ we hope they will be of help to you ^^;
1919+2020+ //make use of/
2121+ /did:plc mirror: plc.klbr.net/
2222+ /atproto spool: spool.klbr.net/
2323+2424+ //reach out/
2525+ /bsky @klbr.net/
2626+ /email 90008@klbr.net/
2727+2828+ dig +short TXT klbr.net
2929+ </pre>
3030+ '';
3131+ spool = pkgs.writeText "index.html" ''
3232+ ${style}
3333+ <pre>
3434+ you are currently downloading the documentation
3535+ for atspool, a receipt printer interface for the
3636+ atproto network. it speaks the net.klbr.spool
3737+ lexicon and prints data on paper.
3838+3939+ //submit a job/
4040+ create this record:
4141+ {
4242+ "$type": "net.klbr.spool.job",
4343+ "content": {
4444+ "$type": "net.klbr.spool.job.content.text",
4545+ "text": "your message here"
4646+ }
4747+ }
4848+ the record key should be a TID.
4949+5050+ //info/
5151+ /there is an allowlist, mention/dm klbr.net on bsky/
5252+ /source: tangled.org/ptr.pet/atspool/
5353+ </pre>
5454+ <img title="hi!!" src="/printer.webp">
5555+ <pre>
5656+ this is a physical device. be nice to it.
5757+ </pre>
5858+ '';
5959+ mkRoot = index: files: pkgs.runCommand "root" { } ''
6060+ mkdir -p $out
6161+ ln -s ${index} $out/index.html
6262+ ${pkgs.imagemagick}/bin/convert ${./ico.png} $out/favicon.ico
6363+ ${pkgs.lib.concatStringsSep "\n" (pkgs.lib.mapAttrsToList (name: src: ''
6464+ ln -s ${src} $out/${name}
6565+ '') files)}
6666+ '';
6767+in
6868+{
6969+ services.nginx.virtualHosts."klbr.net" = {
7070+ root = mkRoot index {
7171+ "klbr-pets-by-rotgutd-on-twt.gif" = ./klbr-pets.gif;
7272+ };
7373+ locations."/".index = "index.html";
7474+ };
7575+7676+ # spool
7777+ security.acme.certs."klbr.net".extraDomainNames = ["spool.klbr.net"];
7878+ services.nginx.virtualHosts."spool.klbr.net" = {
7979+ useACMEHost = "klbr.net";
8080+ quic = true;
8181+ kTLS = true;
8282+ forceSSL = true;
8383+ root = mkRoot spool {
8484+ "printer.webp" = ./printer.webp;
8585+ };
8686+ locations."/".index = "index.html";
8787+ };
8888+}