On Premise

Referensi Command CLI

Daftar semua command alurkerja-cli untuk instalasi dan operasional on-premises — pipeline build-alurkerja, jalur cepat --update-*, server database terpisah (--db-server), serta command profile, auth, addon, migrate, deployment, dan update.

Semua command dijalankan lewat binary alurkerja yang dipasang installer ke ~/.alurkerja/bin (Windows: %USERPROFILE%\.alurkerja\bin). Cara memasang CLI ada di Docker Compose v2 — Step 5. Setiap command punya bantuan bawaan: alurkerja <command> --help.

Ringkasan

CommandKegunaan
alurkerja build-alurkerjaInstal atau jalankan ulang seluruh stack AlurKerja di mesin ini
alurkerja build-alurkerja --db-serverSiapkan server database terpisah (PostgreSQL + pgvector)
alurkerja build-alurkerja --update-imageTarik image terbaru lalu recreate container
alurkerja build-alurkerja --update-dbPerbarui schema database saja
alurkerja build-alurkerja --update-domain --domain <domain>Ganti domain publik
alurkerja build-alurkerja --local-domainKembali ke domain lokal bawaan
alurkerja build-alurkerja --update-keycloakJalankan ulang setup-keycloak.sh (role, client, mapper baru)
alurkerja updatePerbarui binary CLI ke versi terbaru
alurkerja profile …, alurkerja auth …, alurkerja loginProfile koneksi dan login ke platform
alurkerja addon …Scaffold, zip, dan publish Addon
alurkerja migrate …Jalankan migration database per release
alurkerja deployment …Build dan push image docker
alurkerja --versionTampilkan versi, commit, dan tanggal build

Jalur cepat --update-image, --update-db, --update-domain, --update-keycloak, dan --db-server tidak bisa digabung — jalankan satu per satu. Semua --update-* dijalankan dari folder instalasi, atau tambahkan --dir <folder>.

Instalasi: build-alurkerja

alurkerja build-alurkerja

Pipeline lengkap: cek prasyarat, download code, wizard fitur (storage, database, keycloak, SMTP, redis — local atau external), lalu install sampai semua container jalan. Idempoten: step yang sudah selesai di-SKIP, jadi aman dijalankan ulang. Prosedur langkah demi langkah, daftar flag, dan isi tiap step ada di Docker Compose v2.

Server database terpisah: --db-server

Dipakai saat client menginginkan database di server sendiri, terpisah dari server aplikasi. Prosesnya dua sisi.

1. Di server database — cukup docker, tanpa akun Harbor dan tanpa download code:

curl -fsSL https://cli.alurkerja.com/install.sh | bash   # sekali, kalau CLI belum terpasang
alurkerja build-alurkerja --db-server

CLI menanyakan username dan password database (password diketik dua kali, tersembunyi), lalu menjalankan:

KomponenNilai
Containeralurkerja_postgres, restart: unless-stopped
Imagepgvector/pgvector:pg16 — sama dengan stack bawaan, extension pgvector sudah ada
Port8101 (sama dengan AK_PORT_POSTGRES), ganti lewat --db-port
Volumealurkerja_pgdata

Pertanyaan bisa dilewati dengan flag: --db-user <user> --db-password '<password>'. Di akhir, CLI mencetak perintah untuk server aplikasi.

2. Di server aplikasi — jalankan perintah yang dicetak tadi:

alurkerja build-alurkerja --database external --db-host <IP server database> --db-port 8101 --db-user <user>

Password ditanyakan di sini (tidak ikut tercetak). Step Init database membuat alurkerja_db dan keycloak_db di server database, lalu schema dimuat seperti biasa — container postgres lokal tidak dijalankan.

Expected output di server database:

PostgreSQL + pgvector is running on port 8101 (container alurkerja_postgres, volume alurkerja_pgdata).

Port database terbuka ke semua interface. Batasi aksesnya hanya dari IP server aplikasi di firewall jaringan atau cloud. Docker melewati aturan ufw untuk port yang di-publish, jadi firewall level OS saja tidak cukup.

Perhatian: username dan password hanya berlaku saat volume alurkerja_pgdata masih kosong. Kalau volume itu sudah berisi data dari instalasi sebelumnya, CLI memberi peringatan dan user lama yang tetap berlaku.

Dijalankan ulang: container yang sedang berjalan di-SKIP; container yang berhenti dinyalakan lagi dengan data dan user lamanya.

Jika gagal: port 8101 is already in use — port dipakai proses lain; hentikan prosesnya atau pilih port lain dengan --db-port. Database tidak siap dalam 60 detik — cek lognya dengan docker logs alurkerja_postgres.

Jalur cepat untuk instalasi existing

--update-image

alurkerja build-alurkerja --update-image

Cek prasyarat (docker, login Harbor), unduh ulang .env.example, docker-compose.yml, dan nginx, merge key baru ke .env, isi AK_VERSION dari rilis migrasi terbaru, salin data MinIO lama ke RustFS kalau belum (Section K), docker compose pull, lalu recreate container. Nilai .env lain, volume, dan schema tidak disentuh; service yang dikonfigurasi external dilewati.

--update-db

alurkerja build-alurkerja --update-db

Mengunduh ulang file SQL dari rilis (migrations, config/*.sql, scripts), membuat ulang dan memuat config/sql/public.sql, lalu mengisi ALURKERJA_VERSION dengan rilis migration terakhir. Kalau versinya berubah, container tenant di-recreate supaya melaporkan versi baru.

--update-domain dan --local-domain

alurkerja build-alurkerja --update-domain --domain alurkerja.dev
alurkerja build-alurkerja --local-domain

--update-domain menulis ulang blok domain di .env, restart stack, dan menyinkronkan web-origins Keycloak; flag pendampingnya --port, --microsite-domain, --minio-domain, --sso-domain. Setelah domain diisi, CLI menanyakan sertifikatnya: Public (CA publik, tidak memasang apa pun) atau Company internal (folder sertifikat dari IT untuk CA privat perusahaan — lihat J.3). Kalau sertifikat semacam itu sudah terpasang, pilihannya Keep / Replace / Remove (J.4). --local-domain adalah kebalikannya: kembali ke https://alurkerja.local:8100 dengan sertifikat mkcert, tanpa domain yang perlu diketik. Detail dan peta URL: Section J — Skema Domain.

--update-keycloak

alurkerja build-alurkerja --update-keycloak

Menyegarkan scripts/ dari rilis lalu menjalankan ulang setup-keycloak.sh — untuk role, client, atau mapper baru tanpa install ulang. Script-nya idempoten: client secret dibaca ulang, bukan dirotasi, jadi container hanya di-recreate kalau nilai realm di .env berubah. Untuk Keycloak external, kredensial admin diambil dari .env; kalau kosong, CLI menanyakannya atau isi lewat --keycloak-admin-user dan --keycloak-admin-password.

Command lain

Update CLI

alurkerja update           # cek dan pasang versi terbaru (diverifikasi dengan checksums.txt)
alurkerja update --force   # unduh ulang walau sudah versi terbaru

build-alurkerja memperbarui CLI otomatis sebelum berjalan; kalau update gagal, CLI lanjut dengan versi yang terpasang.

Profile dan login

alurkerja profile add <name> <url> <sso-url> <realm> <client-id> [--client-secret <secret>]
alurkerja profile list | show [name] | use <name> | remove <name>
alurkerja profile edit <name> [--url …] [--sso-url …] [--realm …] [--client-id …] [--client-secret …] [--reset-client-secret]

alurkerja login <profile>          # login sekaligus menjadikan profile itu aktif
alurkerja auth login [profile]
alurkerja auth device [profile]    # login tanpa browser (server headless): cetak URL + kode
alurkerja auth status [profile]
alurkerja auth logout [profile]
alurkerja auth token <authorization_code>

Addon

alurkerja addon init [path]
alurkerja addon zip [--dir <path>]
alurkerja addon publish [path]                  # alias: push
alurkerja addon list [tenant-id]
alurkerja addon <profile> publish [path]        # pakai profile tertentu tanpa mengubah profile aktif

Panduan lengkap: AlurKerja CLI untuk Addon.

Migration database

alurkerja migrate up       --dbname <db> [--host …] [--port …] [--user …] [--password …] [--path ./migrations]
alurkerja migrate status   --env-path ./migrate.env
alurkerja migrate rollback --dbname <db> --path <folder-migrations>

Migration dibaca dari migrations/<schema>/<release>/, dicatat per release di tabel migrate.migrations, atomik per file, dan dikunci dengan pg_advisory_lock. Urutan schema public lalu camunda (--schemas). Koneksi bisa lewat flag, env var (DB_HOST, DB_PORT, DB_USER, DB_PASS, DB_NAME), atau file --env-path.

Deployment

alurkerja deployment init
alurkerja deployment build <config.json> [--skip-push] [--suffix <image-suffix>] [--fromtag <tag>] [--newtag <tag>]

init menyiapkan konfigurasi deployment; build meng-clone/pull project dari file konfigurasi, build image docker, lalu push (kecuali --skip-push).