Files
ThothII/docs/operations/presentation-publishing.md
T

106 lines
4.1 KiB
Markdown

# 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
```