🛠️ 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.