Aplikasi dimulai secara otomatis
Di NocoBase CLI, nb app autostart digunakan untuk mengelola "env mana yang diizinkan untuk memulai secara otomatis" dan "cara menarik env ini secara seragam setelah sistem dimulai."
Jika Anda akan menjalankan aplikasi yang dihosting CLI secara resmi di server, ini biasanya merupakan langkah default di lingkungan produksi.
Mengapa nb app autostart masih dibutuhkan?
Masalah ini sangat umum terjadi.
Ketika banyak orang melihat ini untuk pertama kali, mereka akan berpikir karena lapisan bawah sudah memiliki Docker, PM2, atau sistem itu sendiri sudah memiliki systemd, mengapa kita memerlukan lapisan nb app autostart lainnya.
Alasannya adalah lapisan-lapisan ini sebenarnya tidak memecahkan masalah yang sama:
- Kemampuan seperti Docker, PM2, dan Supervisor memecahkan masalah "bagaimana aplikasi biasanya berjalan dan bagaimana mengelola proses aplikasi."
- Kemampuan seperti
systemd,launchd, dan skrip startup host memecahkan masalah "perintah apa yang harus dijalankan ketika sistem dimulai?" nb app autostartmemecahkan masalah "di tingkat NocoBase CLI, cara mengelola secara seragam env mana yang diizinkan untuk memulai secara otomatis, dan cara menariknya setelah sistem dimulai"
Dengan kata lain, CLI tidak menghilangkan kebutuhan akan Docker, PM2 atau Supervisor. Sebaliknya, ia mengadaptasi metode manajemen proses yang berbeda secara terpadu, dan kemudian menggabungkannya ke dalam serangkaian portal manajemen mandiri yang stabil untuk mengurangi penyakit mental pengguna.
Saat sistem memulai lapisan ini, lapisan ini terus diserahkan ke systemd, launchd atau skrip startup host. Mereka bertanggung jawab untuk mengeksekusi ketika mesin dinyalakan:
Perintah ini kemudian akan menarik semua aplikasi yang mengaktifkan auto-start.
Tanpa lapisan ini, setelah metode operasi yang mendasarinya berbeda, Anda perlu mengingat konfigurasi yang dimulai sendiri dan proses pemulihan Docker, PM2, atau metode lainnya. Setelah menambahkan nb app autostart, Anda hanya perlu terus mengingat rangkaian kebiasaan penggunaan NocoBase CLI yang sama.
Jika Anda ingin mengetahui mengapa desain ini dipecah dengan cara ini terlebih dahulu, lanjutkan membaca [nb maksud desain aplikasi](../cli-design/nb-app-design-intent.md#Mengapa-nb-app-autostart masih diperlukan).
Apa tanggung jawab kelompok komando ini?
Yang paling umum digunakan adalah ini:
nb app autostart enablenb app autostart disablenb app autostart listnb app autostart run
Jika Anda hanya melihat dua tingkat tanggung jawab yang paling umum, Anda dapat memahaminya seperti ini:
enable/disablebertanggung jawab untuk mengatur apakah env tertentu mengizinkan startup otomatisrunbertanggung jawab untuk menarik semua env yang mengaktifkan self-starting selama fase startup sistem.
Pertama-tama aktifkan tanda mulai otomatis untuk env saat ini:
Jika Anda ingin mengoperasikan sesuatu selain env saat ini, Anda dapat menentukannya secara eksplisit:
Setelah mengaktifkannya, Anda dapat memeriksa envs mana yang telah ditandai sebagai self-starting:
Setelah sistem dimulai, Anda perlu menjalankan perintah berikut untuk menarik semua envs yang mengaktifkan auto-start:
Jika Anda ingin melihat keluaran startup yang mendasarinya saat pemecahan masalah, Anda dapat menambahkan:
Jika Anda tidak ingin lagi env dimulai dengan sistem, Anda juga dapat membatalkan tanda ini:
Apa hubungannya dengan Docker, PM2, dan systemd?
Ada batasan di sini yang mudah dibingungkan.
nb app Lapisan ini memecahkan masalah "bagaimana aplikasi berjalan". Lapisan bawah dapat beradaptasi dengan metode berjalan yang berbeda, seperti Docker dan PM2, dan dapat terus diperluas di masa mendatang.
nb app autostart Lapisan ini memecahkan masalah "cara menarik env yang memungkinkan startup otomatis setelah mesin dihidupkan." Ini lebih seperti menyediakan titik masuk yang stabil untuk mekanisme startup host, daripada mengganti alat manajemen proses tertentu.
dengan kata lain:
- Kemampuan seperti Docker, PM2, dan Supervisor lebih dekat dengan cara aplikasi dijalankan
systemd,launchd, skrip startup host, lebih dekat ke lapisan startup sistem
Inilah sebabnya mengapa dalam lingkungan formal, Anda biasanya perlu menghubungkan nb app autostart run ke dalam proses startup sistem Anda sendiri, seperti systemd, launchd, skrip startup platform kontainer, atau mekanisme mulai otomatis host lain yang sudah Anda gunakan.
Lingkup aplikasi
nb app autostart hanya berlaku untuk envs dengan runtime terkelola CLI, yaitu:
localdocker
Jika env ini hanya koneksi API jarak jauh, atau bukan aplikasi yang berjalan di bawah manajemen CLI pada mesin saat ini, maka rangkaian perintah ini tidak cocok untuk memulai sendiri.
##Latihan bawaan
Dalam sebagian besar skenario, urutan berikut sudah cukup:
- Pertama-tama konfirmasikan bahwa aplikasi dapat dimulai secara normal pada mesin saat ini
- Jalankan
nb app autostart enable --env <name> --yes - Hubungkan
nb app autostart runke sistem untuk memulai proses - Nyalakan ulang mesin atau jalankan
runsecara manual untuk memverifikasi apakah mesin pulih secara normal.
Jika Anda masih perlu mengonfigurasi lapisan entri produksi selanjutnya, lanjutkan melihat reverse proxy.

