# Setup workspace macchine LAN ## Scopo Questo runbook serve ad attivare rapidamente le altre macchine Linux della rete anche prima di avere Gitea ovunque. L obiettivo minimo e semplice: - tutti leggono gli stessi `docs/` - tutti trovano gli stessi `scripts/ai/` - ogni macchina ha uno spazio di lavoro locale coerente - il lavoro distribuito parte subito senza copie manuali sparse ## Scelta pratica consigliata Per la prima fase usare NFS. Motivo: - e gia dentro gli strumenti Linux base - non richiede dominio - funziona bene se hai uniformato utente e UID/GID tra le macchine - e sufficiente per condividere manuali, indici e piccoli script ## Layout consigliato ### Macchina capofila - nodo capofila: `192.168.0.200` - repository Day0 locale: `/home/michele/netgescon/netgescon-day0` - cartella LAN condivisa: `/srv/netgescon/shared-docs` Contenuto condiviso minimo: - `/srv/netgescon/shared-docs/docs` - `/srv/netgescon/shared-docs/scripts/ai` - `/srv/netgescon/shared-docs/exchange` - `/srv/netgescon/shared-docs/modules` ### Macchine client - mount condiviso: `/srv/netgescon/shared-docs` - workspace locale: `/home/$USER/netgescon-lan-workspace` Contenuto workspace locale minimo: - `docs -> /srv/netgescon/shared-docs/docs` - `scripts/ai -> /srv/netgescon/shared-docs/scripts/ai` - `exchange -> /srv/netgescon/shared-docs/exchange` - `modules/shared -> /srv/netgescon/shared-docs/modules` - `notes/` opzionale per appunti temporanei locali ## Procedura rapida ### 1. Preparare il server share Eseguire: ```bash bash bootstrap_docs_lan_share.sh server /home/michele/netgescon/netgescon-day0 192.168.0.0/24 /srv/netgescon/shared-docs "docs,scripts/ai,app,config,routes,resources,tests" ``` Lo script prepara: - la cartella `/srv/netgescon/shared-docs` - la copia aggiornata di `docs/` - la copia aggiornata di `scripts/ai/` - la cartella `/srv/netgescon/shared-docs/exchange` per messaggi, handoff e materiale - la cartella `/srv/netgescon/shared-docs/modules` per superfici di lavoro condivise - la riga NFS da inserire in `/etc/exports` - i comandi `exportfs` da lanciare con `sudo` ### 2. Abilitare davvero l export NFS sul server Eseguire sulla macchina capofila: ```bash sudo mkdir -p /srv/netgescon/shared-docs echo '/srv/netgescon/shared-docs 192.168.0.0/24(ro,sync,no_subtree_check)' | sudo tee /etc/exports.d/netgescon-docs.exports sudo exportfs -rav sudo systemctl enable --now nfs-server ``` Se serve scrittura dai client sostituire `ro` con `rw`, ma la scelta iniziale consigliata e `ro`. Se vuoi usare la share anche per lo scambio operativo tra agent, la variante consigliata e separare documentazione e scambio: ```bash echo '/srv/netgescon/shared-docs 192.168.0.0/24(ro,sync,no_subtree_check)' | sudo tee /etc/exports.d/netgescon-docs.exports echo '/srv/netgescon/shared-docs/exchange 192.168.0.0/24(rw,sync,no_subtree_check)' | sudo tee /etc/exports.d/netgescon-exchange.exports sudo exportfs -rav ``` ## 3. Preparare una macchina client Eseguire: ```bash bash bootstrap_docs_lan_share.sh client 192.168.0.200:/srv/netgescon/shared-docs /srv/netgescon/shared-docs /home/$USER/netgescon-lan-workspace ``` Lo script: - crea il mount point - stampa il comando `mount` - crea il workspace locale minimo - crea i symlink a `docs/` e `scripts/ai/` Poi completare con: ```bash sudo mount -t nfs 192.168.0.200:/srv/netgescon/shared-docs /srv/netgescon/shared-docs ``` Per rendere il mount persistente aggiungere una riga in `/etc/fstab`. Esempio: ```fstab 192.168.0.200:/srv/netgescon/shared-docs /srv/netgescon/shared-docs nfs defaults,_netdev 0 0 ``` Se monti anche la cartella di scambio in scrittura: ```bash sudo mkdir -p /srv/netgescon/shared-exchange sudo mount -t nfs 192.168.0.200:/srv/netgescon/shared-docs/exchange /srv/netgescon/shared-exchange ln -sfn /srv/netgescon/shared-exchange /home/$USER/netgescon-lan-workspace/exchange-rw ``` ## Struttura consigliata per la cartella exchange Dentro `/srv/netgescon/shared-docs/exchange` conviene usare da subito: - `handoff/` - `incoming/` - `outgoing/` - `messages/` - `artifacts/` Comandi iniziali sul server: ```bash sudo mkdir -p /srv/netgescon/shared-docs/exchange/{handoff,incoming,outgoing,messages,artifacts} sudo chown -R michele:michele /srv/netgescon/shared-docs ``` ## Struttura consigliata per i moduli condivisi Dentro `/srv/netgescon/shared-docs/modules` puoi iniziare a depositare: - `app/` - `config/` - `routes/` - `resources/` - `tests/` Questa cartella serve a distribuire rapidamente superfici di lavoro coerenti finche la rete non e ancora tutta su Gitea. ## Procedura operativa capofila Il nodo `192.168.0.200` fa tre cose: 1. aggiorna il repository Day0 autorevole 2. rigenera la share LAN con `bootstrap_docs_lan_share.sh server ...` 3. assegna ai client quali cartelle o moduli leggere prima di lavorare ## 4. Apertura workspace sulle altre macchine Aprire in VS Code il path locale: ```bash /home/$USER/netgescon-lan-workspace ``` Dentro il workspace l agente deve trovare subito: 1. `docs/README.md` 2. `docs/00-INDICE-LAVORO-DISTRIBUITO.md` 3. `docs/support/CONTINUITA-SVILUPPO-AGENT.md` 4. `docs/support/RETE-DOCS-E-AGENT-OPERATIVITA.md` ## Regole operative iniziali 1. una sola macchina aggiorna i docs sorgente della LAN 2. le altre macchine leggono dalla share e lavorano con gli stessi runbook 3. le note locali valgono solo come appunti temporanei 4. quando Gitea sara disponibile ovunque, la share LAN restera supporto o fallback, non sorgente finale ## Checklist minima per ogni nuova macchina 1. stesso utente Linux o UID/GID compatibili 2. mount NFS attivo 3. workspace locale creato 4. docs leggibili dal workspace 5. indice distribuito letto prima di iniziare il lavoro ## Criterio di successo La fase LAN puo dirsi pronta quando: 1. almeno due macchine leggono la stessa cartella `docs/` condivisa 2. entrambe aprono lo stesso indice distribuito 3. i runbook vengono aggiornati solo sulla macchina capofila 4. il passaggio a Gitea non richiedera di ripensare la struttura workspace