🛠️ Operations
- deployment:
- app_service:
- unit: user systemd service
elv3.service.
- working_directory:
/home/loca/dev/elv3.
- entrypoint:
build/index.js.
- environment_file:
/home/loca/dev/elv3/.env.
- credentials_file:
/home/loca/dev/elv3/creds.md.
- credential_policy: restricted file only; do not copy secrets into docs or chat.
- app_build:
- install:
npm ci from the app root.
- typecheck:
npm run check.
- production_build:
npm run build.
- expected_artifact:
/home/loca/dev/elv3/build/index.js.
- wiki_build:
- command:
bash /home/loca/dev/wikis/build.sh elv3.
- source_content:
/home/loca/dev/wikis/elv3/content.
- config:
/home/loca/dev/wikis/elv3/quartz.config.yaml.
- active_output:
/home/loca/dev/wikis/elv3/current.
- swap_pattern: build to a temporary dist directory, validate
index.html, then atomically retarget current.
- nginx:
- app_vhost:
/etc/nginx/sites-available/elv3.loca.zone.
- wiki_vhost:
/etc/nginx/sites-available/wiki.elv3.loca.zone.
- enabled_dir:
/etc/nginx/sites-enabled.
- app_proxy: public HTTPS to the private SvelteKit service.
- wiki_serving: static Quartz files served directly from the active
current symlink.
- wiki_try_files:
$uri, $uri.html, $uri/, then =404; never use an SPA fallback for Quartz.
- verification_ladder:
- app_service: confirm
elv3.service is active.
- app_public:
https://elv3.loca.zone/auth returns HTTP 200.
- app_auth: password POST reaches the app workspace and sets the auth cookie.
- app_api: authenticated
/api/voices?page_size=1 returns JSON with at least one voice.
- wiki_build:
/home/loca/dev/wikis/elv3/current/index.html exists.
- wiki_public:
https://wiki.elv3.loca.zone/ returns HTTP 200.
- portal: https://loca.zone lists both
elv3.loca.zone and wiki.elv3.loca.zone.
- update_flow:
- make source changes in
/home/loca/dev/elv3.
- run the narrow app checks first.
- rebuild and restart
elv3.service only after checks pass.
- update wiki pages only for operator-relevant behavior changes.
- run the wiki build script and verify the public wiki.
- regenerate the loca.zone portal after new vhosts are enabled.