源文件:
09-test-site-node20.v4.sohophp.app.md# 09. Test Site: node20.v4.sohophp.app
This document records the second live reference site used to validate the toolkit.
# Site identity
- domain:
node20.v4.sohophp.app - Node version:
20 - selected port:
20101 - repo:
/srv/git/node20.v4.sohophp.app - site root:
/var/www/node20/node20.v4.sohophp.app - service:
node-site@node20.v4.sohophp.app.service - provisioning path:
bootstrap-node-site
# Files
- env metadata:
/etc/node-sites/node20.v4.sohophp.app.env - nginx vhost:
/etc/nginx/conf.d/node20.v4.sohophp.app.conf - shared env:
/var/www/node20/node20.v4.sohophp.app/shared/.env.local
# Verified behavior
The site has been verified to return:
- Node version
v20.20.2 - release cwd under
releases/<timestamp> - shared env value
SITE_GREETING=hello-from-bootstrap-node20 APP_URL=http://node20.v4.sohophp.appdeployed_by=bootstrap-node-site
# Example successful bootstrap command
sudo bootstrap-node-site \
--domain node20.v4.sohophp.app \
--node-version 20 \
--force \
--site-greeting hello-from-bootstrap-node20 \
--app-url http://node20.v4.sohophp.app
# Example local checks
curl -fsS http://127.0.0.1:20101/healthz
curl -fsS --resolve node20.v4.sohophp.app:80:127.0.0.1 http://node20.v4.sohophp.app/
systemctl status node-site@node20.v4.sohophp.app.service --no-pager
# Why this site matters
It proves the following chain works end-to-end for Node20 specifically:
- bootstrap-generated repo skeleton
- package-lock generation for
npm ci - release deploy
- shared env linking
- build env loading
- runtime env loading
- fnm version selection
- systemd startup
- Nginx reverse proxy over HTTP
# Notes
At verification time, this domain did not resolve publicly yet, so the reference validation used local host-header probing over HTTP rather than public DNS + HTTPS.