Proxmox AI — panduan lengkap
Semua yang perlu diketahui untuk menjalankan Proxmox AI: dari menambah organisasi dan host, sampai customer membuat VM, membuka port di vRouter, dan menjadwalkan backup.
Semua nama organisasi, akun (…@contoh.id), alamat IP (203.0.113.x, 198.51.100.x, 10.x) dan domain (panel.contoh.id) di contoh dan screenshot adalah data samaran dari lingkungan demo terpisah. Ganti panel.contoh.id dengan alamat panel yang sebenarnya. Jangan pernah menulis password, token secret, atau API key di chat, tiket, atau dokumen.
Untuk Platform Admin
Menambah organisasi, host Proxmox, vRouter, dan backup server.
Mulai dari Platform →Untuk customer
Membuat dan mengelola VM, membuka port, VPN, laporan, backup, dan tim.
Mulai dari Organisasi →Konsep dasar
Proxmox AI adalah panel multi-organisasi di atas Proxmox VE, vRouter, dan Proxmox Backup Server (PBS). Setiap customer adalah satu organisasi (tenant) dengan anggota, audit log, dan datanya sendiri. Data antar-organisasi dipisahkan di database dengan row-level security, sehingga satu organisasi tidak pernah bisa melihat data organisasi lain.
Model produk
Satu model: setiap organisasi menghubungkan node atau cluster Proxmox VE miliknya sendiri, standalone maupun cluster. Platform tidak menjual kapasitas — yang dikelola di sini adalah infrastruktur milik customer.
| Siapa yang mengatur | |
|---|---|
| Pemilik server | Customer — node atau cluster Proxmox VE miliknya sendiri |
| Koneksi Proxmox / vRouter / PBS | Ditambahkan platform di Hosts, vRouters, dan Backups. Customer melihat dan mengujinya. |
| Backup | PBS milik customer; datastore dan jadwal diatur customer sendiri |
| vRouter | vRouter milik customer |
| Menu customer | Storage & disks, Proxmox connections, Backup connections, API keys |
Peran & hak akses
| Peran | Cakupan | Boleh |
|---|---|---|
| Platform Admin | Seluruh platform | Membuat dan menangguhkan organisasi, mengatur host, vRouter, backup server, keamanan login, SMTP, branding, API key platform. Bisa membuka organisasi mana pun untuk troubleshooting (tercatat di audit organisasi itu). |
| Superadmin | Satu organisasi | Mengelola anggota & peran, aturan four-eyes, AI settings, company profile, API key organisasi; melihat dan menguji koneksi; plus semua hak Operator. |
| Operator | Satu organisasi | Mengusulkan, mengonfirmasi, dan membatalkan aksi (buat VM, start/stop, snapshot, port forward, backup, restore, dst.), mengatur jadwal laporan. |
| Readonly | Satu organisasi | Melihat dashboard, laporan, audit log, dan bertanya ke AI assistant. |

Prinsip keamanan
- Platform Admin terpisah dari organisasi. Halaman
/pmx/dan API/api/platform/…hanya menerima akun Platform Admin; sesi anggota organisasi tidak pernah mendapat haknya. Pada instalasi produksi, area ini dapat dibatasi lebih jauh ke jaringan tertentu. - Anggota organisasi login dari mana saja lewat
/t/<slug>/, dan setiap sesi dikunci ke organisasinya. - Autentikasi dua faktor (aplikasi authenticator) diwajibkan sesuai kebijakan di Sign-in security.
- Tidak ada perubahan tanpa konfirmasi. Setiap perubahan infrastruktur dibuat sebagai usulan berisi rencana dan peringatan, lalu baru dijalankan setelah dikonfirmasi. Aksi berisiko tinggi bisa diwajibkan dikonfirmasi orang kedua (four-eyes).
- Semua tercatat. Setiap aksi, termasuk yang dilakukan Platform Admin di dalam organisasi, masuk ke audit log.
- Rahasia terenkripsi. Token Proxmox, API key vRouter, dan token PBS disimpan terenkripsi (AES-256-GCM) dan tidak pernah ditampilkan lagi.
Akses & login
| Siapa | Alamat | Dari mana |
|---|---|---|
| Platform Admin | https://panel.contoh.id/pmx/ | Publik |
| Anggota organisasi | https://panel.contoh.id/t/<slug-organisasi>/ | Di mana saja |
| Dokumentasi API (Swagger) | https://panel.contoh.id/api/v1/docs | Publik |
| API (dengan key) | https://panel.contoh.id/api/v1/… | Dari IP yang diizinkan pada key |
| Dokumentasi ini | https://panel.contoh.id/docs/ | Publik |
Login Platform Admin
Buka /pmx/, masukkan email dan password, lalu kode dari aplikasi authenticator bila sudah diaktifkan.

Login anggota organisasi
Setiap organisasi punya halaman login sendiri, /t/<slug>/, bermerek nama organisasinya. Anggota baru menerima email undangan berisi tautan untuk membuat password dan mengaktifkan authenticator. Link Forgot password? mengirim email reset (butuh SMTP). Bila Google sign-in aktif, tombol Google juga muncul.

Autentikasi dua faktor (2FA)
- Buka My account → Security, klik aktifkan, lalu pindai QR dengan Google Authenticator, Microsoft Authenticator, 1Password, atau aplikasi sejenis.
- Masukkan kode 6 digit untuk konfirmasi, lalu simpan recovery code di tempat aman. Setiap recovery code hanya berlaku sekali.
- Kalau HP hilang: login dengan recovery code, atau minta Reset 2FA ke Superadmin (Team & roles) atau Platform Admin (Platform → Users).

Navigasi aplikasi
Platform Admin melihat dua tombol di atas sidebar: Organization (menu customer untuk organisasi yang sedang dipilih) dan Platform (menu platform). Hanya satu area yang tampil sekali waktu, dan area berpindah sendiri saat Anda membuka halaman platform.
- Pemilih organisasi ada di atas menu area Organization.
- Setiap grup menu bisa dilipat dengan mengklik judulnya. Tombol ‹ di sebelah logo menciutkan sidebar menjadi ikon.
- Banyak halaman memakai tab. Tab yang terbuka tersimpan di URL (
?tab=…), jadi tautannya bisa dibagikan. - Status Live di bawah sidebar menunjukkan data node dan VM sedang diperbarui otomatis.
- Semua halaman bisa dipakai di ponsel. Menu dibuka lewat tombol ☰, dan tabel berubah menjadi kartu.
Tampilan ponsel: Overview organisasi.
Alur: onboarding organisasi
Customer memiliki server sendiri. Semua koneksinya ditambahkan oleh platform; customer lalu bekerja sendiri di panelnya.
- Buat organisasi di Platform → Tenants dengan produk Proxmox, isi email pemilik agar undangan Superadmin terkirim.
- Siapkan token Proxmox VE di node customer (perintah), lalu buka Hosts → + Add host, pilih organisasinya, dan tempel token. Koneksi diuji langsung dan nama cluster dibaca dari Proxmox.
- (Opsional) vRouter: jalankan perintah persiapan di vRouter customer, lalu tambahkan di vRouters.
- (Opsional) Backup server: siapkan token PBS (perintah), lalu buka Backups, pilih organisasi, dan jalankan wizard. Isi alamat PBS yang dipakai node Proxmox customer.
- Customer mulai bekerja: membuat datastore di Backups → Datastores, membuat VM di Operations, mengundang tim di Team & roles.
Alur: dari VM baru sampai backup (customer)
- Tambahkan SSH public key Anda di My account → SSH keys (sekali saja).
- Operations → Create VM: pilih template, ukuran, aktifkan Set up this VM, pilih kunci Anda lewat tombol My keys, lalu klik Review dan Confirm.
- Buka akses dari internet bila perlu: vRouter → Port forwards.
- Jadwalkan backup: Backups. Lewat datastore dan job.
- Pantau: Overview, Reports, Audit log.
Platform overview
Halaman pertama area Platform: jumlah tenant, user, koneksi Proxmox, node online, guest yang berjalan, dan aksi 30 hari terakhir. Di bawahnya ada kartu Proxmox (organisasi, host, vRouter, backup server), grafik keanggotaan dan guest per tenant, aktivitas harian, serta tab Tenant health dan Failures (7 days). Data live diperbarui otomatis.

Tenants
Daftar semua organisasi. Create tenant meminta nama, slug (bagian URL /t/<slug>/), dan email pemilik opsional yang langsung diundang sebagai Superadmin. Dari tabel Anda bisa membuka organisasi, menangguhkan atau mengaktifkannya kembali, dan mengganti nama.

Users
Semua akun di platform: status (aktif, diundang, dinonaktifkan), keanggotaan organisasi beserta perannya, login terakhir, dan status 2FA. Aksi yang tersedia: + Assign to organization, ubah peran, kirim ulang undangan, cabut semua sesi, Reset 2FA, dan nonaktifkan akun.

Proxmox
Customer dengan Proxmox VE miliknya sendiri. Hanya platform yang menambah, mengubah, dan menghapus koneksi (Proxmox, vRouter, backup server). Organisasi melihat koneksinya secara baca-saja dan bisa menekan Test.
Overview
Seluruh produk di satu layar: jumlah customer, host (aktif / total, cluster, yang gagal tes), vRouter, backup server, node dan guest yang berjalan. Kotak Needs attention menampilkan koneksi yang gagal tes dan customer yang belum punya host. Di bawahnya ada tabel semua customer dan aksi gagal 7 hari terakhir.

Organisasi
Daftar organisasi beserta host, vRouter, backup, node, guest, CPU, RAM, dan aktivitas terakhir. Tombol Open berpindah ke organisasi tersebut untuk troubleshooting; aksi Anda tercatat di audit log-nya.

Hosts
Semua node dan cluster Proxmox VE milik customer, dengan pencarian (termasuk nama organisasi) dan filter All / Online / Needs attention. Edit… dipakai untuk mengganti token, Test untuk menguji ulang, dan Remove hanya menghapus koneksi di Proxmox AI (Proxmox VE customer tidak disentuh).

+ Add host membuka wizard 3 langkah:
- Prepare — perintah token lengkap per tab: User & read-only token, Operator role, Storage admin (opsional), dan Network & tips. Jalankan di shell node customer (lihat juga Menyiapkan token Proxmox VE).
- Connect — pilih organisasi, isi nama, API URL (
https://10.10.10.11:8006), token ID, dan secret. Menyimpan langsung menguji koneksi, lalu membaca versi, node, dan nama cluster. - Done — hasil tes. Organisasi melihat host ini di menu Proxmox connections.

Untuk cluster, tambahkan dua node atau lebih sebagai baris sendiri. Nama cluster diisi otomatis saat tes, dan node lain dipakai sebagai cadangan ketika satu node reboot.
vRouters
Semua vRouter organisasi: organisasi, alamat, status, dan hasil tes terakhir. Klik + Add vRouter, lalu buka Prepare the vRouter first. Perintah setup di sana sudah berisi alamat Proxmox AI, dan interface WAN bisa diganti. Salin, ganti <your-key> dengan key acak, jalankan di vRouter, lalu isi organisasi, nama, API URL, dan key yang sama. Setelah itu klik Save and test.
Daftar vRouter (kiri) dan form tambah beserta perintah yang bisa disalin (kanan).
Backups
Backup server (PBS) milik customer. Tabel atas memuat semua server dari semua organisasi: status, versi PBS, jumlah datastore, dan tes terakhir. Pilih organisasi di kotak Organization (atau klik Manage… di barisnya) untuk membuka tab milik organisasi itu:
- Connections — server yang terhubung, dengan tombol Test, Edit, dan Remove (Remove hanya bisa bila tidak ada datastore).
- Setup wizard — Backup server → Access token → Proxmox VE access → Done.
- Proxmox VE access — alamat PBS yang dipakai tiap koneksi Proxmox customer.
- Prepare the server — perintah token untuk dua kondisi: Proxmox AI yang mengelola datastore, atau memakai datastore yang sudah ada.

- Backup server — isi alamat yang dipakai Proxmox AI, klik Check the server, lalu cocokkan fingerprint dengan Dashboard → Show Fingerprint di PBS dan centang konfirmasinya. Alamat privat memunculkan peringatan: buat port forward yang hanya mengizinkan IP Proxmox AI.
- Access token — pilih kondisi, jalankan perintahnya di PBS, lalu tempel token ID dan secret. Connect and test menyimpan dan menguji koneksi.
- Proxmox VE access — untuk setiap koneksi Proxmox customer pilih Same network, Through the internet, atau Through a VPN, lalu isi alamat PBS untuk node itu (misalnya
10.10.20.5:8007). Alamat berport 8006 (Proxmox VE) ditolak. - Done — organisasi kini melihat server ini di Backup connections dan membuat datastore sendiri di Backups → Datastores.
Langkah pertama wizard setelah membaca sertifikat (kiri) dan tab Proxmox VE access (kanan).
Settings & security
API & branding
- API keys — key platform. Aksesnya bisa whitelist (daftar IP) atau VPN (hanya dari jaringan VPN), dengan masa berlaku dan batas permintaan per menit. Key hanya ditampilkan sekali.
- Branding — nama produk, logo, dan alamat dasar API yang tampil di panel dan dokumentasi API.
- Docs — tautan ke dokumentasi Swagger dan
openapi.json.
Sign-in security
Kebijakan autentikasi dua faktor:
- Organization members — Required for every organization (disarankan), Each organization decides (diatur Superadmin di Team & roles → Tenant settings), atau Off.
- Platform Admins — Optional atau Required. Sebelum memilih Required, aktifkan dulu 2FA untuk akun Anda sendiri agar tidak ikut keluar.
- Adoption — berapa anggota tiap organisasi yang sudah memakai 2FA.

SMTP
Server email untuk undangan, reset password, dan laporan terjadwal. Isi host, port, keamanan (TLS/STARTTLS), user, password, dan alamat pengirim, lalu kirim email uji. Tanpa SMTP, undangan tetap dibuat tetapi tautannya harus dibagikan manual.

Google sign-in
Opsional: login dengan akun Google untuk anggota yang emailnya sudah terdaftar. Isi Client ID dan secret dari Google Cloud Console, dengan redirect URI yang ditampilkan di halaman ini. 2FA tetap berlaku sesuai kebijakan.

Platform audit
Audit log seluruh platform: pembuatan tenant, perubahan host, paket, keamanan, dan API key, serta aksi di semua organisasi. Bisa difilter dan diekspor ke CSV.

Organisasi: Overview
Dashboard organisasi: node online, VM yang berjalan, CPU dan RAM armada, status cluster (quorum, HA), lalu tab Nodes & utilization (klik node untuk grafik 1 jam / 24 jam / 7 hari), VMs (pencarian berdasarkan VMID, nama, node, atau IP), Templates, dan vRouter. Data diperbarui otomatis.

Tab VMs pada Overview organisasi.
Operations
Semua perubahan pada VM: Create VM, Manage VMs, Create template, Reboot node, Download, dan Recent actions. Semuanya berupa VM (tidak ada container).
Create VM
- Pilih node dan template (template cloud-init disarankan).
- Isi nama, vCPU, RAM, disk, storage, dan bridge.
- Aktifkan Set up this VM untuk mengatur user login, password, SSH key, jaringan (DHCP atau static IP + gateway), dan DNS. Tombol My keys mengisi SSH public key milik Anda sendiri (dari My account).
- Klik Review. Rencana dan peringatan muncul di kartu usulan; klik Confirm untuk menjalankan.
Create VM.
Manage VMs
Pilih VM untuk melihat detailnya (CPU, RAM, disk, IP, status agent), lalu jalankan aksi: start / shutdown / stop / reboot (juga untuk banyak VM sekaligus), snapshot (buat, rollback, hapus), resize disk, console (noVNC / terminal), login info (reset user/password/SSH key lewat cloud-init), backup now, change size, change network, reinstall OS, dan delete (berisiko tinggi; ketik nama VM untuk konfirmasi).
Change size & Change network
Dari ⋯ di Manage VMs (atau tombol di detail VM):
- Change size… — ubah vCPU dan RAM, dan perbesar disk. Dialog menunjukkan nilai sekarang. vCPU/RAM baru berlaku setelah restart (Reboot the VM now atau At the next reboot). Disk langsung membesar dan tidak bisa diperkecil lagi; image Ubuntu/Debian memakai ruang tambahan setelah boot berikutnya.
- Change network… — pilih DHCP from the vRouter atau Static di dalam jaringan Anda (tampil IP kosong yang disarankan dan IP yang sedang dipakai). Aplikasi menolak IP di luar jaringan, alamat gateway, dan IP yang sudah dipakai perangkat lain. Gateway kosong berarti memakai vRouter. DNS bisa diganti. Perubahan diterapkan cloud-init saat VM boot; proposal menyebutkan aturan Internet access yang masih mengarah ke IP lama. Klien SSH akan memberi peringatan host key berubah.
Reinstall OS
Menu ⋯ → Reinstall OS… (atau tombol di detail VM) memasang sistem operasi baru dari template pilihan pada VM yang sama:
- Dihapus: seluruh isi disk VM (termasuk disk tambahan) dan snapshot-nya.
- Tetap: ID, nama, vCPU, RAM, ukuran dan storage disk, kartu jaringan (MAC), pengaturan IP, serta backup. Reservasi DHCP dan port forward di vRouter tetap berlaku.
- Login: SSH key lama dipertahankan secara default. Password lama tidak bisa dibawa (Proxmox hanya menyimpan hash), jadi isi password baru atau pakai SSH key.
- VM yang sedang berjalan dimatikan dulu, lalu dinyalakan lagi setelah selesai (bisa diubah di dialog).
- Aksi ini berisiko tinggi: konfirmasi dengan mengetik nama VM.
Grafik Utilization punya pilihan Live (default): nilai CPU, RAM, jaringan, dan disk mengikuti pengukuran Proxmox (sekitar setiap 10 detik) untuk 10 menit terakhir, tanpa menunggu statistik per menit. Grafik tidak putus saat daftar diperbarui atau saat satu-dua pembacaan gagal. Pilih 1 hour, 24 hours, atau 7 days untuk riwayat. Pilihan yang sama ada di grafik node pada Overview.
Kalau host sempat mati, file statistik sebuah VM bisa rusak. VM-nya tetap normal, dan grafik menampilkan penjelasan, bukan error. Perbaikan di node: rm -f /var/lib/rrdcached/db/pve-vm-9.0/<vmid> && systemctl restart rrdcached pvestatd.
Create template, Download, Reboot node
- Create template — membangun template cloud-init dari katalog distribusi (Ubuntu, Debian, Rocky, dll.), lengkap dengan checksum resmi.
- Download — mengunduh Installer ISO, Cloud image, atau file dari URL langsung ke storage node.
- Reboot node — reboot terencana dengan pengecekan quorum dan VM yang terdampak.
Usulan & konfirmasi
Setiap perubahan, baik dari form, AI assistant, maupun API, dibuat dulu sebagai usulan berisi rencana, peringatan, dan hasil pengecekan hak token. Usulan kedaluwarsa setelah 15 menit. Setelah Confirm, aksi berjalan di latar belakang dan statusnya berubah menjadi confirmed atau failed. Bila four-eyes aktif, aksi berisiko tinggi harus dikonfirmasi oleh anggota lain. Semua ada di tab Recent actions.

Reports
Laporan PDF/HTML bermerek organisasi (logo dari Company profile): ringkasan armada, utilisasi, VM, backup, dan aktivitas. Tab History berisi laporan yang sudah dibuat, Generate membuat laporan baru untuk periode tertentu (dengan ringkasan AI bila diaktifkan), dan Schedule mengirim laporan harian, mingguan, atau bulanan ke email.
Storage & disks
Per node: storage (terpakai / total), disk fisik beserta pemakaiannya (LVM, ZFS, kosong), resize disk VM, dan buat storage dari disk kosong. Membuat storage menghapus isi disk, butuh hak Sys.Modify, dan harus dikonfirmasi dengan mengetik nama disk.

vRouter
Mengelola vRouter organisasi. Setiap perubahan tetap lewat usulan dan konfirmasi, dan aturan yang dipakai Proxmox AI sendiri ditandai protected sehingga tidak bisa terhapus.
| Tab | Isi |
|---|---|
| Overview | Hostname, versi, interface WAN/LAN, gateway, CPU, memori, trafik, dan port API yang dipakai Proxmox AI. |
| Port forwards | Membuka layanan VM ke internet: pilih VM (atau perangkat lain), port publik, port tujuan, protokol, dan sumber yang diizinkan. Opsi Only me — the IP I am using now mendeteksi IP Anda otomatis dan disarankan untuk akses admin (SSH/RDP). |
| Firewall | Aturan input/forward beserta jumlah hit, tambah atau hapus aturan. |
| VPN | WireGuard: interface, peer, status online, dan membuat perangkat baru. File konfigurasi berisi private key, hanya bisa diunduh Operator dalam 24 jam, dan tercatat di audit. |
| Devices | DHCP lease dan reservasi alamat, dengan pilihan static atau DHCP. |
| Connections | Daftar vRouter organisasi dengan tombol Test (baca-saja; ditambah oleh provider). |

Port forwards, Firewall, dan VPN.
Devices di organisasi (kiri) dan Connections yang baca-saja (kanan).
Backups
Backup organisasi
- Overview — status backup setiap VM: backup terakhir, jumlah backup, dan VM tanpa backup baru.
- Backups — snapshot per datastore, dengan status verifikasi dan proteksi, serta tombol Restore. Restore selalu membuat VM baru dan tidak pernah menimpa VM asli.
- Jobs & tasks — retensi (prune), verifikasi, garbage collection, dan riwayat task backup server.
- Datastores (Superadmin) — membuat datastore baru (di disk kosong atau folder) atau memakai yang sudah ada, menghubungkannya ke Proxmox VE (standalone atau cluster, pilih node), dan memantau status tautan per node.

Hijau: semua node bisa memakai storage. Kuning: hanya sebagian. Merah: tidak bisa, atau storage hilang. Bila alamatnya berbeda dari yang seharusnya, tombol use <alamat> membuat usulan untuk memindahkan storage; backup di PBS tidak tersentuh.
AI assistant
Bertanya dalam bahasa sehari-hari, misalnya: "VM mana yang CPU-nya paling tinggi?", "VM apa saja yang belum di-backup minggu ini?", "buatkan VM Ubuntu 2 vCPU 4 GB". Asisten membaca data lewat alat baca-saja. Bila Anda meminta perubahan, ia membuat usulan yang tetap harus dikonfirmasi. Butuh provider AI yang diatur di AI settings.

Audit log
Semua kejadian di organisasi: siapa melakukan apa, kapan, dari mana (manual, AI, API, platform), target, dan hasilnya. Bisa difilter per aksi, pelaku, dan status, dibuka detailnya, dan diekspor ke CSV.

Tenant admin
Menu untuk Superadmin organisasi.
Team & roles
- Members — anggota, peran, status 2FA, dan login terakhir. Dari sini Anda bisa mengubah peran, mengirim ulang undangan, Reset 2FA, atau mengeluarkan anggota.
- Invite — undang lewat email dengan nama dan peran.
- Tenant settings — aturan four-eyes untuk aksi berisiko tinggi, dan kewajiban 2FA (bila platform menyerahkannya ke organisasi).
- Roles — penjelasan setiap peran.
Proxmox connections & Backup connections
Kedua halaman ini baca-saja: berisi Proxmox VE dan backup server yang dihubungkan provider untuk organisasi, dengan tombol Test. Untuk menambah node, mengganti token, atau menghapus koneksi, hubungi provider (platform mengerjakannya di Hosts / Backups). Tab Proxmox VE access memperlihatkan alamat PBS yang dipakai tiap koneksi Proxmox.
Semua koneksi dikelola provider agar ada satu tempat yang bertanggung jawab atas token dan akses. API juga menolak perubahan koneksi dari organisasi (403 maintained by … your provider).
AI settings
Provider AI milik organisasi (base URL yang kompatibel dengan OpenAI, API key, model). Tombol Test dan daftar model tersedia, dan asisten bisa diaktifkan atau dimatikan. Key disimpan terenkripsi.

Company profile
Nama perusahaan, alamat, dan logo (maksimal 2 MB) yang tampil di kepala laporan, lengkap dengan pratinjau.

API keys
Key organisasi untuk integrasi, dengan peran (Readonly / Operator / Superadmin), daftar IP yang diizinkan, masa berlaku, dan batas per menit. Key hanya tampil sekali, jadi langsung simpan di secret manager.

My account & SSH key
- Profile — nama dan email.
- Organizations — organisasi tempat Anda menjadi anggota.
- Password dan Security (2FA, recovery code).
- SSH keys — public key milik Anda sendiri. Setiap anggota punya daftarnya masing-masing, dan saat membuat VM atau mengatur login cukup klik My keys. Tempel isi
~/.ssh/id_ed25519.pub(jangan private key; itu ditolak). - Sessions — sesi aktif di tiap perangkat, bisa dicabut.

# membuat SSH key di komputer Anda (sekali saja)
ssh-keygen -t ed25519 -C "nama@laptop"
cat ~/.ssh/id_ed25519.pub # salin baris ini ke My account → SSH keys
API & Swagger
Semua yang bisa dilakukan di panel juga tersedia lewat API, kecuali empat hal yang sengaja dikecualikan: 2FA dan sesi pribadi (/account/…), membuat atau mencabut API key (key tidak boleh membuat key), tiket console tamu, dan stream live dashboard.
- Base URL:
https://panel.contoh.id/api/v1 - Autentikasi: header
Authorization: Bearer pak_… - Key organisasi bekerja di satu organisasi sesuai perannya. Key platform mengelola organisasi, host, paket, dan langganan.
- IP whitelist: permintaan dari IP lain ditolak (403), walau key-nya benar.
- Batas: default 120 permintaan/menit. Header
X-RateLimit-Limit,X-RateLimit-Remaining, danX-Request-Idselalu dikirim;429disertaiRetry-After. - Error berbentuk
{"error": "…"}.
Dokumentasi Swagger (VPN only)
Buka dari VPN: /api/v1/docs, atau file /api/v1/openapi.json. Dari luar VPN, halaman-halaman ini menjawab Akses dibatasi ke jaringan VPN. Endpoint API-nya sendiri tetap bisa dipakai dari IP yang diizinkan pada key.

Contoh
# siapa pemilik key ini
curl -s https://panel.contoh.id/api/v1/me -H "Authorization: Bearer $PMX_KEY"
# daftar VM
curl -s https://panel.contoh.id/api/v1/vms -H "Authorization: Bearer $PMX_KEY"
# 1) usulkan VM baru — belum ada yang berubah
curl -s -X POST https://panel.contoh.id/api/v1/actions \
-H "Authorization: Bearer $PMX_KEY" -H "Content-Type: application/json" \
-d '{"action":"create_vm","params":{"node":"pve-01","template":"9000","name":"web-02","vcpu":2,"ram_gb":4,"disk_gb":32,"start":true}}'
# 2) konfirmasi usulan (id dari langkah 1), lalu pantau statusnya
curl -s -X POST https://panel.contoh.id/api/v1/actions/123/confirm -H "Authorization: Bearer $PMX_KEY"
curl -s https://panel.contoh.id/api/v1/actions/123 -H "Authorization: Bearer $PMX_KEY"
Jangan menaruh key di kode, repository, atau chat. Key yang bocor bisa dicabut di halaman API keys.

Menyiapkan token Proxmox VE
Host customer (Proxmox)
Jalankan di shell salah satu node (untuk cluster cukup sekali). Jangan pernah memakai root@pam.
# 1. user + token read-only (dashboard, laporan, AI)
pveum user add pmxapps@pve --comment "Proxmox AI"
pveum acl modify / --users pmxapps@pve --roles PVEAuditor
pveum user token add pmxapps@pve dashboard --privsep 0
# 2. role Operator (VM, template, download, resize, power)
pveum role add PMXAppsOperator --privs "VM.Audit VM.Allocate VM.Clone VM.Config.CPU VM.Config.Memory VM.Config.Disk VM.Config.Network VM.Config.Options VM.Config.HWType VM.Config.Cloudinit VM.PowerMgmt Datastore.Audit Datastore.AllocateSpace Datastore.AllocateTemplate Sys.Audit Sys.PowerMgmt Sys.AccessNetwork SDN.Use VM.Console VM.Config.CDROM"
pveum acl modify / --users pmxapps@pve --roles PMXAppsOperator
# 3. (opsional) storage admin — membuat storage dari disk kosong MENGHAPUS disk itu
pveum role add PMXAppsStorageAdmin --privs "Sys.Modify Datastore.Allocate"
pveum acl modify / --users pmxapps@pve --roles PMXAppsStorageAdmin
Token ID-nya pmxapps@pve!dashboard. Secret (value) hanya tampil sekali, jadi langsung tempel di wizard. Bila token dibuat dengan privilege separation, beri role yang sama juga ke tokennya:
pveum acl modify / --tokens 'pmxapps@pve!dashboard' --roles PMXAppsOperator
pveum user token permissions pmxapps@pve dashboard
Mengganti token
- Buat token baru di node (
pveum user token add …). - Platform: Hosts → Edit…, tempel secret baru, lalu simpan. Host aktif kembali setelah tes berhasil.
- Hapus token lama di node:
pveum user token remove pmxapps@pve <nama-lama>.
Menyiapkan vRouter
Buat key acak di komputer Anda (openssl rand -hex 32), lalu jalankan blok ini di shell vRouter. Rule 25 hanya membuka port API (443) untuk alamat Proxmox AI. Wizard di panel sudah mengisi alamatnya; di contoh ini 203.0.113.4.
configure
set service https api rest
set service https api keys id proxmox-apps key '<your-key>'
set firewall ipv4 input filter rule 25 action 'accept'
set firewall ipv4 input filter rule 25 protocol 'tcp'
set firewall ipv4 input filter rule 25 destination port '443'
set firewall ipv4 input filter rule 25 source address '203.0.113.4'
set firewall ipv4 input filter rule 25 inbound-interface name 'eth0'
commit
save
exit
commit, bukan commit-confirmBlok ditempel sekaligus. commit-confirm menunggu Anda mengetik confirm secara manual; kalau terlewat, vRouter membatalkan seluruh perubahan dan restart. Gunakan commit-confirm 5 hanya bila Anda juga mengubah kebijakan default firewall atau aturan akses Anda sendiri, dan ketik confirm sendiri setelahnya.
Pengecekan di mode konfigurasi: show service https dan show firewall ipv4 input filter. Ganti eth0 bila interface WAN Anda berbeda.
Menyiapkan Proxmox Backup Server
Menyiapkan token PBS
Kondisi 1 — Proxmox AI mengelola datastore (server milik organisasi itu):
proxmox-backup-manager user create pmxapps@pbs
proxmox-backup-manager acl update / Admin --auth-id pmxapps@pbs
proxmox-backup-manager user generate-token pmxapps@pbs apps
proxmox-backup-manager acl update / Admin --auth-id 'pmxapps@pbs!apps'
proxmox-backup-manager cert info | grep Fingerprint
Kondisi 2 — memakai datastore yang sudah ada (server dipakai bersama; contoh datastore acme-backup):
proxmox-backup-manager user create acme@pbs
proxmox-backup-manager acl update /datastore/acme-backup DatastorePowerUser --auth-id acme@pbs
proxmox-backup-manager user generate-token acme@pbs apps
proxmox-backup-manager acl update /datastore/acme-backup DatastorePowerUser --auth-id 'acme@pbs!apps'
proxmox-backup-manager cert info | grep Fingerprint
Cocokkan fingerprint dengan Dashboard → Show Fingerprint di PBS. Fingerprint dikunci setelah disimpan.
Jaringan & port
| Dari | Ke | Port | Catatan |
|---|---|---|---|
| Proxmox AI | Proxmox VE | 8006/tcp | Batasi di firewall Proxmox hanya untuk IP Proxmox AI. |
| Proxmox AI | vRouter API | 443/tcp | Rule 25 di perintah vRouter. |
| Proxmox AI | PBS | 8007/tcp | PBS di jaringan privat: buat port forward yang hanya mengizinkan IP Proxmox AI. |
| Node Proxmox VE | PBS | 8007/tcp | Satu jaringan: alamat LAN. Beda lokasi: port forward yang mengizinkan IP publik node. VPN: izinkan port 8007 di tunnel. |
| Pengguna | Panel | 443/tcp | Platform, Swagger, dan dokumentasi hanya dari VPN. |
Uji dari server Proxmox AI: curl -k -s -o /dev/null -w "%{http_code}\n" https://<PROXMOX-IP>:8006/api2/json/version (401 = terjangkau, 000 = diblokir).
Pemecahan masalah
| Gejala / pesan | Penyebab | Solusi |
|---|---|---|
Akses terbatas / Akses dibatasi ke jaringan VPN | Membuka halaman platform, Swagger, atau dokumentasi dari luar VPN. | Sambungkan VPN lalu muat ulang. |
| Perintah vRouter ditempel tapi tidak ada yang berubah; vRouter restart | Blok memakai commit-confirm dan confirm tidak diketik. | Pakai blok terbaru dari panel (commit → save → exit). |
Invalid command saat show service https | Dijalankan di mode operasional. | Masuk configure dulu, atau pakai run show … sesuai versi. |
| Connected to PBS …, but this token may not create datastores | ACL hanya diberikan ke token, bukan ke user (atau sebaliknya). | Jalankan kedua baris acl update (PBS), lalu Test. |
Not ready for customers yet / datastore root /dev/sdb ditolak | Root datastore diisi path disk, atau belum ada disk yang disiapkan. | Test → Prepare disk… → ketik path disk → Erase and prepare. |
unable to parse calendar event at 'daily' saat membuat ruang backup | Format jadwal lama (sudah diperbaiki; sekarang dikirim sebagai 03:30). | Ulangi Give backup space…. Semua langkah yang gagal sudah dibatalkan otomatis. |
Proxmox HTTP 400 Parameter verification failed. — comment: property is not defined in schema saat membuat ruang backup | Versi lama mengirim comment ke storage Proxmox VE (sudah diperbaiki). | Ulangi Give backup space…. Langkah yang gagal sudah dibatalkan otomatis. |
| 403 maintained by … your provider | Organisasi mencoba menambah atau mengubah koneksi Proxmox, vRouter, atau PBS. | Koneksi diatur platform di Hosts / -Routers / -Backups. |
| Koneksi Proxmox test failed / tidak terjangkau | Firewall port 8006, token dihapus, atau sertifikat. | Cek firewall untuk IP Proxmox AI, buat token baru, matikan Verify TLS untuk sertifikat self-signed. |
| Aksi ditolak karena hak token (Missing: …) | Role token kurang. | Perbarui role PMXAppsOperator dengan perintah di token Proxmox. |
| Storage PBS tidak tersedia di sebagian node | Node tidak bisa menjangkau alamat PBS. | Platform memperbaiki alamat di Backups → Proxmox VE access, lalu customer klik use <alamat> di Datastores. |
| Tidak menerima email undangan / reset | SMTP belum diatur atau email masuk spam. | Atur SMTP, kirim ulang undangan dari Team & roles atau Users. |
| HP authenticator hilang | — | Pakai recovery code, atau minta Reset 2FA. |
Glosarium
| Organisasi / tenant | Satu customer beserta anggota dan datanya. |
| Usulan (proposal) | Rencana perubahan yang baru dijalankan setelah dikonfirmasi. |
| Four-eyes | Aksi berisiko tinggi harus dikonfirmasi orang kedua. |
| Datastore | Tempat penyimpanan backup di PBS. |
| Prune / GC / verify | Retensi backup, pembersihan data yang tak terpakai, dan pemeriksaan integritas di PBS. |
| vRouter | Router virtual (VM) untuk jaringan customer: NAT, firewall, DHCP, VPN WireGuard. |
| Cloud-init / Set up this VM | Pengaturan awal VM (user, password, SSH key, jaringan, DNS) dari template yang mendukungnya. |
| Egress IP | Alamat publik yang dipakai Proxmox AI saat menghubungi server; inilah yang diizinkan di firewall. |
Dokumentasi Proxmox AI · screenshot diambil dari lingkungan demo dengan data samaran · hanya untuk penggunaan internal.