chore: interne Host-Adresse durch generischen Hostnamen ersetzt
Ersetzt die private LAN-IP des Jetson durch jetson.local in Doku, Shell-Skripten, .env.example und Docstrings. Funktional betroffen ist nur ein os.environ.setdefault-Fallback im Spike; gesetzte Env-Vars (OLLAMA_BASE_URL, GROBID_URL) haben weiterhin Vorrang. uv.lock bleibt unveraendert (enthaelt Versionsnummern, keine Adressen). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -6,8 +6,8 @@ DONE; R-E deferred). This file is only the **loose ends**.
|
||||
|
||||
## 1. ✅ RESOLVED — Jetson is online (the tunnel had dropped, not the host)
|
||||
- What looked like the Jetson going offline was the **SSH tunnel** breaking, not the
|
||||
host. The Jetson (`192.168.178.103`) is online. Re-open the tunnel with keepalive:
|
||||
`ssh -o ServerAliveInterval=15 -f -N -L 5433:localhost:5432 alfred@192.168.178.103`.
|
||||
host. The Jetson (`jetson.local`) is online. Re-open the tunnel with keepalive:
|
||||
`ssh -o ServerAliveInterval=15 -f -N -L 5433:localhost:5432 alfred@jetson.local`.
|
||||
Better still: run long ops in tmux-on-Jetson (item #4) to avoid the tunnel entirely.
|
||||
|
||||
## 2. ✅ DONE — R-F accent re-clean
|
||||
|
||||
@@ -30,7 +30,7 @@ incomplete, or unrepresentative data. This document is that second axis — a
|
||||
|
||||
- **Live DB:** Jetson PostgreSQL via an SSH tunnel (open it first):
|
||||
```
|
||||
ssh -f -N -L 5433:localhost:5432 alfred@192.168.178.103
|
||||
ssh -f -N -L 5433:localhost:5432 alfred@jetson.local
|
||||
```
|
||||
- **Credentials:** `.env.jetson-ingest` (gitignored) holds `DATABASE_URL`
|
||||
(`postgresql://researcher:…@localhost:5433/papers`). The `researcher` role is
|
||||
@@ -377,7 +377,7 @@ is self-contained so a cold session can pick it up.
|
||||
last 2/29.
|
||||
- **How:** no new code — ingest already merges + dedups `api_citations +
|
||||
pdf_citations` ([codex/ingest.py:288](../../codex/ingest.py)). GROBID server is
|
||||
already configured (`GROBID_URL=http://192.168.178.103:8070` in
|
||||
already configured (`GROBID_URL=http://jetson.local:8070` in
|
||||
`.env.jetson-ingest`). Download free arXiv PDFs, re-ingest with `source_path`.
|
||||
- **Acceptance:** the 2 theses gain references; published papers gain
|
||||
GROBID-parsed refs beyond OpenAlex/S2 coverage; citing coverage 27/29 → 29/29.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# GROBID on the Jetson (aarch64) — deploy runbook
|
||||
|
||||
**Status:** ACTIVE
|
||||
**Host:** `alfred@192.168.178.103` — NVIDIA Jetson Orin Nano (aarch64, 8 GB RAM, 8 GB swap, 6 cores)
|
||||
**Host:** `alfred@jetson.local` — NVIDIA Jetson Orin Nano (aarch64, 8 GB RAM, 8 GB swap, 6 cores)
|
||||
**Service:** GROBID reference extraction for roadmap **R-A** (`scripts/ra_grobid_backfill.py`)
|
||||
**Last updated:** 2026-06-17
|
||||
**Verified:** 2026-06-17 — `grobid/grobid:0.9.0-crf` pulled as native `arm64`, `/api/isalive`→`true`,
|
||||
@@ -53,7 +53,7 @@ The SSH user `alfred` is in the `sudo` group but **not** the `docker` group, so
|
||||
once (requires the sudo password):
|
||||
|
||||
```bash
|
||||
ssh alfred@192.168.178.103
|
||||
ssh alfred@jetson.local
|
||||
sudo usermod -aG docker alfred # add to docker group (persistent)
|
||||
```
|
||||
|
||||
@@ -62,7 +62,7 @@ only re-evaluated at login — an existing session/`ssh` won't see it; a *new*
|
||||
`ssh` connection will):
|
||||
|
||||
```bash
|
||||
exit && ssh alfred@192.168.178.103
|
||||
exit && ssh alfred@jetson.local
|
||||
docker ps # should now work without sudo
|
||||
```
|
||||
|
||||
@@ -94,9 +94,9 @@ the whole stack (that would try to start a second `papers-db`).
|
||||
|
||||
```bash
|
||||
# copy this repo's compose file to the Jetson (first time only)
|
||||
scp infra/docker-compose.yml infra/schema.sql alfred@192.168.178.103:~/codex-infra/
|
||||
scp infra/docker-compose.yml infra/schema.sql alfred@jetson.local:~/codex-infra/
|
||||
|
||||
ssh alfred@192.168.178.103
|
||||
ssh alfred@jetson.local
|
||||
cd ~/codex-infra
|
||||
docker compose up -d grobid # pulls grobid/grobid:0.9.0-crf (arm64), starts papers-grobid
|
||||
docker compose logs -f grobid # wait for "Started ... in N seconds" (model load ~20–40s)
|
||||
@@ -116,14 +116,14 @@ nothing else in the stack uses it. Idle it still holds ~3.5 GB, so on the 8 GB J
|
||||
keep it stopped and start it only for an R-A run:
|
||||
|
||||
```bash
|
||||
ssh alfred@192.168.178.103 'docker start papers-grobid' # ~30s model load
|
||||
ssh alfred@jetson.local 'docker start papers-grobid' # ~30s model load
|
||||
curl -s --retry 30 --retry-delay 2 --retry-connrefused \
|
||||
http://192.168.178.103:8070/api/isalive # wait for: true
|
||||
http://jetson.local:8070/api/isalive # wait for: true
|
||||
|
||||
# ... run R-A from the Mac ...
|
||||
PYTHONPATH=. python scripts/ra_grobid_backfill.py --write
|
||||
|
||||
ssh alfred@192.168.178.103 'docker stop papers-grobid' # reclaim ~3.5 GB
|
||||
ssh alfred@jetson.local 'docker stop papers-grobid' # reclaim ~3.5 GB
|
||||
```
|
||||
|
||||
First-time deploy uses `docker compose up -d grobid` (above); afterwards the
|
||||
@@ -144,7 +144,7 @@ container persists, so `docker start/stop papers-grobid` is all you need.
|
||||
curl -s http://localhost:8070/api/isalive # => true
|
||||
|
||||
# from the Mac (LAN) — same value the corpus' GROBID_URL points at
|
||||
curl -s http://192.168.178.103:8070/api/isalive # => true
|
||||
curl -s http://jetson.local:8070/api/isalive # => true
|
||||
```
|
||||
|
||||
Anything other than `true` (timeout / connection refused / `false`) means the
|
||||
@@ -155,14 +155,14 @@ holds port 8070.
|
||||
|
||||
## End-to-end reference-extraction check + running R-A
|
||||
|
||||
With `GROBID_URL=http://192.168.178.103:8070` (already set in `.env.jetson-ingest`):
|
||||
With `GROBID_URL=http://jetson.local:8070` (already set in `.env.jetson-ingest`):
|
||||
|
||||
```bash
|
||||
# one PDF, references only — should print N>0 parsed references
|
||||
PYTHONPATH=. python - <<'PY'
|
||||
from codex.parsing.grobid import extract_references
|
||||
refs = extract_references("/Users/tarikmoussa/Desktop/ConformalLabpp/papers/lutz-2024-thesis.pdf",
|
||||
grobid_url="http://192.168.178.103:8070")
|
||||
grobid_url="http://jetson.local:8070")
|
||||
print(f"{len(refs)} references; first DOI/arXiv:",
|
||||
next(((r['doi'], r['arxiv_id']) for r in refs if r['doi'] or r['arxiv_id']), None))
|
||||
PY
|
||||
@@ -172,7 +172,7 @@ Then run the references-only backfill (DB tunnel up — see
|
||||
`docs/audit/DATA-QUALITY-2026-06-15.md`):
|
||||
|
||||
```bash
|
||||
ssh -N -L 5433:localhost:5432 alfred@192.168.178.103 & # DB tunnel
|
||||
ssh -N -L 5433:localhost:5432 alfred@jetson.local & # DB tunnel
|
||||
cp .env.jetson-ingest .env
|
||||
PYTHONPATH=. python scripts/ra_grobid_backfill.py --zero-edge-only # dry-run first
|
||||
PYTHONPATH=. python scripts/ra_grobid_backfill.py --write # apply
|
||||
|
||||
@@ -6,7 +6,7 @@ but has a known workaround (short/idempotent ops).
|
||||
## Problem (observed)
|
||||
|
||||
Live data ops run on the **Mac** and reach the Jetson Postgres through an SSH
|
||||
port-forward tunnel (`ssh -f -N -L 5433:localhost:5432 alfred@192.168.178.103`,
|
||||
port-forward tunnel (`ssh -f -N -L 5433:localhost:5432 alfred@jetson.local`,
|
||||
`DATABASE_URL` → `localhost:5433`). During the R-A / R-C / R-F work this tunnel
|
||||
**dropped repeatedly mid-run**: any operation longer than a few minutes (corpus
|
||||
re-ingest, the bge-m3 embed loop, the GROBID sweep) had a high chance of failing
|
||||
|
||||
Reference in New Issue
Block a user