8 poin oleh GN⁺ 6 jam lalu | 1 komentar | Bagikan ke WhatsApp
  • Untuk mengelola layanan homelab, saya menambahkan akses Git ke OpenCode Web UI dan menyusun alur agar perubahan dari AI dideploy oleh GitOps setelah tinjauan PR
  • Sekitar 12 stack docker compose dipindahkan ke Arcane untuk dikelola dengan GitOps, dan alat AI dimanfaatkan untuk pemeliharaan layanan
  • Saat memperbarui kontainer, sebelumnya perlu waktu berjam-jam untuk memeriksa catatan rilis, meninjau breaking change, dan melakukan verifikasi manual, tetapi sekarang saya bisa membaca ringkasan catatan rilis dalam beberapa menit sehingga upgrade versi menjadi lebih mudah dan aman
  • OpenCode berjalan sebagai server dan menyediakan terminal, file browser, Git diff, serta git worktree, sambil menyinkronkan sesi coding persisten di beberapa perangkat
  • AI tidak bisa mengakses layanan nyata secara langsung dan hanya dapat melakukan push ke branch Git, sehingga kode yang belum ditinjau tidak akan terdeploy

Alur pengelolaan homelab

  • Saya memberi OpenCode Web UI akses Git agar pengelolaan homelab menjadi lebih mudah; saat OpenCode melakukan push perubahan ke Git, manusia menyetujui PR lalu GitOps mendeploy perubahan tersebut
  • OpenCode berjalan sebagai server, dan sesi coding persisten disinkronkan di beberapa perangkat
  • Layanan yang dikelola terdiri dari sekitar 12 stack docker compose, yang baru-baru ini dipindahkan ke Arcane untuk dikelola dan dideploy dengan GitOps
  • Kasus penggunaan pertama untuk alat AI adalah pembaruan kontainer
    • Sebelumnya saya harus mencari catatan rilis setiap layanan, memeriksa breaking change, menjalankan pembaruan, dan memeriksa masalah tiap layanan secara manual
    • Proses ini memakan waktu berjam-jam, tetapi sekarang saya bisa membaca ringkasan catatan rilis dalam beberapa menit sehingga upgrade versi menjadi lebih mudah dan aman
    • Saya juga menggunakan AI untuk menambahkan healthcheck ke sebagian besar kontainer agar masalah bisa ditemukan lebih cepat

OpenCode

  • Saya terutama menggunakan Claude Code, tetapi karena penyedia AI mengurangi nilai bagi pelanggan lewat pembatasan token, saya mulai mencari pilihan lain
  • Alat yang saya inginkan adalah lingkungan coding yang tidak terikat pada vendor tertentu dan didukung plugin-plugin utama
  • Setelah mencoba beberapa lingkungan coding, saya memilih OpenCode, dan itu adalah alat yang paling saya sukai di antara opsi yang dicoba
  • Fakta bahwa OpenCode memiliki webserver bawaan dan web UI menjadi pemicu ide platform pengembangan AI untuk homelab ini

Platform pengembangan AI

  • Saya membuat VM sederhana di host Truenas dengan alat pengembangan dasar, lalu menambahkan webserver OpenCode sebagai systemd unit
  • Lingkungan ini menyediakan terminal bawaan, file browser, Git diff, dan dukungan git worktree sehingga beberapa sesi coding bisa dikelola secara bersamaan
  • Web UI mobile OpenCode sangat bagus, terutama popup tanya-jawabnya
  • Pada server Git, saya memberikan pengguna khusus untuk OpenCode beserta SSH key khusus
    • OpenCode dapat meng-clone proyek dan melakukan push ke branch
    • OpenCode tidak dapat melakukan push langsung ke branch deploy
  • Workflow ini menempatkan AI sebelum tinjauan PR; OpenCode menulis perubahan dan manusia melakukan merge langsung di PR
    • Struktur ini mencegah kode yang belum ditinjau terdeploy
  • VM ini dapat mengakses internet dan server Git, tetapi tidak dapat mengakses layanan yang sebenarnya
    • Karena cakupan dampaknya kecil, saya menilai tidak masalah memberi OpenCode hak root pada VM saat perlu memasang build tool atau dependensi pengujian
  • Struktur ini dapat diperluas menjadi platform pengembang produksi berbentuk kontainer sementara untuk developer, dengan alat yang sudah dipasang sebelumnya, guardrail akses, dan audit log
  • Konfigurasi saat ini menyediakan fitur yang saya butuhkan tanpa terlalu banyak komponen

Workflow

  • Alur kerja dasar dimulai dari tahap merencanakan fitur atau peningkatan di OpenCode
    • Rencana mencakup spesifikasi, rencana implementasi, dan review mandiri
  • Jika memungkinkan, perubahan diuji atau divalidasi
  • Bagian yang belum memuaskan diperbaiki secara iteratif bersama OpenCode
  • OpenCode melakukan push perubahan ke feature branch
  • PR dibuka dari branch tersebut, lalu jika sudah memuaskan PR di-merge
  • Setelah merge, GitOps mengambil alih deployment
    • Perubahan layanan docker ditangani oleh Arcane
    • Perubahan konfigurasi Home Assistant ditangani oleh plugin GitOps
    • Perubahan blog ditangani oleh Cloudflare Pages worker

Kombinasi Arcane GitOps dan OpenCode

  • Saya memindahkan layanan-layanan dari Truenas ke proyek Arcane GitOps, dengan tujuan utama mengelola semua stack docker compose yang sebelumnya berjalan di Truenas dalam repositori berbasis Git
  • Saat OpenCode ditambahkan, pendekatan ini bekerja lebih baik daripada yang saya perkirakan
  • Saya bisa memperbarui networking semua kontainer dari ponsel, sehingga pengelolaan konfigurasi yang tersebar menjadi jauh lebih mudah
  • Sebelumnya saya perlu waktu berjam-jam untuk menelusuri semua compose stack dan melacak koneksi jaringan
  • Sekarang saya cukup memberi OpenCode codebase dan tujuannya, lalu meninjau perubahan PR yang dihasilkan sebelum melakukan merge

Keterbatasan yang tersisa dan kontrol akses

  • Kekurangan terbesar saat ini adalah umpan balik CI
  • Di GitHub, agen coding dapat melihat log Actions untuk mendiagnosis kegagalan pengujian, error linter, stack trace, dan perubahan pada IaC plan
  • Pendekatan ini membantu mempertahankan loop umpan balik yang cepat bahkan untuk perubahan yang tidak tercakup oleh unit test
  • Di Forgejo, alur ini lebih sulit
    • Forgejo Actions tidak mengekspos log job melalui API publik
    • Ada API yang tidak terdokumentasi, tetapi saya tidak ingin membangun konfigurasi berdasarkan API tersebut
  • Konfigurasi saat ini memungkinkan AI membuat perubahan pada infrastruktur rumah dari perangkat apa pun tanpa bisa mengakses langsung layanan yang diubah
  • Saya bisa memulai perubahan dari komputer, meninjau PR di ponsel, lalu membiarkan GitOps menangani deployment

1 komentar

 
GN⁺ 6 jam lalu
Komentar Hacker News
  • Saya masih mencari cara integrasi AI yang cocok dengan lingkungan saya. Saat ini belum ada interaksi antara Forgejo dan coding agent, dan saya juga sudah mencoba Forgejo Actions runner, tetapi pengelolaan konteksnya terasa kurang jelas
    Konten dari issue atau PR memang bisa diambil, tetapi begitu ada beberapa kali bolak-balik atau diskusi berpindah dari issue ke PR, konteksnya cepat kabur

  • Saya melakukan hal yang mirip, tetapi alih-alih server opencode yang persisten, saya memakai workflow yang menjalankan opencode di dalam Forgejo action runner: https://codeberg.org/dragonfyre13/forgejo-opencode
    Masih saya rapikan, tetapi intinya adalah memanggil Opencode dengan /oc di dalam issue Forgejo, lalu ia kembali dengan membuat PR untuk ditinjau

  • Kadang terasa seperti di industri teknologi, banyak orang mengalami hal yang hampir sama secara mandiri pada waktu yang hampir bersamaan, tetapi ternyata sedikit yang menuliskannya atau membagikannya
    Saya juga sedang membangun sistem serupa, jadi menyenangkan membaca tulisan dan komentar ini karena ternyata semua orang melewati proses yang sama

    • Bukan cuma di industri teknologi, ini fenomena yang umum. Kita tidak seorisinal itu
    • Saya juga sudah membuat ini dengan tiga cara berbeda, dan sempat memakai e2b.dev juga, itu layanan yang bagus
      Masalahnya, 99% waktu kita habis untuk mengutak-atik hal keren, dan cuma 1% untuk membicarakannya. Kita harus lebih banyak bicara
    • Saya rasa ini karena orang-orang di industri teknologi berharap semua hal gratis
      Saya pernah bicara dengan seorang pengacara, dan ketika waktunya hampir habis saya mau bilang, “satu pertanyaan lagi”, tetapi dia menjawab, “jadwalkan 30 menit tambahan lalu kita bahas itu.” Itu cara yang adil
  • Saya sedang mencari motivasi untuk menulis tentang lab AI saya, dan tulisan ini adalah dorongan yang pas saya butuhkan
    Susunan saya juga memakai ide serupa, tetapi menggunakan n8n/git/argo/k3s, dan terutama untuk workflow otomasi yang bisa ditangani Qwen atau Gemma4

  • Saya penasaran apakah ada yang tahu kenapa domain ini diblokir oleh resolver Quad9. Quad9 memfilter domain itu sehingga situs webnya tidak bisa dibuka
    Hasil dig @9.9.9.9 rsgm.dev NS menunjukkan EDE: 17 (Filtered)

    • Dugaan saya karena domain ini sangat baru didaftarkan. Baru sekitar 8 jam sejak pendaftaran, dan waktu pembuatannya adalah 2026-06-15 14:01:25 UTC
  • Dua alasan utama saya belum memakai susunan ini adalah resource yang harus diberikan ke VM yang menjalankan opencode agar bisa membangun proyek, dan kebutuhan untuk pengujian yang lebih cepat
    Saya menjalankan pi coding agent langsung di Mac saya, bersama seluruh paket perangkat lunak seperti redis, postgres, dan kratos. Jika coding agent berjalan di mesin pengembangan utama, build bisa lebih cepat, dan saya juga bisa lebih cepat memverifikasi perubahan dengan hanya membangun ulang backend lalu me-restart-nya, kemudian langsung menguji perubahan dari klien UI

  • Saya juga melakukan sesuatu yang sangat mirip. Saya menjalankan OpenCode di Proxmox LXC, lalu menambahkan lapisan Kimaki di atasnya untuk integrasi Discord
    Suka atau tidak, bisa mengobrol dengan codebase Anda itu keren, dan kalau Anda suka, bahkan bisa juga lewat pesan suara

  • Keren. AI homelab sepertinya akan sangat menyenangkan
    Saat ini saya membiarkan Claude mengelola homelab saya di semua perangkat, dan itu mengubah instalasi serta pemeliharaan homelab dari “jebakan yang memikat selama bertahun-tahun tetapi tidak pernah benar-benar berjalan sempurna dan menyita waktu” menjadi “sesuatu yang benar-benar ide bagus dan memperluas kemampuan saya”

    • Bahkan dengan model terbaru, memang ada bagian kecil yang menghemat waktu, tetapi secara umum saya sering merasa rugi karena masalah konfigurasi yang halus memicu debugging besar-besaran
      Untuk tugas yang sangat sempit seperti “buatkan file docker compose” atau “beri saya konfigurasi NSD” masih oke, tetapi bahkan dalam kasus itu pun Anda tetap harus sudah tahu teknologi dasar apa yang dibutuhkan dan apa yang harus ditanyakan
  • Menambahkan akses Git ke OpenCode Web UI agar pengelolaan homelab jadi mudah, lalu membiarkan OpenCode push ke Git, saya tinggal menyetujui PR-nya dan GitOps akan menerapkan perubahannya, terdengar seperti susunan yang cukup bagus
    Hanya saja, sebelum saya membaca lebih jauh, saya penasaran apakah untuk melakukan hal serupa perlu mengeluarkan ribuan dolar untuk RAM dan GPU

    • Bisa saja 0 dolar. OpenCode itu cuma harness, jadi bisa terhubung ke model apa pun yang di-hosting online
  • Kami juga melakukan hal serupa, tetapi membiarkan agent membuka PR juga, dan menggunakan sistem ReARM untuk melacak metadata rilis serta sesi agent
    Belakangan ini agent juga merilis opsi untuk melacak deployment berbasis Helm melalui ReARM: https://docs.rearmhq.com/workflows/devops.html

    • Bagian ini memang belum saya sebutkan, tetapi saat menulis saya sadar akan mudah menambahkan skill untuk memanggil Forgejo PR API
      Sayangnya, tidak seperti GitHub, Forgejo tidak punya CLI