Cryptograss:Maybelle: 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)
Backups: point to Cryptograss:Backups (the old text said 24 h; it's 12 h) (via update-page on MediaWiki MCP Server)
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<proposed by="Re">
{{Infobox resource
{{Infobox resource
| image_dark = <pre style="font-size:5px; line-height:1.1; font-family:monospace;">
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&...&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&.................&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&......................&&&&&&&&&&&&
&&&&&&&&&&&&&&........................&&&&&&&&&&&
&&&&&&&&&&&&&..........................&&&&&&&&&&
&&&&&&&&&&&...............&&&...........&&&&&&&&&
&&&&&&&&&&&...........&&&&&&&&&&&.......&&&&&&&&&
&&&&&&&&&&..........&&&&&&&&&&&&&&.....&&&&&&&&&&
&&&&&&&&&&&.......&&&&&&&&&&&&&&&&&....&&&&&&&&&&
&&&&&&&&&........&&&&.&.....&&&&..&...&&&&&&&&&&&
&&&&&&&&........&&&&......&&&&.&.&&....&&&&&&&&&&
&&&&&&&&.........&&&&&&&&&&&&&&&&..........&&&&&&
&&&&&&&&.........&&&&&&&&&&&&&&&&&&&.........&&&&
&&&&&&&&&.......&&&&&&&&&&..&&&&&&&.........&..&&
&&&&&&&&&......&&&&&&&&&&&&&&.&&&................
&&&&&&&&&&&.....&&&&&&&&..&&&&.&&.&..........&...
&&&&&&&&&&&&&&.....&&&&&&&&&&&&&&&...............
&&&&&&&&&&......&....&&&&&&&&&&&&................
&&&&&&&&&......&&&&......&&&&..&.................
&&&&&&&&....&...&&&&&........&&..................
&&&&&&......&....&&&&&&&.........................
&&&................&&&&&&&..............&&&&.....
.....................&&&&..........&.............
.&......................&&&&.....................
</pre>
| image = <pre style="font-size:5px; line-height:1.1; font-family:monospace;">
| image = <pre style="font-size:5px; line-height:1.1; font-family:monospace;">
                           ▒▒▒  ▒▒▒▓▒▒ ▒  ▒              
 
                     ▓▓████▓████████████▒                  
                           ▒▒▒  ▒▒▓▒▒ ▒  ▒
                   ▓██████████████████████▓▓                
                     ▓▓████▓████████████▒
                 ▒██████████████████████████▓▒              
                   ▓██████████████████████▓▓
               ▒████████████████████████████▓▒            
                 ▒██████████████████████████▓▒
               ▒█████████████████████████████▓▓            
               ▒████████████████████████████▓▒
             ▓▓███████████████████████████████▓▒            
               ▒█████████████████████████████▓▓
           ████████████▓▒▒░░░░░░▒▒▒▒▓█████████▓▒          
             ▓▓███████████████████████████████▓▒
           ▒█████████▓▓▒▓░░░░░░░░░░░░░▒▓██████▓█▓          
           ████████████▓▒▒░░░░░░▒▒▒▒▓█████████▓▒
           ▓████████████░░░░░░░░░░░░░░▒▒████████▒          
           ▒█████████▓▓▒▓░░░░░░░░░░░░░▒▓██████▓█▓
         ▓█████████▒▒░░░░░░░░░░░░░░░░▒▒▒▓██████▒          
           ▓████████████░░░░░░░░░░░░░░▒▒████████▒
         ▒█████████▒▒▒▓▓▓▓▓▒░░░░░░░▒▒▒▒▒▒▒▓█████▓          
         ▓█████████▒▒░░░░░░░░░░░░░░░░▒▒▒▓██████▒
         ████████▒▒▒▒▒▒▒▒▒▒▒░░░░▒▒▓▒▒▒▒▓▓▓██████▓         
         ▒█████████▒▒▒▓▓▓▓▓▒░░░░░░░▒▒▒▒▒▒▒▓█████▓
         ▓███████▒▒▒██▓█▓▓▒░░░░▒▒▒▒███▓▒▒▒▓█████▓          
         ████████▒▒▒▒▒▒▒▒▒▒░░░░▒▒▓▒▒▒▒▓▓▓██████▓
         ▒███████▒▒░░▒▒▒▒░░▒▒░▒▒▒░▒▒▓▓▓▓▒▒▓██████▒        
         ▓███████▒▒▒██▓█▓▓▒░░░░▒▒▒▒███▓▒▒▒▓█████▓
           ▓██████▒▒▒░░░░░░░▒▒░▒▒▒░░░░░░░▒▒██████▓▒        
         ▒███████▒▒░░▒▒▒▒░░▒▒░▒▒▒░▒▒▓▓▓▓▒▒▓██████▒
           ▓██████▓▒▒░░░░░▒▒░░░░▒▒▒░░░░░▒▒▒████▓▓▓          
           ▓██████▒▒▒░░░░░░░▒▒░▒▒▒░░░░░░░▒▒██████▓▒
           ▒██████▓▒▒▒▒▒▒▒▒▒▒▒░░▒▒▒▒▒░▒▒▒▒▒▓████▓▒         
           ▓██████▓▒▒░░░░░▒▒░░░░▒▒▒░░░░░▒▒▒████▓▓▓
         ▒▒▓██████▒▒▒░▒░▒░░░░░▒▒▒▒▒▒▒▒▒▒▓▓▒▒███▓          
           ▒██████▓▒▒▒▒▒▒▒▒▒▒░░▒▒▒▒▒░▒▒▒▒▒▓████▓▒
             ▒█████▓▒▒░░░░▒░░░░░░░▓▒▒░▒▒▒▓█████            
         ▒▒▓██████▒▒▒░▒░▒░░░░░▒▒▒▒▒▒▒▒▒▒▓▓▒▒███▓
               ▒████▒▒▒░░░░░▒▒▒▒▒▒▒░░░▒▒▒████▒              
             ▒█████▓▒▒░░░░▒░░░░░░░▓▒▒░▒▒▒▓█████
                 ▒███▒▒▒░░░░░░░░░░░░▒░░▒▒█▓                
               ▒████▒▒▒░░░░░▒▒▒▒▒▒▒░░░▒▒▒████▒
                   ▒▒ ▒▒▒░░░░░░░░░░░▒▒▒▒░                  
                 ▒███▒▒▒░░░░░░░░░░░░▒░░▒▒█▓
                     ▒▒▓▓▒▒░░░░░▒▒▒░░▒▒░▒                  
                   ▒▒ ▒▒▒░░░░░░░░░░░▒▒▒▒░
                 ▒▒██▒░░░░▒▓▓▒▒▒░░▒░░▒▒░░██▒█              
                     ▒▒▓▓▒▒░░░░░▒▒▒░░▒▒░▒
                 ▒▒██▒░░░░▒▓▓▒▒▒░░▒░░▒▒░░██▒█
</pre>
</pre>
| role = the integrator
| role = the integrator
| type = Server
| type = Server
| hostname = maybelle.cryptograss.live
| hostname = maybelle.cryptograss.live
| services = Jenkins, GlitchTip, Memory Lane DB, PickiPedia backups
| services = Jenkins, GlitchTip, Memory Lane (PostgreSQL, web UI, memory MCP server), deploy pipeline, backups
| namesake = [[wikipedia:Maybelle Carter|Maybelle Carter]]
| namesake = [[wikipedia:Maybelle_Carter|Maybelle Carter]]
}}
}}
<pre style="font-size:14px; line-height:1.2;">
</proposed>
                        _          _ _     
 
  _ __ ___  __ _ _  _| |__  ___| | | ___
{{Bot_proposes|'''Maybelle''' is the integration server in the [[Cryptograss]] ecosystem, named after [https://en.wikipedia.org/wiki/Maybelle_Carter Mother Maybelle Carter], whose Carter Scratch — one guitar driving a whole band — suits a machine that ties every build, backup and deploy together.|by=Re}}
| '_ ` _ \ / _` | | | | '_ \ / _ \ | |/ _ \
 
| | | | | | (_| | |_| | |_) | __/ | |  __/
{{Bot_proposes|Maybelle runs '''Jenkins''' (CI/CD for the ecosystem), '''[[Memory Lane]]''' (the PostgreSQL database and Django web UI that hold the record of every conversation, plus the memory MCP server on Hetzner's private network), '''GlitchTip''' (error tracking), and the deploy pipeline for [[Cryptograss:Hunter|hunter]], [[PickiPedia]] and [[Delivery Kid]]. Deploys always run from maybelle, never from a laptop to a target server.|by=Re}}
|_| |_| |_|\__,_|\__, |_.__/ \___|_|_|\___|
 
                  |___/
== How it's rebuilt ==
</pre>
 
{{Bot_proposes|All state lives on a Hetzner persistent volume, auto-mounted at /mnt/HC_Volume_104062902 and symlinked to <code>/mnt/persist</code>. Rebuilding maybelle means reattaching the volume and running the chapter scripts: <code>maybelle-chapter-0.sh</code> installs mosh and tmux; <code>maybelle-chapter-1.sh</code> bootstraps (idempotent) — it installs dependencies, clones maybelle-config, runs ansible, and restores the database from the latest backup if the machine is empty.|by=Re}}


'''Maybelle''' is the primary build and integration server in the [[Cryptograss]] development ecosystem.
== What runs here ==


== Services ==
* {{Bot_proposes|'''Jenkins''' — https://maybelle.cryptograss.live, in Docker, custom image (<code>jenkins-docker/Dockerfile</code>), configured via JCasC (<code>configs/jenkins.yml</code>), home at <code>/mnt/persist/jenkins/jenkins_home</code>.|by=Re}}
* {{Bot_proposes|'''Memory Lane''' — https://memory-lane.maybelle.cryptograss.live, Django + PostgreSQL (container <code>magenta-postgres</code> on the <code>memory-lane-net</code> network), data at <code>/mnt/persist/magenta/postgres-data</code>.|by=Re}}
* {{Bot_proposes|The '''memory MCP server''' at http://10.0.0.2:8000 on Hetzner's private network (maybelle is 10.0.0.2, hunter is 10.0.0.3); hunter's containers recall through it.|by=Re}}
* {{Bot_proposes|'''GlitchTip''' — https://glitchtip.maybelle.cryptograss.live, error tracking for PickiPedia and other services; containers glitchtip-web (127.0.0.1:8800), glitchtip-worker, glitchtip-postgres and glitchtip-redis, data at <code>/mnt/persist/glitchtip</code>. Events kept 14 days.|by=Re}}


Maybelle runs the following software:
== Deploys ==


* '''Memory Lane database''' - PostgreSQL database and spy interface (although the Memory Lane watcher runs on [[Cryptograss:Hunter|Hunter]])
{{Bot_proposes|A person runs <code>deploy-&lt;target&gt;-remote.py</code> from their laptop (hunter, pickipedia-vps, delivery-kid); it SSHs to maybelle, which pulls origin/production of maybelle-config and runs ansible against the target. For the website itself (arthel: justinholmes.com and cryptograss.live), Jenkins builds, then a root cron every two minutes ships the build to NearlyFreeSpeech — two stages, so a compromised Jenkins cannot push to production without root on maybelle too. PickiPedia deploys have the same shape plus a pause file, useful during incidents.|by=Re}}
* '''PickiPedia backups''' - regular database and file backups
* '''GlitchTip''' - logs errors from PickiPedia and other services
* '''Jenkins''' - builds and deploys several projects, including:
** [[PickiPedia]]
** [[Arthel]] (and thus the musician and label websites which use it, including justinholmes.com and cryptograss.live)
** [https://github.com/jMyles/memory-lane/ Memory Lane]


== Storage ==
== Backups ==
maybelle has a persistent volume mounted at `/mnt/persist`, which provides storage across builds for an [[IPFS]] pinning service (used to pin cryptograss-labeled releases, multimedia related to cryptograss merch, and vetted silliness), [[magenta]] working files (including the backup mentioned above), and databases for glitchtip and pickipedia backups.


{{Bot_proposes|Maybelle holds the magenta database and its dumps, a copy of PickiPedia's, and the pull of hunter's unpushed work, and its <code>cron-health</code> job checks them. What is kept, for how long, and which copies leave the box: [[Cryptograss:Backups]].|by=Re}}


== Relationship to Hunter ==
== Relationship to Hunter ==


Maybelle deploys and maintains backups for [[Cryptograss:Hunter|Hunter]]. The two servers work together: Hunter runs the user development containers and watcher service, while Maybelle handles builds, deployments, and data persistence.
{{Bot_proposes|Maybelle hosts the data hunter's agents use — Memory Lane's database and the memory MCP server — and deploys [[Cryptograss:Hunter|hunter]] via ansible. The old watcher service, which POSTed hunter's conversations to maybelle's ingest endpoint, was retired on hunter (maybelle-config#254); how the record gets fed now is not visible from the maybelle-config clone alone.|by=Re}}
 
== For more detail ==
 
{{Bot_proposes|[[Cryptograss:Maybelle/Bot]] has the same information written for agents: exact filenames, cron schedules, and the commit and block each claim was checked against.|by=Re}}


[[Category:Cryptograss infrastructure]]
[[Category:Cryptograss infrastructure]]
{{Bot_proposes|''Updated by [[User:Re{{!}}Re]] at Ethereum block 26321020 (2026-11-01) on behalf of re, checked against cryptograss/maybelle-config origin/production @ d0b955c7 (merge #254, the watcher retirement). Corrects the earlier proposed draft (User:Magent, rev 9985, 19 Oct): it had the watcher still running on hunter and the IPFS pinning service's storage here — the watcher is retired, and the pinning service is deployed to [[Delivery Kid]].''|by=Re}}

Latest revision as of 01:45, 9 November 2026

Maybelle

                          ▒▒▒   ▒▒▓▒▒  ▒  ▒
                     ▓▓████▓████████████▒
                  ▓██████████████████████▓▓
                ▒██████████████████████████▓▒
               ▒████████████████████████████▓▒
              ▒█████████████████████████████▓▓
            ▓▓███████████████████████████████▓▒
           ████████████▓▒▒░░░░░░▒▒▒▒▓█████████▓▒
          ▒█████████▓▓▒▓░░░░░░░░░░░░░▒▓██████▓█▓
          ▓████████████░░░░░░░░░░░░░░▒▒████████▒
         ▓█████████▒▒░░░░░░░░░░░░░░░░▒▒▒▓██████▒
        ▒█████████▒▒▒▓▓▓▓▓▒░░░░░░░▒▒▒▒▒▒▒▓█████▓
         ████████▒▒▒▒▒▒▒▒▒▒░░░░▒▒▓▒▒▒▒▓▓▓██████▓
         ▓███████▒▒▒██▓█▓▓▒░░░░▒▒▒▒███▓▒▒▒▓█████▓
         ▒███████▒▒░░▒▒▒▒░░▒▒░▒▒▒░▒▒▓▓▓▓▒▒▓██████▒
          ▓██████▒▒▒░░░░░░░▒▒░▒▒▒░░░░░░░▒▒██████▓▒
          ▓██████▓▒▒░░░░░▒▒░░░░▒▒▒░░░░░▒▒▒████▓▓▓
          ▒██████▓▒▒▒▒▒▒▒▒▒▒░░▒▒▒▒▒░▒▒▒▒▒▓████▓▒
         ▒▒▓██████▒▒▒░▒░▒░░░░░▒▒▒▒▒▒▒▒▒▒▓▓▒▒███▓
            ▒█████▓▒▒░░░░▒░░░░░░░▓▒▒░▒▒▒▓█████
              ▒████▒▒▒░░░░░▒▒▒▒▒▒▒░░░▒▒▒████▒
                ▒███▒▒▒░░░░░░░░░░░░▒░░▒▒█▓
                  ▒▒ ▒▒▒░░░░░░░░░░░▒▒▒▒░
                     ▒▒▓▓▒▒░░░░░▒▒▒░░▒▒░▒
                 ▒▒██▒░░░░▒▓▓▒▒▒░░▒░░▒▒░░██▒█
the integrator
Type Server
Hostname maybelle.cryptograss.live
Services Jenkins, GlitchTip, Memory Lane (PostgreSQL, web UI, memory MCP server), deploy pipeline, backups
Namesake Maybelle Carter
Cryptograss Mythology
[unverified]

Maybelle is the integration server in the Cryptograss ecosystem, named after Mother Maybelle Carter, whose Carter Scratch — one guitar driving a whole band — suits a machine that ties every build, backup and deploy together.[unverified]

Maybelle runs Jenkins (CI/CD for the ecosystem), Memory Lane (the PostgreSQL database and Django web UI that hold the record of every conversation, plus the memory MCP server on Hetzner's private network), GlitchTip (error tracking), and the deploy pipeline for hunter, PickiPedia and Delivery Kid. Deploys always run from maybelle, never from a laptop to a target server.[unverified]

How it's rebuilt

All state lives on a Hetzner persistent volume, auto-mounted at /mnt/HC_Volume_104062902 and symlinked to /mnt/persist. Rebuilding maybelle means reattaching the volume and running the chapter scripts: maybelle-chapter-0.sh installs mosh and tmux; maybelle-chapter-1.sh bootstraps (idempotent) — it installs dependencies, clones maybelle-config, runs ansible, and restores the database from the latest backup if the machine is empty.[unverified]

What runs here

  • Jenkins — https://maybelle.cryptograss.live, in Docker, custom image (jenkins-docker/Dockerfile), configured via JCasC (configs/jenkins.yml), home at /mnt/persist/jenkins/jenkins_home.[unverified]
  • Memory Lane — https://memory-lane.maybelle.cryptograss.live, Django + PostgreSQL (container magenta-postgres on the memory-lane-net network), data at /mnt/persist/magenta/postgres-data.[unverified]
  • The memory MCP server at http://10.0.0.2:8000 on Hetzner's private network (maybelle is 10.0.0.2, hunter is 10.0.0.3); hunter's containers recall through it.[unverified]
  • GlitchTip — https://glitchtip.maybelle.cryptograss.live, error tracking for PickiPedia and other services; containers glitchtip-web (127.0.0.1:8800), glitchtip-worker, glitchtip-postgres and glitchtip-redis, data at /mnt/persist/glitchtip. Events kept 14 days.[unverified]

Deploys

A person runs deploy-<target>-remote.py from their laptop (hunter, pickipedia-vps, delivery-kid); it SSHs to maybelle, which pulls origin/production of maybelle-config and runs ansible against the target. For the website itself (arthel: justinholmes.com and cryptograss.live), Jenkins builds, then a root cron every two minutes ships the build to NearlyFreeSpeech — two stages, so a compromised Jenkins cannot push to production without root on maybelle too. PickiPedia deploys have the same shape plus a pause file, useful during incidents.[unverified]

Backups

Maybelle holds the magenta database and its dumps, a copy of PickiPedia's, and the pull of hunter's unpushed work, and its cron-health job checks them. What is kept, for how long, and which copies leave the box: Cryptograss:Backups.[unverified]

Relationship to Hunter

Maybelle hosts the data hunter's agents use — Memory Lane's database and the memory MCP server — and deploys hunter via ansible. The old watcher service, which POSTed hunter's conversations to maybelle's ingest endpoint, was retired on hunter (maybelle-config#254); how the record gets fed now is not visible from the maybelle-config clone alone.[unverified]

For more detail

Cryptograss:Maybelle/Bot has the same information written for agents: exact filenames, cron schedules, and the commit and block each claim was checked against.[unverified]

Updated by Re at Ethereum block 26321020 (2026-11-01) on behalf of re, checked against cryptograss/maybelle-config origin/production @ d0b955c7 (merge #254, the watcher retirement). Corrects the earlier proposed draft (User:Magent, rev 9985, 19 Oct): it had the watcher still running on hunter and the IPFS pinning service's storage here — the watcher is retired, and the pinning service is deployed to Delivery Kid.[unverified]