Konfigurasi Awal NexaUI Framework

Pengenalan

Setelah menginstal NexaUI Framework, langkah selanjutnya adalah melakukan konfigurasi awal untuk menyesuaikan framework dengan kebutuhan aplikasi Anda. Konfigurasi yang tepat akan memastikan aplikasi berjalan dengan optimal dan aman.

File Konfigurasi Lingkungan (.env)

File .env adalah tempat utama untuk menyimpan konfigurasi yang spesifik untuk lingkungan tertentu. File ini tidak disertakan dalam version control untuk alasan keamanan.

Jika Anda belum memiliki file .env, salin .env.example menjadi .env:

cp .env.example .env

Kemudian edit file .env untuk menyesuaikan dengan lingkungan Anda:

# Application
APP_NAME="My NexaUI App"
APP_ENV=development    # development, testing, production
APP_DEBUG=true         # true untuk development, false untuk production
APP_URL=http://localhost
APP_KEY=               # Akan diisi oleh key:generate command

# Database
DB_CONNECTION=mysql    # mysql, pgsql, sqlite, sqlsrv
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=nexaui_app
DB_USERNAME=root
DB_PASSWORD=

# Mail
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="$NexaUI Framework"

Menghasilkan Application Key

Application key digunakan untuk enkripsi data dan session. Untuk menghasilkan key baru:

php nexa key:generate

Perintah ini akan menghasilkan key acak dan menyimpannya di file .env pada variabel APP_KEY.

Konfigurasi Database

NexaUI mendukung beberapa jenis database melalui PDO. Konfigurasikan koneksi database di file .env:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=nexaui_app
DB_USERNAME=root
DB_PASSWORD=secret

Pastikan database sudah dibuat sebelum menjalankan aplikasi:

# MySQL
mysql -u root -p -e "CREATE DATABASE nexaui_app CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"

Konfigurasi Web Server

Apache

Pastikan mod_rewrite diaktifkan dan direktori aplikasi memiliki konfigurasi AllowOverride All. NexaUI menyediakan file .htaccess default yang mengatur rewrite rules.

# .htaccess

    RewriteEngine On
    RewriteBase /
    
    # Handle Front Controller
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

Nginx

Untuk Nginx, tambahkan konfigurasi berikut ke blok server:

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

Konfigurasi Timezone dan Locale

Untuk mengatur timezone dan locale aplikasi, edit file system/Config/app.php:

// Timezone
'timezone' => 'Asia/Jakarta',

// Locale
'locale' => 'id',
'fallback_locale' => 'en',

Konfigurasi Cache

NexaUI mendukung beberapa driver cache. Konfigurasikan cache di system/Config/cache.php:

// Default cache driver
'default' => 'file',

// Cache stores
'stores' => [
    'file' => [
        'driver' => 'file',
        'path' => SYSTEM_PATH . '/Storage/cache',
    ],
    'redis' => [
        'driver' => 'redis',
        'host' => '127.0.0.1',
        'port' => 6379,
        'password' => null,
    ],
],

Konfigurasi Session

Konfigurasikan session di system/Config/session.php:

// Session driver (file, database, redis)
'driver' => 'file',

// Session lifetime in minutes
'lifetime' => 120,

// Session cookie name
'cookie' => 'nexaui_session',

// Session encryption
'encrypt' => true,

// Session file location
'files' => SYSTEM_PATH . '/Storage/sessions',

Konfigurasi Mail

Untuk mengirim email, konfigurasikan pengaturan mail di .env:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=your-username
MAIL_PASSWORD=your-password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=hello@example.com
MAIL_FROM_NAME="My NexaUI App"

Konfigurasi Logging

NexaUI menggunakan sistem logging yang dapat dikonfigurasi di system/Config/logging.php:

// Default log channel
'default' => 'daily',

// Log channels
'channels' => [
    'single' => [
        'driver' => 'single',
        'path' => SYSTEM_PATH . '/log/nexa.log',
        'level' => 'debug',
    ],
    'daily' => [
        'driver' => 'daily',
        'path' => SYSTEM_PATH . '/log/nexa.log',
        'level' => 'debug',
        'days' => 14,
    ],
],

Konfigurasi Keamanan

Konfigurasikan pengaturan keamanan di system/Config/security.php:

// CSRF Protection
'csrf_protection' => true,
'csrf_token_name' => 'csrf_token',
'csrf_cookie_name' => 'csrf_cookie',
'csrf_expire' => 7200,

// XSS Filtering
'xss_clean' => true,

// Content Security Policy
'csp_enabled' => true,

Verifikasi Konfigurasi

Setelah melakukan konfigurasi, Anda dapat memverifikasi bahwa semuanya berfungsi dengan baik:

php nexa check:config

Perintah ini akan memeriksa konfigurasi dan menampilkan peringatan jika ada masalah.

Langkah Selanjutnya

Setelah menyelesaikan konfigurasi awal, Anda siap untuk mulai mengembangkan aplikasi dengan NexaUI. Langkah selanjutnya: