Konfigurasi dan Menjalankan Proyek LoopBack di ServBay
Apa itu LoopBack?
LoopBack adalah framework Node.js open-source yang sangat dapat diperluas yang dikembangkan oleh IBM, dirancang untuk pembuatan API dan layanan mikro dengan cepat. Framework ini menggunakan pendekatan Model-Driven Development (MDD), sehingga memudahkan developer mendefinisikan model data secara efisien dan menghasilkan RESTful API yang kuat secara otomatis. LoopBack menawarkan fitur-fitur built-in seperti koneksi sumber data, autentikasi dan otorisasi pengguna, API explorer, dan mendukung berbagai database serta protokol.
Fitur Utama dan Keunggulan LoopBack
- Pengembangan Berbasis Model (MDD): Mendefinisikan model data dengan cara yang intuitif, dan framework secara otomatis membuat endpoint API serta logika validasi data.
- Dukungan Berbagai Sumber Data: Mudah terhubung ke berbagai database populer (seperti MongoDB, MySQL, PostgreSQL, MariaDB, dll) serta layanan RESTful, SOAP, dan lainnya.
- CLI Tools yang Kuat: LoopBack CLI (Command Line Interface) menawarkan serangkaian perintah yang mempercepat proses inisialisasi proyek, definisi model, konfigurasi sumber data, dan tugas pengembangan lainnya.
- Modular & Skalabel: Desain framework yang fleksibel memungkinkan integrasi pustaka dan layanan pihak ketiga melalui komponen serta ekstensi untuk mendukung berbagai kebutuhan bisnis.
- Keamanan Bawaan: Menyediakan mekanisme autentikasi dan otorisasi pengguna langsung siap pakai untuk membangun API yang aman secara cepat.
Dengan LoopBack, developer dapat meningkatkan produktivitas dalam membangun backend aplikasi web serta API, menghasilkan aplikasi yang berkinerja tinggi dan mudah dipelihara.
Mengatur dan Menjalankan Proyek LoopBack dengan ServBay
Panduan ini akan membantu Anda memanfaatkan lingkungan Node.js yang disediakan oleh ServBay untuk membuat dan menjalankan proyek LoopBack. Kita akan menggunakan fitur ‘Situs Web’ pada ServBay untuk mengkonfigurasi server web lokal dan, melalui reverse proxy, meneruskan permintaan eksternal ke port aplikasi LoopBack untuk akses dan debug lokal yang mudah.
Membuat Proyek LoopBack
Instalasi LoopBack CLI
Sebelum memulai, pastikan Anda sudah menginstal dan mengaktifkan paket Node.js di ServBay. Selanjutnya, buka terminal, lalu instal LoopBack CLI secara global menggunakan npm:
bashnpm install -g @loopback/cli
1Inisialisasi Proyek
Masuk ke direktori root situs yang direkomendasikan ServBay yaitu
/Applications/ServBay/www
, lalu gunakan LoopBack CLI untuk membuat aplikasi baru. Disarankan menggunakan huruf kecil dan tanda hubung untuk nama proyek, misalnyaservbay-loopback-app
:bashcd /Applications/ServBay/www lb4 app servbay-loopback-app
1
2CLI akan memandu Anda melalui proses setup—mulai dari pemilihan fitur (misalnya REST API, serialisasi, autentikasi) hingga struktur proyek. Sesuaikan pilihan dengan kebutuhan Anda.
Instalasi Dependensi Proyek
Masuk ke direktori proyek baru, lalu instal dependensi Node.js yang diperlukan:
bashcd servbay-loopback-app npm install
1
2
Mengubah Output Proyek LoopBack (Opsional)
Sebagai contoh akses aplikasi Anda lewat ServBay, mari kita modifikasi endpoint /ping
bawaan agar mengembalikan respons khusus.
Modifikasi file
src/controllers/ping.controller.ts
Cari file
src/controllers/ping.controller.ts
di dalam proyek Anda, lalu ubah seperti di bawah untuk membuat endpoint/ping
mengembalikan string "Hello ServBay!":typescriptimport {get} from '@loopback/rest'; export class PingController { constructor() {} @get('/ping') ping(): string { // Ubah return jadi "Hello ServBay!" return 'Hello ServBay!'; } }
1
2
3
4
5
6
7
8
9
10
11
Menjalankan Proyek dalam Mode Pengembangan
Dalam mode pengembangan, Anda umumnya akan menjalankan server pengembangan dari aplikasi LoopBack untuk iterasi cepat dan debugging. Kita akan mengakses server ini melalui reverse proxy ServBay.
Menjalankan Server Pengembangan
Dari root direktori proyek, jalankan aplikasi LoopBack melalui terminal. Biasanya, aplikasi LoopBack akan mendengarkan pada port tertentu. Anda dapat menentukan variabel lingkungan
PORT
, misal gunakan port8585
:bashcd /Applications/ServBay/www/servbay-loopback-app PORT=8585 npm start
1
2Setelah aplikasi berjalan, biasanya akan muncul output seperti "Server is running at http://[::1]:8585" di terminal.
Konfigurasi Situs Web ServBay (Reverse Proxy)
Buka panel kontrol ServBay, lalu masuk ke menu ‘Situs Web’. Klik tombol tambah, lalu buat situs reverse proxy baru untuk meneruskan permintaan domain dan port eksternal ke alamat serta port aplikasi LoopBack Anda:
- Name (Nama): Misal
My first LoopBack dev site
(untuk identifikasi di ServBay) - Domain (Domain): Misal
servbay-loopback-dev.servbay.demo
(domain lokal untuk diakses melalui browser) - Type (Tipe): Pilih
Reverse Proxy
- IP Address (Alamat IP): Masukkan
127.0.0.1
(karena aplikasi LoopBack berjalan di mesin lokal) - Port (Port): Masukkan
8585
(port yang digunakan oleh aplikasi LoopBack)
Setelah konfigurasi selesai, simpan dan terapkan di ServBay. ServBay akan otomatis mengatur DNS lokal (dengan mengedit
/etc/hosts
atau menggunakan ServBay Helper Tool) dan web server (Caddy/Nginx), sehingga Anda dapat mengakses aplikasi melalui domain yang sudah diatur.Untuk detail penambahan situs reverse proxy di ServBay, lihat dokumentasi: Menambah situs pengembangan Node.js.
- Name (Nama): Misal
Akses Aplikasi dalam Mode Development
Buka browser dan akses domain serta path endpoint aplikasi Anda, misal
https://servbay-loopback-dev.servbay.demo/ping
.Karena ServBay secara default menyediakan sertifikat SSL otomatis untuk situs lokal (melalui ServBay User CA maupun ServBay Public CA), Anda bisa langsung mengakses situs lokal dengan aman menggunakan HTTPS. Hal ini mensimulasikan kondisi produksi dan membantu mendeteksi potensi masalah terkait SSL lebih awal. Pelajari lebih lanjut terkait fitur SSL ServBay di: Mengamankan situs dengan SSL.
Deploy Versi Produksi (Opsional)
Jika proyek Anda siap untuk dipublikasikan, Anda bisa menjalankannya dalam mode produksi. Pada mode ini, aplikasi LoopBack biasanya berjalan lebih optimal dan output debug diminimalkan.
Menjalankan Server Produksi
Dari root direktori proyek, jalankan aplikasi LoopBack dalam mode produksi. Tentukan port (misal
8586
) dan set variabel lingkunganNODE_ENV
keproduction
:bashcd /Applications/ServBay/www/servbay-loopback-app PORT=8586 NODE_ENV=production npm start
1
2Konfigurasi Situs Web ServBay (Reverse Proxy)
Kembali ke menu ‘Situs Web’ di panel ServBay, tambahkan atau edit situs reverse proxy yang diarahkan ke server produksi aplikasi LoopBack:
- Name (Nama): Misal
My first LoopBack production site
- Domain (Domain): Misal
servbay-loopback-prod.servbay.demo
- Type (Tipe): Pilih
Reverse Proxy
- IP Address (Alamat IP): Masukkan
127.0.0.1
- Port (Port): Masukkan
8586
(port aplikasi pada mode produksi)
Simpan dan terapkan perubahan.
- Name (Nama): Misal
Akses Aplikasi dalam Mode Produksi
Silakan buka browser dan akses domain produksi Anda, misal
https://servbay-loopback-prod.servbay.demo/ping
, untuk memastikan aplikasi berjalan dengan baik. ServBay juga akan menyediakan dukungan HTTPS secara otomatis di sini.
Koneksi ke Database
LoopBack menawarkan dukungan koneksi ke berbagai database melalui data source connector. ServBay menyediakan berbagai paket database seperti MySQL, MariaDB, PostgreSQL, MongoDB, dan Redis. Anda dengan mudah dapat menjalankan layanan database ini di ServBay dan menghubungkannya ke proyek LoopBack Anda.
Berikut beberapa contoh konfigurasi untuk beberapa database umum yang tersedia di ServBay. Silakan pilih dan modifikasi sesuai kebutuhan aplikasi Anda.
Catatan Penting: Username dan password database pada contoh di bawah hanya placeholder. Pastikan untuk menggantinya dengan password root atau akun pengguna yang Anda atur di ServBay. Pengaturan user dan password database dapat diakses melalui panel kontrol ServBay.
Koneksi ke MongoDB
Pastikan Anda sudah menginstal dan menjalankan paket MongoDB di ServBay. Instal connector MongoDB untuk LoopBack:
bashnpm install --save @loopback/connector-mongodb
1Selanjutnya, konfigurasikan data source pada proyek Anda (biasanya di
src/datasources/mongodb.datasource.ts
atau file serupa):typescript// src/datasources/mongodb.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'mongodb', connector: 'mongodb', // ServBay MongoDB secara default berjalan di localhost:27017 url: 'mongodb://localhost:27017/servbay-loopback-app', // Ganti sesuai nama database Anda host: 'localhost', port: 27017, user: '', // Isi username jika authentication digunakan password: '', // Isi password jika authentication digunakan database: 'servbay-loopback-app', // Ganti sesuai nama database Anda // Opsi konfigurasi tambahan... }; export class MongodbDataSource extends juggler.DataSource { static dataSourceName = 'mongodb'; constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22Koneksi ke Redis
Pastikan Redis sudah diinstal dan berjalan pada ServBay. Instal connector Redis LoopBack (perhatikan: LoopBack tidak menyediakan
@loopback/connector-redis
resmi, kebanyakan menggunakanloopback-connector-redis
dari komunitas atau libraryredis
Node.js dengan konsep service LoopBack):bashnpm install --save loopback-connector-redis # Atau library Redis lain yang kompatibel
1Lalu, konfigurasikan data source di proyek Anda (contoh gaya
loopback-connector-redis
):typescript// src/datasources/redis.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'redis', connector: 'redis', // ServBay Redis secara default berjalan di localhost:6379 url: 'redis://localhost:6379', // Opsi konfigurasi tambahan... }; export class RedisDataSource extends juggler.DataSource { static dataSourceName = 'redis'; constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17Catatan: LoopBack 4 menggunakan pendekatan yang berbeda dari LoopBack 3 untuk pengelolaan data source. Contoh di atas memakai gaya LoopBack 3 yang disederhanakan; pada LoopBack 4, disarankan menggunakan dekorator
@datasource
dari@loopback/repository
dan konfigurasi modern lainnya. Silakan cek dokumentasi resmi LoopBack 4 untuk panduan konfigurasi terbaru. Parameter sepertihost
,port
,user
,password
, dandatabase
tetap umum digunakan.Koneksi ke MariaDB (atau MySQL)
Pastikan Anda sudah menginstal dan menjalankan paket MariaDB atau MySQL melalui ServBay. LoopBack umumnya menggunakan connector MySQL yang kompatibel dengan MariaDB. Instal connector MySQL untuk LoopBack:
bashnpm install --save @loopback/connector-mysql
1Kemudian konfigurasikan data source di proyek Anda:
typescript// src/datasources/mariadb.datasource.ts atau mysql.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'mariadb', // atau 'mysql' connector: 'mysql', // gunakan connector mysql // url: '', // Bisa gunakan url atau atur host, port, database terpisah host: 'localhost', // Database ServBay secara default di localhost port: 3306, // Port default MariaDB/MySQL user: 'root', // Pengguna default biasanya 'root' password: 'password', // << GANTI dengan password database yang Anda tetapkan di ServBay >> database: 'servbay_loopback_app', // Ganti jadi nama database Anda // Opsi konfigurasi tambahan... }; export class MariaDbDataSource extends juggler.DataSource { static dataSourceName = 'mariadb'; // atau 'mysql' constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21Catatan: Di contoh,
password: 'password'
hanyalah placeholder. Pastikan cek/atur password root MariaDB/MySQL Anda dari panel database ServBay dan masukkan ke konfigurasi.Koneksi ke PostgreSQL
Pastikan PostgreSQL sudah terinstal serta berjalan pada ServBay. Instal connector PostgreSQL untuk LoopBack:
bashnpm install --save @loopback/connector-postgresql
1Kemudian konfigurasi data source:
typescript// src/datasources/postgresql.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'postgresql', connector: 'postgresql', // url: '', // Bisa lewat url atau atur host, port, dan lainnya terpisah host: 'localhost', // ServBay PostgreSQL secara default di localhost port: 5432, // Port default PostgreSQL user: 'user', // << GANTI dengan username PostgreSQL Anda di ServBay >> password: 'password', // << GANTI dengan password sesungguhnya dari ServBay >> database: 'servbay_loopback_app', // Ganti jadi nama database Anda // Opsi konfigurasi tambahan... }; export class PostgresqlDataSource extends juggler.DataSource { static dataSourceName = 'postgresql'; constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21Catatan: Pada contoh,
user: 'user'
danpassword: 'password'
adalah placeholder. Silakan cek atau buat user dan password di panel manajemen database PostgreSQL ServBay lalu isi pada konfigurasi.
Kesimpulan
Dengan mengikuti langkah-langkah di atas, Anda telah berhasil membuat, mengonfigurasi, dan menjalankan proyek LoopBack Node.js di lingkungan pengembangan lokal ServBay. Anda juga telah mempelajari cara menggunakan fitur ‘Situs Web’ ServBay untuk reverse proxy ke aplikasi Anda, serta cara menghubungkan LoopBack dengan berbagai layanan database yang ditawarkan ServBay.
ServBay menyediakan lingkungan pengembangan lokal yang stabil dan praktis untuk framework Node.js seperti LoopBack, lengkap dengan integrasi web server, database, dan runtime berbagai bahasa, sehingga workflow developer jadi lebih singkat. Dengan manajemen situs web ServBay, dukungan SSL, serta integrasi database, Anda dapat mengembangkan dan menguji aplikasi secara lebih efisien dan aman di komputer lokal.