> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# URL esterno

> Consentire agli utenti di aggiungere file da URL esterni in un deployment Kubernetes, mantenendo irraggiungibili gli indirizzi interni del cluster.

I file "Da URL esterno" (e i file scaricati dall'[Import API](https://ayakaleaf-pro.mintlify.site/it/on-premises/configuration/kubernetes/integrations/overleaf-import-api.md) e da `web_fetch` dell'assistente AI) vengono recuperati dal servizio **linked-url-proxy** all'interno di ogni pod di Ayakaleaf Pro. Rifiuta gli indirizzi non pubblici, quindi gli utenti non possono leggere i servizi interni attraverso di esso. La funzionalità e le sue impostazioni sono descritte in [URL esterno](https://ayakaleaf-pro.mintlify.site/it/on-premises/configuration/overleaf-toolkit/external-url.md).

| | |
| - | - |
| Servizio | linked-url-proxy (`127.0.0.1:3066` in ogni pod); web mostra il menu quando `url` è in `ENABLED_LINKED_FILE_TYPES` |
| Pod → esterno | gli URL indicati dagli utenti, su qualsiasi porta, direttamente o tramite `OVERLEAF_LINKED_URL_OUTBOUND_PROXY` |
| Stato | nessuno |
| Job periodici | nessuno: un file viene aggiornato solo quando un utente lo richiede |

### Configurazione

```yaml title="30-config.yaml (additions)" wrap theme={null}
  ENABLED_LINKED_FILE_TYPES: project_file,project_output_file,url
  # Public addresses of your nodes and load balancer, see below
  OVERLEAF_LINKED_URL_BLOCKED_NETWORKS: 203.0.113.0/24 198.51.100.7/32
  # optional
  # OVERLEAF_LINKED_URL_ALLOWED_RESOURCES: ^https?://www\.example\.com/public/
  # OVERLEAF_LINKED_URL_OUTBOUND_PROXY: http://proxy.example.com:3128
```

```bash theme={null}
kubectl apply -f 30-config.yaml
kubectl -n overleaf rollout restart deployment/overleaf     # or statefulset/overleaf
```

### Cosa viene bloccato su Kubernetes

Il proxy rifiuta ogni indirizzo che non sia un indirizzo unicast pubblico: loopback, link-local (incluso l'indirizzo dei metadati cloud `169.254.169.254`), gli intervalli privati `10.0.0.0/8`, `172.16.0.0/12` e `192.168.0.0/16`, l'intervallo carrier-grade NAT `100.64.0.0/10` e i loro equivalenti IPv6. Le reti dei Pod e dei Service in questi intervalli, che è l'impostazione predefinita per kubeadm, flannel, Calico e la maggior parte dei cluster gestiti, sono quindi bloccate senza alcuna impostazione, così come i nomi interni al cluster come `redis` o `git-bridge` che vi si risolvono.

Gli indirizzi pubblici sono consentiti. Se i tuoi nodi o il tuo load balancer hanno indirizzi pubblici, aggiungili a `OVERLEAF_LINKED_URL_BLOCKED_NETWORKS` (separati da spazi o virgole), in modo che gli utenti non possano recuperare attraverso di essi i NodePort o una pagina di stato.

Con `OVERLEAF_LINKED_URL_OUTBOUND_PROXY` impostato, i nomi host vengono risolti dal proxy, quindi vengono verificati solo gli URL che contengono un indirizzo IP: il proxy deve bloccare autonomamente le tue reti interne.

### Più repliche

Non serve altro: ogni pod effettua i download con il proprio linked-url-proxy e le stesse impostazioni.

### Testato su Kubernetes

Su Kubernetes 1.37 con tre repliche, la rete dei pod di flannel `10.244.0.0/16` e la rete dei servizi di kubeadm `10.96.0.0/12`, il proxy ha rifiutato i download dal ClusterIP di un Service, dai nomi interni al cluster `redis`, `garage` e `overleaf-1.overleaf-hl.overleaf.svc.cluster.local` e dall'indirizzo di un nodo, senza alcun `OVERLEAF_LINKED_URL_BLOCKED_NETWORKS`. I nostri test end-to-end vengono superati anche per il rifiuto del loopback e dell'indirizzo dei metadati cloud tramite l'Import API, e per l'assistente AI che legge solo le pagine consentite da `OVERLEAF_LINKED_URL_ALLOWED_RESOURCES`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.