Environment Variable
Bagaimana cara mengatur environment variable?
Instalasi Git source code atau create-nocobase-app
Atur environment variable pada file .env di direktori root proyek. Setelah memodifikasi environment variable, Anda perlu menghentikan proses aplikasi dan memulainya kembali.
Instalasi Docker
Modifikasi konfigurasi docker-compose.yml, lalu atur environment variable di parameter enviroment. Contoh:
Anda juga dapat menggunakan env_file, yaitu mengatur environment variable di file .env. Contoh:
Setelah memodifikasi environment variable, Anda perlu membangun ulang container app.
Environment Variable Global
TZ
Digunakan untuk mengatur timezone aplikasi, default-nya adalah timezone sistem operasi.
https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
Operasi yang berkaitan dengan waktu akan diproses berdasarkan timezone ini. Mengubah TZ dapat memengaruhi nilai tanggal di database. Untuk detailnya lihat "Ikhtisar Tanggal & Waktu"
APP_ENV
Environment aplikasi, nilai default-nya development. Opsi yang tersedia:
productionEnvironment produksidevelopmentEnvironment development
APP_KEY
Kunci rahasia aplikasi, digunakan untuk menghasilkan token user dan lain-lain. Ubah menjadi kunci rahasia milik Anda sendiri dan pastikan tidak bocor ke pihak luar.
Jika APP_KEY diubah, token lama juga akan menjadi tidak valid
APP_PORT
Port aplikasi, nilai default 13000
API_BASE_PATH
Prefiks URL API NocoBase, nilai default /api/
API_BASE_URL
CLUSTER_MODE
v1.6.0+
Mode startup multi-core (cluster). Jika variable ini dikonfigurasi, nilainya akan diteruskan ke perintah pm2 start sebagai parameter -i <instances>. Opsi yang tersedia sama dengan parameter -i pada pm2 (lihat PM2: Cluster Mode), termasuk:
max: Menggunakan jumlah core CPU maksimum-1: Menggunakan jumlah core CPU maksimum dikurangi 1<number>: Menentukan jumlah core
Nilai default kosong, yang berarti tidak diaktifkan.
Mode ini perlu digunakan bersama dengan plugin terkait cluster mode, jika tidak fungsi aplikasi mungkin mengalami anomali.
Untuk informasi lebih lanjut, lihat: Cluster Mode.
PLUGIN_PACKAGE_PREFIX
Prefiks nama paket plugin, default-nya: @nocobase/plugin-,@nocobase/preset-.
Contohnya, menambahkan plugin hello ke proyek my-nocobase-app, maka nama paket lengkap plugin tersebut adalah @my-nocobase-app/plugin-hello.
PLUGIN_PACKAGE_PREFIX dapat dikonfigurasi sebagai:
Maka korespondensi antara nama plugin dan nama paket adalah sebagai berikut:
- Nama paket plugin
usersadalah@nocobase/plugin-users - Nama paket plugin
nocobaseadalah@nocobase/preset-nocobase - Nama paket plugin
helloadalah@my-nocobase-app/plugin-hello
DB_DIALECT
Tipe database, opsi yang tersedia:
mariadbmysqlpostgres
DB_HOST
Host database (perlu dikonfigurasi saat menggunakan database MySQL atau PostgreSQL)
Nilai default localhost
DB_PORT
Port database (perlu dikonfigurasi saat menggunakan database MySQL atau PostgreSQL)
- Port default MySQL, MariaDB adalah 3306
- Port default PostgreSQL adalah 5432
DB_DATABASE
Nama database (perlu dikonfigurasi saat menggunakan database MySQL atau PostgreSQL)
DB_USER
User database (perlu dikonfigurasi saat menggunakan database MySQL atau PostgreSQL)
DB_PASSWORD
Password database (perlu dikonfigurasi saat menggunakan database MySQL atau PostgreSQL)
DB_TABLE_PREFIX
Prefiks tabel database
DB_UNDERSCORED
Apakah nama tabel dan nama field di database dikonversi ke gaya snake case, default-nya false. Jika menggunakan database MySQL (MariaDB) dan lower_case_table_names=1, maka DB_UNDERSCORED harus true
Ketika DB_UNDERSCORED=true, nama tabel dan nama field aktual di database tidak konsisten dengan yang terlihat di antarmuka, misalnya orderDetails di database menjadi order_details
DB_LOGGING
Switch log database, nilai default off. Opsi yang tersedia:
onAktifoffNonaktif
DB_POOL_MAX
Jumlah koneksi maksimum pada connection pool database, nilai default 5.
DB_POOL_MIN
Jumlah koneksi minimum pada connection pool database, nilai default 0.
DB_POOL_IDLE
Waktu idle connection pool database, nilai default 10000 (10 detik).
DB_POOL_ACQUIRE
Waktu tunggu maksimum untuk mendapatkan koneksi dari connection pool database, nilai default 60000 (60 detik).
DB_POOL_EVICT
Waktu hidup maksimum koneksi pada connection pool database, nilai default 1000 (1 detik).
DB_POOL_MAX_USES
Berapa kali sebuah koneksi dapat digunakan sebelum dibuang dan diganti, nilai default 0 (tidak terbatas).
LOGGER_TRANSPORT
Cara output log, beberapa cara dipisahkan dengan ,. Nilai default environment development adalah console, environment produksi default-nya console,dailyRotateFile.
Opsi yang tersedia:
console-console.logfile-filedailyRotateFile-file rolling harian
LOGGER_BASE_PATH
Path penyimpanan log berbasis file, default-nya storage/logs.
LOGGER_LEVEL
Level output log, environment development default-nya debug, environment produksi default-nya info. Opsi yang tersedia:
errorwarninfodebugtrace
Level output log database adalah debug, dikontrol oleh DB_LOGGING apakah dioutput, tidak dipengaruhi oleh LOGGER_LEVEL.
LOGGER_MAX_FILES
Jumlah maksimum file log yang dipertahankan.
- Ketika
LOGGER_TRANSPORTadalahfile, nilai default-nya10. - Ketika
LOGGER_TRANSPORTadalahdailyRotateFile, gunakan[n]duntuk mewakili jumlah hari. Nilai default-nya14d.
LOGGER_MAX_SIZE
Rolling log berdasarkan ukuran.
- Ketika
LOGGER_TRANSPORTadalahfile, satuannyabyte, nilai default-nya20971520 (20 * 1024 * 1024). - Ketika
LOGGER_TRANSPORTadalahdailyRotateFile, dapat menggunakan[n]k,[n]m,[n]g. Default-nya tidak dikonfigurasi.
LOGGER_FORMAT
Format pencetakan log, environment development default-nya console, environment produksi default-nya json. Opsi yang tersedia:
consolejsonlogfmtdelimiter
Referensi: Format Log
CACHE_DEFAULT_STORE
Identifier unik untuk metode caching, menentukan metode caching default sisi server. Nilai default memory. Opsi bawaan:
memoryredis
CACHE_MEMORY_MAX
Jumlah maksimum item cache memory, nilai default 2000.
CACHE_REDIS_URL
Koneksi Redis, opsional. Contoh: redis://localhost:6379
TELEMETRY_ENABLED
Mengaktifkan pengumpulan data telemetri, default-nya off.
TELEMETRY_METRIC_READER
Metric reader monitoring yang diaktifkan, default-nya console. Nilai lain perlu merujuk pada nama yang didaftarkan oleh plugin metric reader yang sesuai, misalnya prometheus. Beberapa nilai dipisahkan dengan ,.
TELEMETRY_TRACE_PROCESSOR
Trace processor yang diaktifkan, default-nya console. Nilai lain perlu merujuk pada nama yang didaftarkan oleh plugin processor yang sesuai. Beberapa nilai dipisahkan dengan ,.
WORKER_MODE
Digunakan untuk mengonfigurasi mode kerja node yang berbeda saat melakukan service splitting di mode cluster. Untuk detailnya lihat "Service Splitting: Cara Membagi Service".
SERVER_REQUEST_WHITELIST
Whitelist target untuk request HTTP yang dikirim sisi server ke luar, untuk mencegah serangan SSRF (Server-Side Request Forgery). Dipisahkan dengan koma, mendukung IP eksak, range CIDR, domain eksak, dan subdomain wildcard (satu level).
Cakupan: Node "HTTP Request" pada workflow, "Custom Request" pada tombol Action kustom. Path relatif (memanggil API NocoBase sendiri) tidak terpengaruh oleh batasan ini.
Saat tidak dikonfigurasi: Semua request http/https diizinkan (mempertahankan perilaku sebelumnya). Setelah dikonfigurasi: Hanya request yang cocok dengan whitelist yang diizinkan, request yang tidak cocok akan menghasilkan error.
Format yang didukung:
Environment Variable Eksperimental
APPEND_PRESET_LOCAL_PLUGINS
Digunakan untuk menambahkan plugin preset yang belum diaktifkan, nilainya adalah nama paket plugin (parameter name dari package.json). Beberapa plugin dipisahkan dengan koma.
:::info
- Pastikan plugin sudah diunduh ke lokal dan dapat ditemukan di direktori
node_modules. Untuk informasi lebih lanjut lihat Cara Pengorganisasian Plugin. - Setelah menambahkan environment variable, plugin akan tampil di halaman plugin manager setelah instalasi awal
nocobase installatau upgradenocobase upgrade. :::
APPEND_PRESET_BUILT_IN_PLUGINS
Digunakan untuk menambahkan plugin built-in yang diinstal secara default, nilainya adalah nama paket plugin (parameter name dari package.json). Beberapa plugin dipisahkan dengan koma.
:::info
- Pastikan plugin sudah diunduh ke lokal dan dapat ditemukan di direktori
node_modules. Untuk informasi lebih lanjut lihat Cara Pengorganisasian Plugin. - Setelah menambahkan environment variable, plugin akan diinstal atau di-upgrade secara otomatis saat instalasi awal
nocobase installatau upgradenocobase upgrade. :::
Environment Variable Sementara
Saat menginstal NocoBase, Anda dapat membantu instalasi dengan mengatur environment variable sementara, seperti:
INIT_APP_LANG
Bahasa saat instalasi, nilai default en-US. Opsi yang tersedia:
en-USzh-CN
INIT_ROOT_EMAIL
Email user Root
INIT_ROOT_PASSWORD
Password user Root
INIT_ROOT_NICKNAME
Nickname user Root
Environment Variable yang Disediakan oleh Plugin Lain
WORKFLOW_SCRIPT_MODULES
Daftar modul yang dapat digunakan oleh node JavaScript pada workflow. Untuk detailnya lihat "Node JavaScript: Menggunakan Modul Eksternal".
WORKFLOW_LOOP_LIMIT
Batas maksimum iterasi node loop pada workflow. Untuk detailnya lihat "Node Loop".

