Rewrite docs/digital-factory.md against the fleet that already exists at
git.b4l.co.th/B4L/cnx-network-clan instead of a plant-only clan:
- The plant is one more site: gw-lpn-1 from the cnx.router module, plant
machines in the same inventory, reached over the existing ZeroTier mesh
(no VPS, no moon, no port forwards).
- Fleet pieces reused as-is: control for host metrics, journals and host
alerts; ns1/ns2 for the gateway wildcard cert; web01 as the public
proxy for the customer portal; clan borgbackup with a plant server.
- Process time series move from TimescaleDB to a plant-local
VictoriaMetrics (same modules and rules as control); PostgreSQL keeps
everything with identity. Object storage dropped for ZFS datasets.
- VLAN table on the fleet addressing convention (siteId 3 assumed, ids
above 40); OT segments as dual-homed islands behind the collectors;
stations reach the app only through the gateway Caddy proxy.
- New section listing every file that changes in the clan repo, the
modules/vinyl/* to write, and three router-module extensions (NTP
serving, static VLANs, second WAN).
- Gaps the plant closes for the fleet: Alertmanager delivery, off-site
backup destination, TSDB backup.
- Repository layout decided: infra in cnx-network-clan, app in
cnx-factory as a flake input, this repo stays documents.
README bullet updated to match.
New docs/digital-factory.md: every system needed for environmental,
machine, QC and genealogy data to land in one database keyed to one
record identity. Standing decision: all services run on NixOS machines
declared and deployed as a single clan.lol inventory (mesh, backups,
host monitoring, secrets from clan services).
Covers machine list and roles, VLAN zoning, Telegraf/MQTT acquisition
source by source with the RFQ clause for each, environment sensor zones,
QC instrument integration paths, the factory application modules and
entities, alerting tiers, backup and retention, security, procurement
clauses, build order aligned with the roadmap phases, rough cost and
open questions.
README index and layout tree updated; roadmap item 17 and the
traceability spec link to the new document.
The docs and the plant page had labelling as a finishing step after the
press. On a record press the bottom label, the cake and the top label go
in between the stampers every cycle and the mold bonds the paper into the
vinyl; the oven only pre-dries them. Corrected everywhere the process is
described:
- process-flow.md: labels are a parallel input to pressing with their own
row (print inspection, oven, lot per cycle); stage 6 loads label, cake,
label; stage 7 is trim, sleeve, shrink
- process-flow.drawio (+ regenerated png/pdf): label input now feeds
stage 6, not stage 7
- README vision list and the business plan source (regenerated docx/pdf):
pressing paragraph explains the pressed-in label, finishing no longer
claims to label
- plant-operation.html: label dry oven station feeds two label discs
into the press with every cake, the cake in the mold shows its labels,
the cycle log records the label lot, finishing is sleeve + shrink
docs/plant-operation.html: one self-contained static page showing the
whole plant running, from PVC intake and the material lab gate through
extruder, press cycle (load/close/steam/cool/open/eject), trimmer, 100%
optical inspection, sampled audio comparison, finishing, packaging
(matrix code vs barcode) and fulfillment. The metal path (audio intake,
mastering, cutting, silvering, father/mother/stamper, stamper prep) runs
above with the three artist gates; utilities (steam, cooling, air,
hydraulics, grinder/regrind, energy, traceability, HVAC) below with
live-looking tags.
Numbers are taken from the repo (Newbilt site requirements, scale.md,
quality-automation.md, process-flow.md). Every station is clickable for
what happens there and the checks that gate it. Two demo buttons show a
steam pressure dip holding the press and a new PVC lot held by the lab
until a test pressing releases it. README links the page.
Leased land instead of purchase, in-house cassette duplication, CD-R
duplication with CD replication shown as a separate investor decision,
Ploy Printing as packaging partner and intended co-investor, and a
dedicated section on traceability, metrology, QC and efficiency.
Currency
- Base currency moves from EUR to USD and THB throughout. Rates at
5 Aug 2026: 1 USD = 33 THB, 1 EUR = 1.155 USD, 1 GBP = 1.35 USD.
EUR/THB lands at ~38, so existing THB research needed no change.
- Vendor quotes keep their original currency with a USD/THB equivalent
alongside, so they stay checkable against the source PDFs.
- Full vision ~4.7-8.9M USD; phased entry ~1.7-2.9M USD.
New documents
- production-timeline.md: order turnaround stage by stage. Launch
8-14 weeks, mature 5-10, repress 2-3. Quantifies the in-house
galvanics turnaround claim the repo had asserted without a number,
and flags artwork as an unmodelled fourth approval gate.
- project-timeline.md: calendar to first paying release, ~Q4 2028.
Critical path is BOI certificate to press order to build to
commissioning. Two findings: Newbilt build time is absent from the
repo yet carries ~40% of the schedule, and the BOI rule may be
over-serialised since duty exemption attaches at importation rather
than at contract signature.
First market data (ResurRec, Bangkok)
- Invoice-derived prices, a factory tour, and a confirmed fleet of one
Newbilt Classic 12" automatic plus one semi-automatic.
- Price ladder recorded at 300/500/1000-3000/3000+ units. Decomposes
to roughly 34-50k THB fixed per title and 535-780 THB variable per
unit, which is 4-7x the price this model assumes.
- The incumbent presses 230-350k records/yr but buys every stamper as
an import. That single constraint plausibly explains their 150-unit
floor, their flat discount ladder and their large-run lead time, and
it is what an in-house galvanics line attacks. Logged as an open
question on whether galvanics should move from phase 5 to phase 1.
- Inferences are marked as inferences; the whole set is one buyer and
one plant, and the model is deliberately left unrebased until a
second data point exists.
Corrections
- Gross margin arithmetic did not follow from its own inputs. Restated
as ~1.95 USD at the midpoint with the 0.75-3.15 spread shown; the
previous "40 to 55%" was not supported.
- Direct cost low total 1.50 to 1.45 USD; contingency THB high 40M
to 38M.
- README indexes the construction RFQ, which was missing.
Three current gates (market validation, BOI, land title check) through
quotes, commitment, build, launch, and revenue-gated expansion; import
window correctly attributed to certificate issuance
Own land yields ~80-135 t/yr vs ~350-400 t/yr mature demand; forestry
classification check gates everything; staged electric-first path with
coppice planted now for the expansion-phase biomass boiler
Group B base activity (plastics) with non-tax package and machinery duty
exemption; CIT value engineered via solar/BESS, smart-and-sustainable
automation, and R&D merit measures; NEC/Lamphun regional angle; BOI
approval sequenced ahead of incorporation and machinery orders
- docs/process-flow.md: mermaid chart plus stage table of every check and
the three artist approval gates, from audio intake to fulfillment
- docs/process-flow.drawio with PNG and PDF exports
- pressing-line.md: floor must carry multiple tons per m2 in machine areas
- README: process-flow entry in document index and layout tree
- README: vendor sections for Agnew Analog (lathe), Plating Power/Digital
Matrix (galvanics), Sibert (stamper prep), Stamper Discs (bridge stamper
service), Pheenix Alpha (automated presses)
- docs/suppliers/equipment-suppliers.md: full needs list and supplier map
across all nine areas of the production chain