User Tools

Site Tools


syntheses:vps-monorepo-structure

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

syntheses:vps-monorepo-structure [16/07/2026 03:54] – created - external edit 127.0.0.1syntheses:vps-monorepo-structure [15/10/2026 05:25] (current) – removed - external edit (Unknown date) 127.0.0.1
Line 1: Line 1:
-====== VPS Monorepo - Structure Overview ====== 
- 
-===== Notes ===== 
- 
- 
- 
-===== Summary ===== 
- 
-====== VPS Monorepo - Structure Overview ====== 
- 
-===== Repository ===== 
- 
-  * **URL:** ''https://git.mammoth.com.au/vps/vps'' (project ID: 1) 
-  * **Namespace:** ''vps'' group 
-  * **Default branch:** ''main'' 
-  * **Description:** All first-party software for BinaryLane / Mammoth Cloud services 
-  * **Access:** Requires Mammoth WireGuard VPN + GitLab PAT 
-  * **API base:** ''https://git.mammoth.com.au/api/v4/'' (use ''--resolve git.mammoth.com.au:443:10.240.0.211'' from this host) 
- 
-===== Monorepo Layout ===== 
- 
-The repo follows a two-level ''category/component/'' structure: 
- 
-<code> 
-vps/vps/ 
-├── facility/         — Satellite services (per-datacentre, not core VPS) 
-│   ├── backupproxy   — .NET backup download proxy 
-│   ├── looking-glass — PHP BGP/traceroute tool (modified third-party) 
-│   └── rescueproxy   — .NET VNC access proxy 
-├── infrastructure/   — Physical device software (compute hosts, routers, switches) 
-│   ├── backup        — SSH-invoked backup scripts (called by HostDaemon) 
-│   ├── compute       — Programs deployed to compute host nodes 
-│   ├── dynamic-routing — Rust routing application 
-│   ├── gbmt          — ECC memory stress testing (memtester + geekbench) 
-│   ├── isobuilder    — ISO build tooling 
-│   ├── neigh-proxy   — NDP/ARP proxy 
-│   ├── qemu          — QEMU configuration/tooling 
-│   └── third-party   — Third-party integration code 
-├── ops/              — Service maintenance and operations 
-│   ├── ansible       — Ansible playbooks 
-│   ├── bitwarden-backup — Bitwarden backup automation 
-│   ├── butler        — Butler bot 
-│   ├── cicd          — CI/CD tooling 
-│   ├── icinga        — Monitoring 
-│   ├── morbo         — ??? 
-│   ├── scripts       — Ops scripts 
-│   ├── tinydns2bind  — DNS conversion 
-│   ├── trello2gitlab — Migration tool 
-│   └── tron          — IPMI host interaction (Python) 
-├── product/          — Core customer-facing functionality 
-│   ├── base-image-test 
-│   ├── cli-based-tests — E2E tests against WebAPI 
-│   ├── e2e-tests 
-│   ├── forks         — Third-party forks with modifications 
-│   ├── guest-agent 
-│   ├── history 
-│   ├── mentos 
-│   ├── rat 
-│   ├── unused-code-remover 
-│   ├── vmbuilder       — VM image builder 
-│   └── website/      — Main .NET panel/API solution (see below) 
-├── team/             — Staff-only tools 
-└── scripts/          — General-purpose scripts 
-</code> 
- 
-===== Separate Repo: `vps/compute` (project ID: 22) ===== 
- 
-A separate repository for compute host-side programs: 
- 
-<code> 
-vps/compute/ 
-├── hostdaemon/       — Daemon on compute hosts 
-├── ovmf/             — UEFI firmware 
-├── power-limiter/    — Power management 
-├── qemu-network/     — iptables/netns firewall (see also vps/qemu-network) 
-├── routed/           — Routing daemon 
-├── scripts/          — Compute host scripts 
-├── services/         — Host services 
-├── smtbalance/       — SMTP balancing 
-├── xm/               — Xen configuration 
-├── xmconfig/         — Xen config tools 
-└── xm-for-kvm/       — Xen-to-KVM migration tools 
-</code> 
- 
-===== Subgroup: `vps/ops` (group ID: 67) ===== 
- 
-Additional ops projects not in the main monorepo: 
- 
-^ Project ^ Path ^ Description ^ 
-| 65 | vps/ops/ops | Internal ops tooling | 
-| 64 | vps/ops/live-rescue | Live rescue operations | 
-| 57 | vps/ops/ubuntu-preseed | Ubuntu preseed configs | 
-| 54 | vps/ops/tinydns | TinyDNS configuration | 
-| 52 | vps/ops/icinga | Host monitoring scripts | 
-| 51 | vps/ops/tasks | Task management | 
-| 47 | vps/ops/tron | IPMI host interaction (Python) | 
-| 46 | vps/ops/gbmt | Memory fault testing | 
-| 2 | vps/ops/ansible | Ansible playbooks | 
- 
-===== Subgroup: `vps/forks` (group ID: 70) ===== 
- 
-Third-party forks with modifications: 
- 
-^ Project ^ Path ^ Description ^ 
-| 70 | vps/forks/ext-typescript-generator | TypeScript code generator | 
-| 67 | vps/forks/castle-1.0.3-mono | Castle .NET on Mono | 
-| 49 | vps/forks/openapi-python-client | OpenAPI Python client | 
-| 42 | vps/forks/moin2gitwiki | Wiki migration tool | 
-| 17 | vps/forks/maxmind.minfraud | PayPal MinFraud client | 
-| 14 | vps/forks/cassette | .NET web app cassette manager | 
-| 12 | vps/forks/sdk-core-dotnet | PayPal Core Library for .NET | 
- 
-===== All VPS Group Projects ===== 
- 
-^ ID ^ Path ^ Description ^ 
-| 73 | vps/binarylane-cli-dotnet | .NET CLI | 
-| 71 | vps/bladmin-cli | Admin CLI | 
-| 61 | vps/dynamic_rs | Dynamic reservation logic | 
-| 58 | vps/cicd | CI/CD | 
-| 72 | vps/ndp-responder-rs | NDP responder (Rust) | 
-| 55 | vps/cli-based-tests | E2E tests against WebAPI | 
-| 50 | vps/butler | Butler bot | 
-| 53 | vps/website-format | Website formatting | 
-| 41 | vps/python-binarylane | Python API client | 
-| 69 | vps/python-blcli | Python CLI | 
-| 34 | vps/bootstrap | Linux desktop for VPS dev | 
-| 33 | vps/backup | Backup host programs | 
-| 25 | vps/vmbuilder | Image builder | 
-| 31 | vps/router | Router configs/scripts | 
-| 30 | vps/panel-visual-regression-tests | Visual regression tests | 
-| 22 | vps/compute | Compute host programs | 
-| 20 | vps/qemu-network | iptables/netns firewall | 
-| 63 | vps/birdpeers | BIRD peer management | 
-| 9 | vps/mpay | Payment processing | 
-| 6 | vps/rescue-proxy | Rescue proxy | 
-| 5 | vps/looking-glass | Network looking glass | 
-| 4 | vps/backupproxy | Backup download proxy | 
-| 1 | vps/vps | Main VPS monorepo | 
- 
-===== API Access Pattern ===== 
- 
-<code bash> 
-PAT=$(/root/.secrets/bw-get-secret.sh "Mammoth GitLab PAT" "pat") 
- 
-# List group projects 
-curl -sk --resolve git.mammoth.com.au:443:10.240.0.211 \ 
-  -H "PRIVATE-TOKEN: $PAT" \ 
-  "https://git.mammoth.com.au/api/v4/groups/vps/projects?per_page=100" 
- 
-# Read a file (base64-encoded content) 
-curl -sk --resolve git.mammoth.com.au:443:10.240.0.211 \ 
-  -H "PRIVATE-TOKEN: $PAT" \ 
-  "https://git.mammoth.com.au/api/v4/projects/22/repository/files/product%2Fwebsite%2FDomain%2FEntities%2FGuestFirewallRule.cs?ref=main" 
- 
-# List directory tree 
-curl -sk --resolve git.mammoth.com.au:443:10.240.0.211 \ 
-  -H "PRIVATE-TOKEN: $PAT" \ 
-  "https://git.mammoth.com.au/api/v4/projects/22/repository/tree?path=&per_page=100" 
-</code> 
- 
-===== Key Notes ===== 
- 
-  * Monorepo migration is still a work-in-progress — some projects live in separate repos 
-  * ''product/website/'' is the main .NET solution (MammothVps.slnx) 
-  * ''infrastructure/compute'' and ''vps/compute'' both contain compute host software 
-  * ''vps/qemu-network'' (project 20) is separate from ''infrastructure/qemu'' and ''vps/compute/qemu-network'' 
-  * Several projects are Rust-based (''vps/ndp-responder-rs'', ''vps/dynamic_rs'') 
-  * The ''vps/ops'' and ''vps/forks'' subgroups have their own GitLab groups with separate project IDs 
- 
-===== Related ===== 
- 
-==== Related Pages ==== 
- 
-  * [[binarylane-architecture-panels-customer-entry-points|BinaryLane Architecture - Panels & Customer Entry Points]] 
-  * [[customer-side-bug-finding-methodology|Customer-Side Bug Finding Methodology]] 
  
syntheses/vps-monorepo-structure.1784174059.txt.gz · Last modified: by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki