LLM: Ubuntu 24.04 desktop - Ollama n8n open-webui orange GPU 4060
Bisa. Ini jalur yang paling gampang untuk Ubuntu 24.04 Desktop + RTX 4060 8GB, akses lokal saja, memakai Docker Compose untuk Ollama + Open WebUI + n8n, lalu Orange Data Mining dipasang terpisah di host dalam *virtual environment*. Saya sengaja pilih desain ini karena paling mudah dirawat: GPU dipakai oleh Ollama di container, Open WebUI hanya jadi UI yang mengarah ke Ollama, dan n8n tetap ringan. Untuk lokal-only, port saya bind ke `127.0.0.1` agar tidak terbuka ke LAN. Docker mendukung GPU di Compose lewat reservasi device GPU, Open WebUI mendokumentasikan pemakaian image `:cuda` untuk GPU, dan Ollama resmi mendukung Docker + NVIDIA dengan `nvidia-container-toolkit`. ([Docker Documentation][1])
Arsitektur yang disarankan
- Host Ubuntu 24.04: driver NVIDIA + Docker Engine + NVIDIA Container Toolkit
- Container 1: `ollama` memakai GPU RTX 4060
- Container 2: `open-webui` terhubung ke `ollama`
- Container 3: `n8n` lokal-only
- Orange Data Mining: install normal di host, bukan di Docker, agar GUI desktop lebih aman dan simpel
Untuk Orange, bagian pentingnya begini: Orange bisa diinstal via `pip` dengan PyQt6, dan Word Cloud / banyak widget Orange tidak otomatis memakai GPU. GPU baru berguna kalau workflow Orange memanggil library Python yang memang CUDA-enabled, misalnya lewat Python Script widget. Jadi saya akan siapkan GPU dengan aman, tapi saya tidak akan klaim semua widget Orange otomatis ngebut pakai RTX 4060. ([Orange Data Mining][2])
1) Pasang driver NVIDIA di host
Ubuntu menyediakan jalur resmi untuk memasang driver NVIDIA dengan `ubuntu-drivers`. Itu langkah paling aman untuk desktop Ubuntu modern. Setelah reboot, `nvidia-smi` harus menampilkan RTX 4060. ([Ubuntu][3])
sudo apt update sudo apt install -y ubuntu-drivers-common sudo ubuntu-drivers install sudo reboot
Sesudah reboot:
nvidia-smi
Kalau ini belum jalan, jangan lanjut ke Docker dulu.
2) Pasang Docker Engine + Compose plugin
Docker mendukung Ubuntu 24.04 secara resmi, dan Docker sendiri menyarankan memakai repo resmi mereka, bukan paket Ubuntu lama yang bisa bentrok seperti `docker.io` atau `docker-compose`. Compose plugin juga resmi dipasang lewat paket `docker-compose-plugin`. ([Docker Documentation][4])
sudo apt remove -y docker.io docker-compose docker-compose-v2 podman-docker containerd runc || true sudo apt update sudo apt install -y ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin sudo usermod -aG docker $USER newgrp docker
Cek:
docker --version docker compose version docker run hello-world
3) Pasang NVIDIA Container Toolkit
Ollama di Docker butuh NVIDIA Container Toolkit, dan NVIDIA menuliskan langkah resmi: tambah repo, pasang toolkit, jalankan `nvidia-ctk runtime configure --runtime=docker`, lalu restart Docker. Toolkit ini memang mendukung Ubuntu 24.04. ([NVIDIA Docs][5])
sudo apt-get update && sudo apt-get install -y --no-install-recommends \ ca-certificates curl gnupg2 curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \ sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \ sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \ sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list sudo apt-get update sudo apt-get install -y nvidia-container-toolkit sudo nvidia-ctk runtime configure --runtime=docker sudo systemctl restart docker
Tes akses GPU dari Docker:
docker run --rm --gpus all nvidia/cuda:12.0.0-base-ubuntu22.04 nvidia-smi
Kalau ini menampilkan RTX 4060, berarti GPU sudah siap dipakai container. Docker juga mencontohkan `docker run --gpus all ... nvidia-smi` sebagai uji GPU access. ([Docker Documentation][6])
4) Buat folder project Compose
mkdir -p ~/ai-local-stack cd ~/ai-local-stack mkdir -p n8n_data
Buat file `.env`:
nano .env
Isi:
env TZ=Asia/Jakarta N8N_BASIC_AUTH_USER=admin N8N_BASIC_AUTH_PASSWORD=GantiPasswordKuat123! N8N_ENCRYPTION_KEY=GantiIniDenganStringPanjangAcakMinimal32Karakter WEBUI_SECRET_KEY=GantiIniJugaDenganStringPanjangAcak
n8n memang memakai konfigurasi lewat environment variables di `docker-compose.yml`, dan dokumentasinya menjelaskan bahwa URL akses dan webhook bisa dikontrol lewat env vars seperti `N8N_PROTOCOL`, `N8N_HOST`, `N8N_PORT`, dan `WEBHOOK_URL`. ([n8n Docs][7])
5) Buat `docker-compose.yml`
Buat file:
nano docker-compose.yml
Isi dengan ini:
services:
ollama:
image: ollama/ollama:latest
container_name: ollama
restart: unless-stopped
ports:
- "127.0.0.1:11434:11434"
volumes:
- ollama:/root/.ollama
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
open-webui:
image: ghcr.io/open-webui/open-webui:main-slim
container_name: open-webui
restart: unless-stopped
depends_on:
- ollama
ports:
- "127.0.0.1:3000:8080"
environment:
- TZ=${TZ}
- WEBUI_SECRET_KEY=${WEBUI_SECRET_KEY}
- OLLAMA_BASE_URL=http://ollama:11434
volumes:
- open-webui:/app/backend/data
n8n:
image: docker.n8n.io/n8nio/n8n:latest
container_name: n8n
restart: unless-stopped
depends_on:
- ollama
ports:
- "127.0.0.1:5678:5678"
environment:
- TZ=${TZ}
- N8N_HOST=localhost
- N8N_PORT=5678
- N8N_PROTOCOL=http
- WEBHOOK_URL=http://localhost:5678/
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=${N8N_BASIC_AUTH_USER}
- N8N_BASIC_AUTH_PASSWORD=${N8N_BASIC_AUTH_PASSWORD}
- N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
- N8N_SECURE_COOKIE=false
- GENERIC_TIMEZONE=${TZ}
- N8N_DIAGNOSTICS_ENABLED=false
volumes:
- ./n8n_data:/home/node/.n8n
volumes:
ollama:
open-webui:
Kenapa begini:
- `127.0.0.1:...` membuat layanan hanya bisa diakses dari mesin itu sendiri, bukan dari LAN. Ini paling pas untuk “akses lokal”.
- `OLLAMA_BASE_URL=http://ollama:11434` mengikuti pola env Open WebUI untuk menunjuk backend Ollama. Open WebUI mendokumentasikan `OLLAMA_BASE_URL` dan default Docker-nya memang mengarah ke backend internal/container. ([Open WebUI][8])
- Untuk GPU di Compose, Docker menjelaskan bahwa `deploy.resources.reservations.devices` dengan `driver: nvidia` dan `capabilities: [gpu]` adalah bentuk resmi, dan `capabilities` wajib ada. Open WebUI juga memberi contoh Compose GPU yang sama. ([Docker Documentation][1])
- n8n resmi mendukung Docker/Compose sebagai metode self-hosting yang direkomendasikan. ([n8n Docs][9])
6) Jalankan stack
docker compose pull docker compose up -d docker compose ps
Akses lokal:
- Open WebUI: `http://localhost:3000`
- n8n: `http://localhost:5678`
- Ollama API: `http://localhost:11434`
Open WebUI sendiri memang memakai port kontainer `8080`, contoh Compose resminya memetakan ke host seperti `3000:8080`. ([Open WebUI][10])
7) Tes bahwa Ollama benar-benar pakai GPU
Tarik model kecil dulu:
docker exec -it ollama ollama pull llama3.2 docker exec -it ollama ollama run llama3.2
Ollama memang mendokumentasikan `docker exec -it ollama ollama run llama3.2` sebagai contoh setelah container aktif. ([Ollama][11])
Tes log:
docker logs -f ollama
Sambil jalan, buka terminal lain:
watch -n 1 nvidia-smi
Kalau VRAM/GPU util naik saat inferensi, berarti RTX 4060 dipakai.
8) Cara termudah menghubungkan n8n ke Ollama
Di n8n, untuk request ke Ollama lokal di jaringan Compose, gunakan base URL:
http://ollama:11434
Kalau n8n perlu memanggil API chat/generate, endpoint Ollama tetap lewat service name `ollama` karena semua container ada di network Compose yang sama. Ini sejalan dengan cara Open WebUI diarahkan ke Ollama memakai URL backend internal. ([Open WebUI][8])
9) Instal Orange Data Mining yang aman
Untuk Orange, saya sarankan jangan didockerkan kalau tujuannya GUI desktop biasa. Cara resmi Orange untuk platform Linux lain adalah pakai `pip`, dan bila sistem belum menyediakan PyQt, pasang PyQt6 dan PyQt6-WebEngine, lalu `pip install orange3`. ([Orange Data Mining][2])
sudo apt update sudo apt install -y \ python3-pip python3-venv python3-dev build-essential \ libxcb-cursor0 libxkbcommon-x11-0 libgl1 libegl1 libopengl0 python3 -m venv ~/orangenv source ~/orangenv/bin/activate python -m pip install --upgrade pip setuptools wheel pip install PyQt6 PyQt6-WebEngine pip install orange3 pip install Orange3-Text wordcloud
Jalankan:
python -m Orange.canvas
Add-on memang bisa dipasang dari Options → Add-ons, dan Word Cloud adalah bagian dari add-on Text Mining. ([Orange Data Mining][2])
10) Siapkan akses GPU untuk Orange dengan aman
Ini bagian yang perlu jujur: Orange tidak otomatis memakai GPU untuk semua widget. Widget seperti Word Cloud didokumentasikan sebagai widget visualisasi teks biasa; dokumentasinya tidak menyebut kebutuhan GPU khusus. Jadi GPU RTX 4060 di Orange lebih realistis dipakai saat Anda menjalankan library CUDA lewat Python Script widget atau alur Python lain. ([Orange Data Mining][12])
Kalau Anda ingin Orange bisa memanggil GPU, cukup tambahkan library Python yang CUDA-enabled ke venv Orange. NVIDIA menjelaskan CUDA Toolkit untuk Linux adalah toolkit komputasi GPU resmi mereka. ([NVIDIA Docs][13])
Contoh aman dan simpel:
source ~/orangenv/bin/activate pip install torch
Tes:
python -c "import torch; print('CUDA:', torch.cuda.is_available()); print(torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'No GPU')"
Kalau hasilnya `CUDA: True` dan muncul `RTX 4060`, berarti Orange bisa memakai Python yang melihat GPU. Setelah itu, di Orange Anda bisa pakai widget Python Script untuk menjalankan kode berbasis PyTorch/CUDA. Ini konsisten dengan model instalasi Orange yang berbasis lingkungan Python biasa. ([Orange Data Mining][2])
11) Ringkasan copy-paste tercepat
Kalau mau yang paling singkat, urutannya begini:
# 1. Driver NVIDIA sudo apt update sudo apt install -y ubuntu-drivers-common sudo ubuntu-drivers install sudo reboot nvidia-smi # 2. Docker resmi sudo apt remove -y docker.io docker-compose docker-compose-v2 podman-docker containerd runc || true sudo apt update sudo apt install -y ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin sudo usermod -aG docker $USER newgrp docker # 3. NVIDIA Container Toolkit sudo apt-get update && sudo apt-get install -y --no-install-recommends ca-certificates curl gnupg2 curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list sudo apt-get update sudo apt-get install -y nvidia-container-toolkit sudo nvidia-ctk runtime configure --runtime=docker sudo systemctl restart docker docker run --rm --gpus all nvidia/cuda:12.0.0-base-ubuntu22.04 nvidia-smi
Setelah itu baru buat `docker-compose.yml` di atas dan jalankan `docker compose up -d`. Semua langkah ini mengikuti dokumentasi resmi Docker, NVIDIA Container Toolkit, Ollama, Open WebUI, dan n8n. ([Docker Documentation][4])
12) Hal yang paling penting
- Untuk lokal saja, bind port ke `127.0.0.1`
- GPU utama cukup dipakai Ollama
- Open WebUI cukup terhubung ke Ollama
- n8n tidak perlu GPU
- Orange aman dipasang di host, bukan Docker
- Orange + GPU realistis untuk workflow Python tertentu, bukan otomatis semua widget
Kalau Anda mau, saya bisa lanjutkan dengan versi kedua yang lebih praktis lagi: saya tuliskan satu paket final siap copy-paste berisi `.env`, `docker-compose.yml`, perintah install, serta bagian troubleshooting untuk kasus `nvidia-smi gagal`, `ollama tidak detect GPU`, `Open WebUI blank`, `n8n permission`, dan `torch.cuda.is_available() = False`.
- [1]: https://docs.docker.com/compose/how-tos/gpu-support/ "Enable GPU support | Docker Docs"
- [2]: https://orangedatamining.com/download/?utm_source=chatgpt.com "Orange Data Mining - Download."
- [3]: https://ubuntu.com/server/docs/how-to/graphics/install-nvidia-drivers/?utm_source=chatgpt.com "NVIDIA drivers installation - Ubuntu Server documentation"
- [4]: https://docs.docker.com/engine/install/ubuntu/?utm_source=chatgpt.com "Install Docker Engine on Ubuntu"
- [5]: https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html "Installing the NVIDIA Container Toolkit — NVIDIA Container Toolkit"
- [6]: https://docs.docker.com/ai/model-runner/inference-engines/?utm_source=chatgpt.com "Inference engines"
- [7]: https://docs.n8n.io/hosting/configuration/configuration-methods/?utm_source=chatgpt.com "Configuration methods"
- [8]: https://docs.openwebui.com/reference/env-configuration/ "Environment Variable Configuration | Open WebUI"
- [9]: https://docs.n8n.io/hosting/installation/docker/?utm_source=chatgpt.com "Docker | n8n Docs"
- [10]: https://docs.openwebui.com/getting-started/quick-start/ "Quick Start | Open WebUI"
- [11]: https://docs.ollama.com/docker "Docker - Ollama"
- [12]: https://orangedatamining.com/widget-catalog/text-mining/wordcloud/?utm_source=chatgpt.com "Word Cloud - Orange Data Mining"
- [13]: https://docs.nvidia.com/cuda/cuda-installation-guide-linux/ "CUDA Installation Guide for Linux — Installation Guide for Linux 13.2 documentation"