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

> Izinkan pengguna menambahkan file dari URL eksternal pada deployment Kubernetes, dan jauhkan alamat internal kluster dari jangkauan.

File "From External URL" (serta file yang diunduh oleh [Import API](https://ayakaleaf-pro.mintlify.site/id/on-premises/configuration/kubernetes/integrations/overleaf-import-api.md) dan `web_fetch` milik asisten AI) diambil oleh layanan **linked-url-proxy** di dalam setiap pod Ayakaleaf Pro. Layanan ini menolak alamat yang tidak publik, sehingga pengguna tidak dapat membaca layanan internal melaluinya. Fitur dan pengaturannya dijelaskan di [URL Eksternal](https://ayakaleaf-pro.mintlify.site/id/on-premises/configuration/overleaf-toolkit/external-url.md).

| | |
| - | - |
| Layanan | linked-url-proxy (`127.0.0.1:3066` di setiap pod); web menampilkan menu saat `url` ada di `ENABLED_LINKED_FILE_TYPES` |
| Pod → luar | URL yang diberikan pengguna, pada port mana pun, secara langsung atau melalui `OVERLEAF_LINKED_URL_OUTBOUND_PROXY` |
| Status | tidak ada |
| Job berkala | tidak ada: file hanya diperbarui saat pengguna memintanya |

### Konfigurasi

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

### Apa yang diblokir di Kubernetes

Proxy menolak setiap alamat yang bukan alamat unicast publik: loopback, link-local (termasuk alamat metadata cloud `169.254.169.254`), rentang privat `10.0.0.0/8`, `172.16.0.0/12`, dan `192.168.0.0/16`, rentang carrier-grade NAT `100.64.0.0/10`, serta padanan IPv6-nya. Jaringan Pod dan Service dalam rentang ini, yang merupakan default untuk kubeadm, flannel, Calico, dan sebagian besar kluster terkelola, karena itu diblokir tanpa pengaturan apa pun, begitu pula nama di dalam kluster seperti `redis` atau `git-bridge` yang di-resolve ke alamat tersebut.

Alamat publik diizinkan. Jika node atau load balancer Anda memiliki alamat publik, tambahkan alamat tersebut ke `OVERLEAF_LINKED_URL_BLOCKED_NETWORKS` (dipisahkan dengan spasi atau koma), sehingga pengguna tidak dapat mengambil NodePort atau halaman status melaluinya.

Jika `OVERLEAF_LINKED_URL_OUTBOUND_PROXY` diatur, nama host di-resolve oleh proxy tersebut, sehingga hanya URL yang berisi alamat IP yang diperiksa: proxy itu sendiri harus memblokir jaringan internal Anda.

### Beberapa replika

Tidak ada yang perlu ditambahkan: setiap pod mengambil file dengan linked-url-proxy miliknya sendiri dan pengaturan yang sama.

### Diuji di Kubernetes

Di Kubernetes 1.37 dengan tiga replika, jaringan pod flannel `10.244.0.0/16`, dan jaringan service kubeadm `10.96.0.0/12`, proxy menolak unduhan dari ClusterIP sebuah Service, dari nama di dalam kluster `redis`, `garage`, dan `overleaf-1.overleaf-hl.overleaf.svc.cluster.local`, serta dari alamat sebuah node, tanpa `OVERLEAF_LINKED_URL_BLOCKED_NETWORKS` apa pun. Pengujian end-to-end kami juga lulus untuk penolakan loopback dan alamat metadata cloud melalui Import API, serta untuk asisten AI yang hanya membaca halaman yang diizinkan oleh `OVERLEAF_LINKED_URL_ALLOWED_RESOURCES`.


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