| 145 |
145 |
|
# binary can satisfy between restarts. The node binds HOST=127.0.0.1 PORT=8080
|
| 146 |
146 |
|
# (/etc/mnw/makenotwork.env); verified serving 200 on 2026-07-21.
|
| 147 |
147 |
|
health_url = "http://127.0.0.1:8080/health"
|
| 148 |
|
- |
# Companion: multithreaded (the forum) is built from this same sha and installed
|
| 149 |
|
- |
# after the server is up. It is on testnot FIRST, unlike mnw-cli, because this is
|
| 150 |
|
- |
# the tier where the 48h burn-in runs — a forum that fails to boot on the new
|
| 151 |
|
- |
# binary should fail here, not on prod. Needs the node-side wrapper + sudoers
|
| 152 |
|
- |
# grant (deploy/install-companion.sh, deploy/mnw-companion.sudoers) and an
|
| 153 |
|
- |
# existing multithreaded.service; see multithreaded/deploy/README.md.
|
| 154 |
|
- |
[[tier.node.companion]]
|
| 155 |
|
- |
name = "multithreaded"
|
| 156 |
|
- |
install_path = "/opt/multithreaded/multithreaded"
|
| 157 |
|
- |
service_name = "multithreaded.service"
|
|
148 |
+ |
# NO multithreaded companion here, deliberately. Checked on the box 2026-08-03:
|
|
149 |
+ |
# testnot-1 has no mt at all — no multithreaded.service, no /opt/multithreaded,
|
|
150 |
+ |
# no database, and the deploy user's sudo grant covers only the three
|
|
151 |
+ |
# makenotwork.service verbs. A companion block would therefore fail the install
|
|
152 |
+ |
# step of every promote, and it fails AFTER the symlink swap, which is the
|
|
153 |
+ |
# expensive half of the failure.
|
|
154 |
+ |
#
|
|
155 |
+ |
# Standing an mt instance up here is real work with real secrets (role, database,
|
|
156 |
+ |
# .env, unit, routing), not a config line, and it is not a prerequisite for
|
|
157 |
+ |
# shipping mt to prod: mt is still built and gated on the host tier by the same
|
|
158 |
+ |
# sha, and testnot still burns in the server. Tracked separately.
|
| 158 |
159 |
|
|
| 159 |
160 |
|
# ---- B: prod-1 ----
|
| 160 |
161 |
|
[[tier]]
|
| 196 |
197 |
|
# Companion: multithreaded, same sha as the server, same host. This is what
|
| 197 |
198 |
|
# retires multithreaded/deploy/deploy-hetzner.sh (cross-compiled on macOS, scp'd
|
| 198 |
199 |
|
# to root@, 41 commits behind when found). mt now rides the whole ladder — native
|
| 199 |
|
- |
# build on fw13, the migration_dry_run gate against its own dump, burn-in on
|
| 200 |
|
- |
# testnot, node_health — instead of a laptop and an scp. Design:
|
| 201 |
|
- |
# wiki sando-mt-pom-pipelines.
|
|
200 |
+ |
# build on fw13, the migration_dry_run gate against its own dump, the test and
|
|
201 |
+ |
# lint gates, and the server's burn-in on testnot — instead of a laptop and an
|
|
202 |
+ |
# scp. Design: wiki sando-mt-pom-pipelines.
|
|
203 |
+ |
#
|
|
204 |
+ |
# prod-1 is the only node that installs it, because it is the only node that runs
|
|
205 |
+ |
# mt (see the note on testnot-1 above). It already has the wrapper and the
|
|
206 |
+ |
# sudoers grant, from mnw-cli.
|
| 202 |
207 |
|
[[tier.node.companion]]
|
| 203 |
208 |
|
name = "multithreaded"
|
| 204 |
209 |
|
install_path = "/opt/multithreaded/multithreaded"
|