Files

5.3 KiB
Raw Permalink Blame History

Setup — dari clone sampai aplikasi terbuka dengan data

Panduan ini untuk komputer yang belum pernah menjalankan proyek ini. Ikuti berurutan; setiap langkah punya cara memastikan ia berhasil.

Perkiraan waktu: 20–40 menit, sebagian besar menunggu unduhan model LLM (~5 GB).

Yang harus sudah terpasang

Cara memeriksa
Docker Desktop docker info
Node.js 18+ node -v
Python 3.10+ python3 --version

1. Clone dan pasang dependensi

git clone https://github.com/abdshomad/dashboard-solusi-ai-peternakan-ayam.git
cd dashboard-solusi-ai-peternakan-ayam
git checkout Alfreda

npm install
npm install --prefix backend
pip3 install -r "AI Insight/requirements.txt"

2. Siapkan file .env

Ada dua file, dan DB_PASSWORD di keduanya harus sama persis.

cp .env.example .env
cp backend/.env.example backend/.env

Buka keduanya, ganti DB_PASSWORD dengan satu password yang sama.

Jebakan paling sering: DB_PORT harus 15432, bukan 5432. Postgres di Docker dipetakan ke 15432 supaya tidak bentrok dengan Postgres yang mungkin sudah terpasang di komputer Anda. Nilai ini sudah benar di backend/.env.example — jangan diubah jadi 5432.

3. Nyalakan Postgres dan Ollama

Hanya dua container ini. Jangan docker compose up seluruhnya — container backend/frontend/rag akan berebut port dengan proses yang dijalankan start_all.sh di langkah 6.

docker compose up -d database llm

Tunggu sampai database siap:

until docker exec dashboard-database pg_isready -U dashboard_user -d dashboard_db; do sleep 1; done

Kalau port 11434 bentrok: aplikasi Ollama bawaan macOS menahannya. Matikan dulu dengan osascript -e 'quit app "Ollama"'.

4. Unduh model LLM

Sekitar 5 GB, jalan sekali saja.

docker exec dashboard-llm ollama pull qwen2.5:7b

Pastikan sudah ada:

curl -s http://localhost:11434/api/tags | grep qwen2.5

Nama model ini harus sama dengan LLM_MODEL_NAME di backend/.env. Kalau berbeda, semua AI Insight gagal dengan error model not found.

5. Isi database

Langkah ini tidak otomatis. Skema dan migrasi memang dibuat sendiri saat backend start, tapi tabelnya akan kosong. Tanpa langkah ini dashboard terbuka tanpa kandang, tanpa siklus, dan semua AI Insight menulis "data tidak tersedia" — yang mudah disalahartikan sebagai aplikasi rusak.

docker exec -i dashboard-database psql -U dashboard_user -d dashboard_db < backup.sql

Pastikan datanya masuk:

docker exec dashboard-database psql -U dashboard_user -d dashboard_db -c \
  "select count(*) from mortality_records;"

Harusnya 270.

6. Jalankan aplikasinya

bash start_all.sh

Skrip ini menyalakan tiga layanan (RAG, backend, frontend) lalu menampilkan alamat yang harus dibuka, misalnya:

🌐 Frontend:    http://localhost:3000
🔧 Backend API: http://localhost:5001  (health: /health)
🧠 RAG Service: http://localhost:5002

Bukalah alamat yang tertulis di keluaran itu, jangan diasumsikan. Vite memakai port 3000, tapi mundur ke 3001, 3002, dan seterusnya kalau port itu sedang dipakai proses lain. Backend menerima port localhost mana pun saat NODE_ENV=development, jadi berapa pun portnya aplikasinya tetap jalan.

Skrip berakhir dengan tail -f pada log backend dan tidak pernah keluar sendiri. Tekan Ctrl+C untuk berhenti menonton log — layanannya tetap hidup.

7. Pastikan semuanya benar-benar hidup

curl -s -o /dev/null -w "backend  %{http_code}\n" http://localhost:5001/health
curl -s -o /dev/null -w "rag      %{http_code}\n" http://localhost:5002/health
curl -s http://localhost:5001/api/kandangs | head -c 80

Ketiganya harus 200, dan perintah terakhir harus mengembalikan {"success":true,"data":[{"id":1,"name":"Kandang Atas"....

Kalau /health sudah 200 tapi /api/kandangs gagal, berarti backend hidup tapi database tidak terjangkau — periksa ulang DB_PORT=15432 di langkah 2.


Menghentikan semuanya

pkill -f "rag_service.py"; pkill -f "node server.js"; pkill -f vite
docker compose stop database llm   # opsional

Kalau ada yang salah

Gejala Penyebab yang paling mungkin
ECONNREFUSED 127.0.0.1:15432 container database belum jalan, atau DB_PORT salah
Dashboard terbuka tapi semua angka kosong langkah 5 (isi database) terlewat
AI Insight error model not found LLM_MODEL_NAME tidak cocok dengan model yang di-pull
Folder tidak ditemukan: .../AI Insight start_all.sh dijalankan dari salinan di luar repo
Halaman tampil tapi data gagal dimuat backend mati — cek /tmp/backend.log
Generate AI Insight lama sekali wajar: 2–5 menit per laporan di CPU. Cek /tmp/backend.log

Log ada di /tmp/backend.log, /tmp/frontend.log, dan /tmp/rag_service.log.

Catatan teknis yang lebih dalam — keputusan desain, jebakan yang sudah ditemukan, dan pekerjaan yang masih terbuka — ada di CATATAN-LANJUTAN.md.