# Updating the AritmoLab presentation Last confirmed by the user: 2026-09-20, after deploying commit `5217c574`. The user reported both the presentation and presenter console working. This is the static presentation deployment, separate from the ThothII application stack. ## Locations - Local worktree: `/Users/mp/projects/ThothII-presentazione`. - Source: `presentation/deck/` and `presentation/presenter/`. - Git remote: `origin`, `https://git.tylconsulting.it/mptyl/ThothII.git`. - Publication branch: `feat/ai-etl-presentation`. - Remote checkout: `/var/www/aritmolab/presentation`. Presentation: ```text https://aritmolab.policlinicosandonato.it/presentation/ ``` Presenter console: ```text https://aritmolab.policlinicosandonato.it/presentation/presenter/ ``` Give these URLs as copyable plain text when providing instructions: the user reported difficulty clicking Markdown links. ## Routine update 1. In the local worktree, review and validate the requested presentation changes, then commit and push the intended files to `origin/feat/ai-etl-presentation`. Include new images, styles, scripts and presenter files. A remote pull cannot receive changes that remain uncommitted or unpushed. Leave unrelated changes alone. 2. The user connects to the remote server and runs: ```bash cd /var/www/aritmolab/presentation git branch --show-current git status --short ``` Continue only when the branch is `feat/ai-etl-presentation` and there are no unexpected local changes. If either differs, inspect before updating; do not reset, discard files or merge the presentation branch into another branch. ```bash git pull --ff-only origin feat/ai-etl-presentation git log -1 --oneline ``` 3. Refresh both browser windows. Static responses advertise `Cache-Control: public, max-age=300`, so a browser may reuse assets for five minutes. Use a hard refresh if the old version remains visible; bump asset query versions when changing cached JavaScript or CSS. 4. When network access is available, verify the expected version at both URLs, including screenshots and synchronization of presenter and audience popups. Distinguish a successful Git push from a completed remote deployment. Changes to slides, notes, images, CSS and JavaScript need no build, application restart or Nginx reload. A reload is necessary only if Nginx configuration changes. ## Remote access The site was reachable from the user's Mac while connected to the VPN. Do not use SSH tunnels for this deployment. A non-interactive direct SSH attempt on 2026-09-20 failed authentication. The user offered an authenticated SSH session inside VS Code, then chose to execute the remote commands personally. The normal workflow is to push locally and provide the remote pull command to the user; do not assume autonomous remote access or ask for passwords in chat. ## Nginx routing already configured The existing `/presentation` route redirects to `/presentation/`. The user supplied the original deck alias and subsequently confirmed successful setup of the two additional routes for the console: | URL prefix | Filesystem alias | | --- | --- | | `/presentation/` | `/var/www/aritmolab/presentation/presentation/deck/` | | `/presentation/deck/` | `/var/www/aritmolab/presentation/presentation/deck/` | | `/presentation/presenter/` | `/var/www/aritmolab/presentation/presentation/presenter/` | These are sibling `location ^~` blocks within the site's `server` block. The specific `deck/` route supports the console's relative links to fonts and slide iframes. The configuration filename was not recorded. The presentation is intentionally public static content, bypassing Django and Authentik. Preserve its existing routing and protections: directory listings off, `index index.html`, GET/HEAD only, five-minute cache, `nosniff`, `SAMEORIGIN`, and `noindex, nofollow, noarchive`. Do not expose the entire repository or change unrelated application routes. Only if routing needs diagnosis: ```bash sudo nginx -T 2>/dev/null | grep -n -A 12 -B 3 '/presentation' ``` Only after an intentional configuration edit: ```bash sudo nginx -t && sudo systemctl reload nginx ```