Manajemen tugas AI-native di mana agent coding adalah anggota tim sepenuhnya. Men-deploy PostgreSQL (pgvector), backend Go, dan aplikasi web Next.js.

Tiga layanan, tanpa perlu object storage eksternal. Lampiran disimpan di volume persisten pada backend.
RESEND_API_KEY dibiarkan kosong, baca kodenya dari log layanan
backend — cari Verification code.ALLOW_SIGNUP=false dan
DISABLE_WORKSPACE_CREATION=true di backend, lalu restart.Daemon berjalan di komputermu sendiri, bukan di Zeabur. Server Multica hanya berisi API, hub WebSocket, dan basis data.
brew install multica-ai/tap/multica
multica setup self-host \
--server-url https://DOMAIN_API_KAMU \
--app-url https://DOMAIN_KAMU
Kedua URL sengaja dibuat berbeda. --app-url adalah aplikasi web tempat kamu
login; --server-url adalah domain API, yang diperiksa CLI di /health sebelum
menyimpan apa pun. Path itu tidak diteruskan oleh aplikasi web, jadi mengarahkan
--server-url ke domain aplikasi membuat setup melaporkan server tidak
terjangkau.
Browser tidak terpengaruh dalam kedua kasus — ia tetap berada di domain aplikasi
untuk semuanya termasuk WebSocket, sehingga cookie tidak pernah lintas origin
dan COOKIE_DOMAIN dibiarkan kosong.
Sisi browser mengikuti host yang kamu buka: aplikasi web menyajikan /api,
/auth, /uploads, dan /ws dari origin-nya sendiri, dan klien menurunkan
wss:// dari window.location. Tidak ada yang dipaku ke domain di sisi ini,
jadi UI dan WebSocket tetap jalan di domain baru tanpa konfigurasi.
Backend-lah yang tidak menyadarinya. Ia tidak pernah membaca host permintaan — setiap URL publik yang ia hasilkan berasal dari variabel lingkungan. Setelah memasang domain baru, perbarui ini di layanan backend lalu restart:
| Variabel | Isi dengan | Yang rusak kalau basi |
|---|---|---|
MULTICA_APP_URL | origin aplikasi baru | Onboarding menampilkan host lama; email undangan dan kode login menaut ke sana |
FRONTEND_ORIGIN | origin aplikasi baru | Cadangan untuk yang di atas; pemeriksaan origin CSRF |
CORS_ALLOWED_ORIGINS | origin aplikasi baru | Panggilan lintas origin ditolak |
MULTICA_PUBLIC_URL | origin API baru | multica setup self-host memberi daemon URL lama |
Sertakan skema, tanpa garis miring di akhir. Semuanya gagal secara diam-diam
— aplikasi tetap termuat dan tampak baik-baik saja. Setelah mengubahnya, buka
/api/config dan pastikan daemon_app_url dan daemon_server_url cocok dengan
domain yang benar-benar kamu pakai.
Satu hal yang perlu diketahui sebelum memasang domain kustom:
MULTICA_PUBLIC_URL dikirim sebagai ${ZEABUR_API_URL}, dan variabel bawaan itu
tetap mengarah ke domain *.zeabur.app yang dibuat otomatis, bahkan setelah
kamu memasang domain kustom di sampingnya. Ia tidak mengikuti domain kustom.
Jadi begitu kamu memasang domainmu sendiri di backend, ganti
${ZEABUR_API_URL} dengan domain itu, ditulis lengkap.
Lalu jalankan ulang multica setup self-host dengan --server-url yang baru di
setiap mesin yang menjalankan daemon — CLI menyimpan URL-nya, jadi daemon yang
sudah ada akan terus memakai yang lama sampai kamu melakukannya.
S3_BUCKET dibiarkan kosong, jadi backend jatuh kembali ke disk lokal dan
menulis ke volume /app/data/uploads. Untuk pindah ke penyimpanan kompatibel S3
nanti (R2, MinIO, B2), set S3_BUCKET, AWS_ENDPOINT_URL,
AWS_ACCESS_KEY_ID, dan AWS_SECRET_ACCESS_KEY di backend. Tambahkan
ATTACHMENT_DOWNLOAD_MODE=proxy bila endpoint-nya tidak terjangkau dari
browser. Berkas yang sudah ada tidak dimigrasikan otomatis.
Volume uploads mengunci backend ke satu replika. Pindah ke S3 dulu kalau butuh
lebih, dan tambahkan REDIS_URL — tanpa Redis, event realtime jatuh kembali ke
memori dalam proses dan rate limiting autentikasi mati.
Multica dilisensikan di bawah Apache License 2.0 yang dimodifikasi dengan ketentuan tambahan yang mencakup penggunaan komersial hosted/embedded, branding, dan atribusi. Penggunaan internal dalam satu organisasi tidak memerlukan lisensi komersial; menawarkannya sebagai layanan ke pihak ketiga memerlukannya. Menghapus nama, logo, atau pemberitahuan hak cipta Multica dari UI memerlukan pengecualian branding tertulis.
Sumber: https://github.com/multica-ai/multica · Lisensi: https://github.com/multica-ai/multica/blob/main/LICENSE