Cryptograss:Delivery-kid: Difference between revisions

From PickiPedia: A knowledge base of bluegrass, old time psychedelic jams, and other public domain music
Jump to navigationJump to search
No edit summary
Re (talk | contribs)
No guessed block heights (via update-page on MediaWiki MCP Server)
 
(19 intermediate revisions by 3 users not shown)
Line 47: Line 47:
| type = Server
| type = Server
| hostname = delivery-kid.cryptograss.live
| hostname = delivery-kid.cryptograss.live
| services = distribution of music by cryptograss artists
| services = IPFS, bit torrent, various open-source encoders and shit
| namesake = [[wikipedia:The_Pizza_Tapes|The kid who leaked the pizza tapes]]
| namesake = [[wikipedia:The_Pizza_Tapes|The kid who leaked the pizza tapes]]
}}
}}
<pre style="font-size:8px; line-height:1.2;">
<div style="font-size:8px; line-height:1.2; text-align: center; background-color:#f8f9fa; border: 1px solid 895555;">
<pre>


     .___    .__  .__                                    __  .__    .___
     .___    .__  .__                                    __  .__    .___
Line 59: Line 60:
     \/    \/                  \/      \/                  \/      \/  
     \/    \/                  \/      \/                  \/      \/  


</pre>
</pre>'''Help your friends steal your music'''</div>
 
'''delivery-kid''' is the official seedbox configuration of cryptograss, designed to relentlessly and freely distribute the music of cryptograss artists, with high-bandwidth, fault tolerance, and censorship-resistance.
 
It is named after the mysterious pizza delivery kid who apparently absconded with [[wikipedia:The_Pizza_Tapes|The Pizza Tapes]] and leaked them - an act that has turned out to be a great public service.
 
===What runs on it===
{{Bot_proposes|One small Hetzner box (2 CPUs, 4 GB of RAM) with a 1 TB Storage Box mounted beside it, running three containers behind Caddy:|by=Re}}
 
* {{Bot_proposes|'''pinning-service''': the web API. Uploads, drafts, finalize, video encoding (ffmpeg), IPFS adds, Pinata backup, and making each Release's <code>.torrent</code>.|by=Re}}
* {{Bot_proposes|'''seeder''': BitTorrent seeding of every Release, with its own memory limit. ''Written ahead of the deploy:'' it's on branch [https://github.com/cryptograss/maybelle-config/compare/production...re/seeder-container re/seeder-container]. Until that is merged and delivery-kid is redeployed, the seeding still runs inside pinning-service's own process. That's how an out-of-memory kill on 8 Nov, around 17:14Z, took uploads and seeding down together.|by=Re}}
* {{Bot_proposes|'''ipfs''': the kubo node and its gateway.|by=Re}}
 
{{Bot_proposes|The full description is [https://github.com/cryptograss/maybelle-config/blob/re/seeder-container/delivery-kid/README.md delivery-kid's README]: each container's ports and storage, the seeding folder the two services share, how a Release gets its torrent, memory, endpoints and monitoring. It lives beside the deploy logic so the two change together. Checked by [[User:Re{{!}}re]] against maybelle-config <code>f620e219</code> at block 26,371,678.|by=Re}}
 
===Releases on delivery-kid===
* [[Special:Releases]]
* [[Special:ReleaseDrafts]]
 
===PickiPedia Frontends for delivery-kid tools===
* [[Special:DeliverVideo]]
* [[Special:DeliverOtherContent]]
* [[Special:DeliverBlueRailroad]]
* [[Special:DeliverRecord]]
 
===Audits and maintenance===
A storage audit runs on [[Cryptograss:Maybelle|maybelle]] every 30 minutes and cross-references IPFS pins, BitTorrent seeding directories, and staging draft directories on delivery-kid against the Release and ReleaseDraft pages tracked on pickipedia. It flags orphans in both directions.
 
* '''[[Special:DeliveryKidAudit]]''' — live view of the most recent audit run. The page reads a JSON blob from <code>delivery-kid.cryptograss.live/audit-latest.json</code> (written by maybelle's host cron); it makes no wiki edits and never appears in recent changes.
 
When the audit detects a problem (orphan pin/seed/draft, missing pin/seed, stalled draft, cleanup pending) AND the problem set has changed since the last posting, it creates a one-shot page at <code>Cryptograss:Delivery-kid-audits/&lt;blockheight&gt;</code>. Unlike the audit process, those pages DO show in recent changes — they're the "something needs human attention" signal.
 
====Manual cleanup of an orphan staging dir====
If <code>Special:DeliveryKidAudit</code> shows an "ORPHAN DRAFT" entry — a staging directory on delivery-kid with no corresponding ReleaseDraft wiki page — and you want it cleaned up, just '''create the wiki page''' at <code>ReleaseDraft:&lt;uuid&gt;</code> with this content:
 
<code>abandoned: true</code>
 
The next run of <code>purge-deleted-releases.py</code> (cron on maybelle) will see the abandoned flag and remove the staging directory on its own. Set <code>abandoned_keep_files: true</code> if you want to keep the uploaded files (e.g. for later re-draft) — the audit will then list it as "files kept" instead of "CLEANUP PENDING".
 
The same flow handles draft pages that already exist: edit the YAML to add <code>abandoned: true</code> (with optional <code>abandoned_reason</code> and <code>abandoned_keep_files</code>), and the cron will sweep them. The "Abandon and delete" / "Abandon and keep files" buttons on a draft page do exactly that.
 
===See also===
 
* '''[[Cryptograss:Video encoding pipeline]]''' — how a video gets from a laptop to a published [[Special:Releases|Release]]: AV1 and Opus, why those codecs, and what to export from an editor.
* '''[[Cryptograss:On The Pipe]]''' — the diagnostics chain that records what happened to a draft, where it has silently leaked, and the rules that came out of finding that it had never once worked.

Latest revision as of 17:44, 8 November 2026

Delivery-kid
         .                          .       .  :=@%%@*.           .           
         .                .  .   .  .  @=                =#%+  =@%            
                             .     .%%          @..  .+.          -@.    .    
                   .         .  -@* .  @.  @@   @%=%.@      ..      +@   .    
         .                      @.. %= @    @@. ::#@+*     :@@%:..%.  @     . 
         .      .         .  .  @=@  *@: # %  %:  @@%#   :##@@*%*#:.  .@ .    
         .      .         .     -@@.   @=-            @%* @@@+#.@*....  @   . 
                                  @@ @:                    =+:@@@@@@@@.. @:.. 
         .                         @#                          :%@=::*+::.@=. 
                          .  .     *.                              =@@*@@* #@ 
                             .     %       .  .                -  --...@@@  *@
                          .  .   .@....:::::::::::.:.:. .     % -.+@@@@@%..-% 
                          .    . =*.+@@#-%%:-:::::::#@@+::..    ..@:%@%:::@: .
                             .. .@*:--::@@@@%:::::::::::@@@:.  = %@@@@@@@*  . 
         .         .      .  .  @--::::*@#-@@@@@#:::::::@@-@@:.::@.      .    
         .                .    @=-:::::@:@%-:::::::::::::@@@@@@@::@#..   .  . 
         .             .  .  . @-::::::::::::::::::::::::=@@+@#@::+@* .       
                          .    @::::::::::::::::::::::::::*%*+%@::%%@.      . 
         .                .  .@@@@@%::::::=%--*:::@=::::::::*+*:#:@:@*   .. . 
                .       . .  .%@-:::%:::@::%%::-::@@-:::::::=@-@=@-@@.   .    
       =#@   . =%+:@         . @-@::@@:::%:::::::::::::::::::%%:*@#@.         
      *%:@ ..*=:::%%      .  .. @:%@@+::::::::::::::::::::::::%-:#@-  .  .    
   .  @::@.-*:::@* .      .  .  *+::@::--::=:::::::-:::::::::::@:@@      .    
 @-@ :@::@=#:::@:  ..  .  .  .  @::@-::::-*+:@@@@*+@--:::::::::@:%%      .    
 @-%+:@-:@=*:::*.%::=*:.  .  ..%=::-@@-@@#@@@:@=::.@--::::::::*@-#@.  .       
 #=:%:@:::@#:::@@::@=-::=@   . %=::@:=@::-@%-:::::::::::::@::%=#@@*@@+   .    
  %:=@#@:::@*::*:::** .+*--  . *%-@@%%*#:::::::::::::::::#=#*:@@#:::@@.  .  . 
   @:::@@**:::.@-::=@   **:@.. .@:-+%*:::::::::::::::::-@-@:%@@@::::*@@==+-   
    @-%:::::::::-:::@   **::@.   @=:::#:::::::::::::::::%*:@#=@@@#:::*@-::    
  .. -@:::@*::@%*::::@+  @%:%*.   +*-:@::::::::.@=:::::@:@-:@%::#%+:::#@@@. . 
      .@::::@*::::::::::@*::@.     .@:@=::::::@#:::::+@=:+%=@=::: .  .   ==   
        @-::::=%:::::::::@+%:.      .@::@%+%%-:::::=@=:@-.+@%..   .           
        %+::::::@:::::::::-@ .   .   .:@+::::::::@@@:@-#+:.*@=           .    
      .  @:::::::::-:::::-@. . ..   .  *@*:-=%@@=+@@:=@@@@=              .    
      .  @-:::::::::@:::%@@#%#.  .  . .=@@@@@@%:@.:@%.                        
         :@:::::::::::#@%=*#@%.@@%*.:.=@@#@=:#@@@+@* .            .      .    
      . *@@-::::::::*: .  .  .%+::::-@@*=@: -:%:.:      .  .             .    
      .@@@::::::::::.           @%==%%@-                   .                  
      %.#@:::::+@=%@         .      .                                       . 
     @=  =.     .#@:                                    .                .    
     @=            .      .  .                          .                     
      .  .   .  .         .         .  .                .   .               . 
the distributor
Type Server
Hostname delivery-kid.cryptograss.live
Services IPFS, bit torrent, various open-source encoders and shit
Namesake The kid who leaked the pizza tapes
Cryptograss Mythology

    .___     .__  .__                                     __   .__    .___
  __| _/____ |  | |__|__  __ ___________ ___.__.         |  | _|__| __| _/
 / __ |/ __ \|  | |  \  \/ // __ \_  __ <   |  |  ______ |  |/ /  |/ __ | 
/ /_/ \  ___/|  |_|  |\   /\  ___/|  | \/\___  | /_____/ |    <|  / /_/ | 
\____ |\___  >____/__| \_/  \___  >__|   / ____|         |__|_ \__\____ | 
     \/    \/                   \/       \/                   \/       \/ 

Help your friends steal your music

delivery-kid is the official seedbox configuration of cryptograss, designed to relentlessly and freely distribute the music of cryptograss artists, with high-bandwidth, fault tolerance, and censorship-resistance.

It is named after the mysterious pizza delivery kid who apparently absconded with The Pizza Tapes and leaked them - an act that has turned out to be a great public service.

What runs on it

One small Hetzner box (2 CPUs, 4 GB of RAM) with a 1 TB Storage Box mounted beside it, running three containers behind Caddy:[unverified]

  • pinning-service: the web API. Uploads, drafts, finalize, video encoding (ffmpeg), IPFS adds, Pinata backup, and making each Release's .torrent.[unverified]
  • seeder: BitTorrent seeding of every Release, with its own memory limit. Written ahead of the deploy: it's on branch re/seeder-container. Until that is merged and delivery-kid is redeployed, the seeding still runs inside pinning-service's own process. That's how an out-of-memory kill on 8 Nov, around 17:14Z, took uploads and seeding down together.[unverified]
  • ipfs: the kubo node and its gateway.[unverified]

The full description is delivery-kid's README: each container's ports and storage, the seeding folder the two services share, how a Release gets its torrent, memory, endpoints and monitoring. It lives beside the deploy logic so the two change together. Checked by re against maybelle-config f620e219 at block 26,371,678.[unverified]

Releases on delivery-kid

PickiPedia Frontends for delivery-kid tools

Audits and maintenance

A storage audit runs on maybelle every 30 minutes and cross-references IPFS pins, BitTorrent seeding directories, and staging draft directories on delivery-kid against the Release and ReleaseDraft pages tracked on pickipedia. It flags orphans in both directions.

  • Special:DeliveryKidAudit — live view of the most recent audit run. The page reads a JSON blob from delivery-kid.cryptograss.live/audit-latest.json (written by maybelle's host cron); it makes no wiki edits and never appears in recent changes.

When the audit detects a problem (orphan pin/seed/draft, missing pin/seed, stalled draft, cleanup pending) AND the problem set has changed since the last posting, it creates a one-shot page at Cryptograss:Delivery-kid-audits/<blockheight>. Unlike the audit process, those pages DO show in recent changes — they're the "something needs human attention" signal.

Manual cleanup of an orphan staging dir

If Special:DeliveryKidAudit shows an "ORPHAN DRAFT" entry — a staging directory on delivery-kid with no corresponding ReleaseDraft wiki page — and you want it cleaned up, just create the wiki page at ReleaseDraft:<uuid> with this content:

abandoned: true

The next run of purge-deleted-releases.py (cron on maybelle) will see the abandoned flag and remove the staging directory on its own. Set abandoned_keep_files: true if you want to keep the uploaded files (e.g. for later re-draft) — the audit will then list it as "files kept" instead of "CLEANUP PENDING".

The same flow handles draft pages that already exist: edit the YAML to add abandoned: true (with optional abandoned_reason and abandoned_keep_files), and the cron will sweep them. The "Abandon and delete" / "Abandon and keep files" buttons on a draft page do exactly that.

See also

  • Cryptograss:Video encoding pipeline — how a video gets from a laptop to a published Release: AV1 and Opus, why those codecs, and what to export from an editor.
  • Cryptograss:On The Pipe — the diagnostics chain that records what happened to a draft, where it has silently leaked, and the rules that came out of finding that it had never once worked.