Penjelasan Lengkap Struktur Direktori ServBay
Ringkasan
ServBay adalah lingkungan pengembangan Web lokal yang mendukung macOS dan Windows dengan desain struktur direktori yang rapi dan teratur. Jika Anda terbiasa dengan sistem Linux/Unix, Anda akan menemukan struktur file ServBay mirip dengan standar sistem file Unix, yang memudahkan developer untuk cepat menemukan dan mengelola berbagai file.
Lokasi Instalasi ServBay
Lokasi default instalasi ServBay pada masing-masing platform:
- macOS:
/Applications/ServBay - Windows:
C:\ServBay
Memahami struktur direktori ServBay sangat penting untuk pengembangan lokal yang efisien, mengatur konfigurasi, troubleshooting masalah, serta backup data. Berikut penjelasan mendetail untuk setiap bagian utama direktori ServBay.
Struktur tipikal instalasi ServBay dapat digambarkan seperti berikut:
ServBay
|____backup # Direktori backup file
| |____config # Backup konfigurasi
| |____databases # Backup database
| |____ssl # Backup sertifikat SSL
| |____websites # Backup file situs web
|____bin # Direktori file eksekusi pengguna (symlink ke package/bin)
|____data # Direktori data internal ServBay
| |____servbay # File konfigurasi dan data inti ServBay
|____db # Direktori penyimpanan file database
| |____mariadb # File data MariaDB
| |____mongodb # File data MongoDB
| |____mysql # File data MySQL
| |____postgresql # File data PostgreSQL
| |____redis # File data Redis
|____etc # Direktori file konfigurasi (symlink ke package/etc)
|____logs # Direktori file log (symlink ke package/var/log)
|____package # Direktori instalasi paket perangkat lunak
| |____bin # File eksekusi dari paket
| |____common # Library umum dan library pengembangan
| | |____imap-uw
| | |____include # Header file (Library Pengembangan ServBay)
| | |____lib # Shared library dan static library (Library Pengembangan ServBay)
| | |____libexec
| | |____openssl
| | |____share
| |____etc # Lokasi penyimpanan file konfigurasi paket
| | |____caddy
| | |____dnsmasq
| | |____mariadb
| | |____mongodb
| | |____mysql
| | |____nginx
| | |____openldap
| | |____php
| | |____postgresql
| | |____redis
| | |____... (Software lain seperti Python, Go, Java, Ruby, Rust dll)
| |____<package_name> # Direktori utama masing-masing paket
| | |____<major_version> # Direktori versi utama
| | | |____<full_version> # Direktori versi penuh (isi paket perangkat lunak)
| | | |____current # Symlink ke versi penuh terbaru
| | |____...
| |____sbin # File eksekusi sistem dari paket
| |____var # Data variabel dari paket (seperti lokasi logs)
| | |____log # Lokasi log sesungguhnya
| | |____run # File runtime (.pid dll)
|____sbin # Direktori file eksekusi sistem (symlink ke package/sbin)
|____script # Script manajemen internal ServBay
|____ssl # Direktori sertifikat SSL
| |____acme # Sertifikat SSL dari ACME protocol
| |____caddy # Sertifikat SSL yang dibuat otomatis oleh Caddy
| |____import # Sertifikat SSL pihak ketiga dari pengguna
| |____private # ServBay User CA
| |____public # ServBay Public CA
|____tmp # Direktori file sementara dan socket
|____www # Direktori root situs web
| |____servbay # Direktori contoh situs web1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Di bawah ini adalah penjelasan fungsi dari masing-masing direktori.
Direktori Utama ServBay
Direktori utama ServBay secara default berada di /Applications/ServBay. Seluruh paket perangkat lunak, file konfigurasi, data, log, dan lain-lain yang terkait ServBay terpusat di sini.
Untuk menjaga keamanan lingkungan pengembangan dan data, sangat disarankan untuk rutin melakukan backup direktori utama ini. Anda dapat menggunakan Time Machine atau alat backup lain untuk melakukan backup secara lengkap pada /Applications/ServBay.
Direktori Root Situs Web (www)
Direktori utama file situs web terletak di /Applications/ServBay/www. Di sinilah Anda menyimpan semua proyek website lokal.
Agar struktur tetap terorganisir dan mudah dikelola, sangat disarankan untuk membuat folder terpisah untuk setiap proyek web atau website virtual (disebut “situs web” di ServBay).
Sebagai contoh, jika Anda memiliki situs web.servbay.demo, api.servbay.demo, dan new.servbay.local, maka penataan folder yang dianjurkan adalah sebagai berikut:
/Applications/ServBay/www
|____servbay.demo # Untuk semua situs dengan domain *.servbay.demo
| |____web # File web.servbay.demo
| |____api # File api.servbay.demo
|____servbay.local # Untuk semua situs dengan domain *.servbay.local
| |____new # File new.servbay.local
|____myproject # Proyek independen lain, misal myproject.local1
2
3
4
5
6
7
2
3
4
5
6
7
Penataan seperti ini membantu membedakan proyek dan domain, sehingga manajemen situs lebih mudah.
Direktori File Konfigurasi (etc)
Direktori file konfigurasi /Applications/ServBay/etc merupakan symlink ke /Applications/ServBay/package/etc. Di sinilah seluruh file konfigurasi utama dari paket-paket ServBay (seperti PHP, MariaDB, Nginx, Caddy, dll) disimpan.
Saat penggunaan sehari-hari, Anda dapat langsung mengakses dan mengubah file konfigurasi melalui jalur /Applications/ServBay/etc. Setelah melakukan perubahan, kebanyakan layanan memerlukan restart agar perubahan diterapkan.
Contoh penempatan file konfigurasi paket yang umum:
PHP (etc/php)
Direktori konfigurasi PHP memakai struktur dua tingkat untuk memisahkan versi utama PHP. Contohnya, di dalam etc/php, Anda akan melihat 5.6, 7.4, 8.3, dll, masing-masing untuk satu versi utama. Struktur tipikal:
php
|____5.6 # Konfigurasi PHP 5.6
| |____conf.d # Direktori konfigurasi ekstensi
| |____php.ini # File konfigurasi utama PHP
|____7.4 # Konfigurasi PHP 7.4
| |____conf.d # Direktori konfigurasi ekstensi
| |____php-fpm.d # Direktori konfigurasi pool PHP-FPM
| |____php-fpm.conf # File konfigurasi utama PHP-FPM
| |____php.ini # File konfigurasi utama PHP
|____8.3 # Konfigurasi PHP 8.3
| |____conf.d
| |____php-fpm.d
| |____php-fpm.conf
| |____php.ini
|____... (Versi PHP lainnya)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Setiap folder versi memuat php.ini (konfigurasi utama PHP), php-fpm.conf (jika versi mendukung FPM), pear.conf, dan lainnya. Setelah mengubah file-file ini, Anda perlu restart layanan PHP-FPM dengan panel ServBay atau perintah servbayctl untuk menerapkan pengaturan terbaru.
Folder conf.d digunakan untuk konfigurasi ekstensi PHP seperti xdebug.ini, opcache.ini, redis.ini, dll. Editing pada file-file di sini memungkinkan memuat, menghapus, atau konfigurasi setelan ekstensi PHP. Lakukan restart PHP-FPM setelah perubahan.
Catatan: ServBay dirancang agar setiap versi kecil satu versi utama PHP menggunakan satu set konfigurasi yang sama. Misal, PHP 8.3.3 dan 8.3.5 sama-sama memakai file pada etc/php/8.3.
MariaDB / MySQL / PostgreSQL (etc/mariadb, etc/mysql, etc/postgresql)
Direktori konfigurasi database juga memakai pemisahan versi, misal etc/mariadb/11.2. Biasanya terdapat file konfigurasi utama (seperti my.cnf untuk MariaDB/MySQL, postgresql.conf untuk PostgreSQL). Restart layanan database dibutuhkan setelah perubahan. Versi minor satu versi utama menggunakan satu set konfigurasi.
Reset password user root untuk database MariaDB, MySQL, atau PostgreSQL tidak dilakukan lewat file konfigurasi, melainkan via tool command line atau fungsi di ServBay panel.
Caddy (etc/caddy)
File konfigurasi Caddy (Caddyfile) terletak pada etc/caddy.
Penting: ServBay akan secara otomatis menghasilkan file Caddyfile berdasarkan pengaturan website dari panel kontrol. Jangan mengedit langsung file ini, karena perubahan Anda bisa terhapus saat ServBay membuat ulang konfigurasi. Jika ingin menambah konfigurasi khusus, lakukan melalui pengaturan website di panel ServBay.
Nginx (etc/nginx)
File konfigurasi utama Nginx nginx.conf berada di etc/nginx. Seperti Caddy, ServBay akan mengelola dan menghasilkan konfigurasi website secara otomatis. Hindari perubahan manual pada file utama, lebih baik kelola melalui panel ServBay.
dnsmasq (etc/dnsmasq)
Direktori konfigurasi dnsmasq memuat dnsmasq.conf (default) dan domains.conf (file domain lokal yang dihasilkan otomatis oleh ServBay).
Penting: Kedua file ini diatur dan dikelola otomatis oleh ServBay agar resolusi domain lokal berfungsi dengan baik. Jangan mengedit manual file ini, karena bisa menyebabkan masalah pada akses situs lokal.
Konfigurasi Paket Lain
Untuk perangkat lunak lain yang didukung ServBay—seperti Node.js, Python, Go, Java, Ruby, Rust, dll—jika ada file konfigurasi global/layanan, biasanya ditempatkan di subdirektori dalam etc sesuai versi utama masing-masing dengan struktur yang serupa.
Direktori Data Internal ServBay (data/servbay)
/Applications/ServBay/data/servbay1
Direktori ini berisi file konfigurasi utama, status, dan pengaturan pengguna yang penting untuk operasi normal ServBay. File di sini sangat penting untuk panel kontrol, manajemen paket, pengaturan website dan database, dll.
Penting: Pastikan untuk rutin membackup direktori ini. Jangan menghapus atau mengedit file apapun di sini secara manual, agar ServBay tetap berjalan dan konfigurasi tetap utuh.
Direktori File Eksekusi dan Script (bin, sbin, script)
/Applications/ServBay/bin -> package/bin
/Applications/ServBay/sbin -> package/sbin
/Applications/ServBay/script1
2
3
2
3
Semua file eksekusi ServBay diatur di bin dan sbin, yang merupakan symlink ke package/bin dan package/sbin. Termasuk di sini berbagai tool dan runtime bahasa pemrograman.
Anda bisa menjalankan file-file ini langsung dari terminal karena Direktori ini sudah masuk ke PATH sistem (umumnya saat ServBay dijalankan). Di antaranya:
- Berbagai tool populer: seperti
curl,openssl,frpc, dll. - Banyak versi runtime bahasa: seperti
php(versi default),php-5.6,php-7.4,php-8.3,node(versi default),node-16,node-18,python3,go,java,ruby,rustc, dll. Untuk menjalankan versi tertentu, cukup gunakan command spesifik. - Klien database: seperti
mysql,psql,mongosh,redis-cli, dll.
Direktori script (/Applications/ServBay/script) berisi script manajemen sistem internal ServBay, misal untuk memulai/mematikan layanan, inisialisasi database, dan tugas maintenance. Walau Anda bisa menjalankannya secara langsung, lebih direkomendasikan menggunakan command line servbayctl yang lebih user-friendly.
Sebagai contoh, untuk memulai layanan PHP 7.4 FPM:
bash
servbayctl start php 7.41
Tool servbayctl terletak di /Applications/ServBay/bin.
Direktori File Database (db)
/Applications/ServBay/db1
Direktori ini adalah tempat penyimpanan data database dari berbagai layanan yang diinstal ServBay. Strukturnya mirip dengan direktori konfigurasi, yakni berdasarkan jenis dan versi paket:
/Applications/ServBay/db/mariadb/<major_version>: File database MariaDB./Applications/ServBay/db/mysql/<major_version>: File database MySQL./Applications/ServBay/db/postgresql/<major_version>: File database PostgreSQL./Applications/ServBay/db/mongodb: File database MongoDB./Applications/ServBay/db/redis: File database Redis.
ServBay mengatur file database berdasarkan versi utama. Misal, semua MariaDB 11.2.x menggunakan /Applications/ServBay/db/mariadb/11.2.
Penting: Direktori ini berisi semua data database lokal Anda. Selalu backup lengkap /Applications/ServBay/db sebelum upgrade/ migrasi/ operasi penting lain. Fitur backup otomatis ServBay juga memasukkan backup database.
Direktori Log (logs)
/Applications/ServBay/logs -> package/var/log1
ServBay mengelola seluruh log layanan di /Applications/ServBay/logs (symlink ke /Applications/ServBay/package/var/log), sehingga developer mudah memantau status dan error masing-masing service.
File log biasanya dikelompokkan sesuai jenis layanan, misalnya:
logs/caddy/ataulogs/nginx/: Log akses dan error Caddy atau Nginx, folder domain/situs web.logs/php/: Log PHP-FPM (php-fpm.log) dan log error eksekusi PHP (errors.log).errors.logberisi fatal error yang tidak tertangani oleh framework/aplikasi.logs/mariadb/,logs/mysql/,logs/postgresql/,logs/mongodb/,logs/redis/: Log error/slow query dari layanan database.- Log layanan lain: Python, Go, Java, Ruby, Rust, dll di folder masing-masing.
Catatan: File log, terutama log akses dan error, bisa memakan banyak ruang disk, apalagi untuk proyek aktif. Rutin cek dan bersihkan log yang tidak diperlukan agar ruang disk tetap aman.
Direktori Paket Perangkat Lunak (package)
/Applications/ServBay/package1
Direktori ini adalah tempat instalasi dan manajemen semua paket perangkat lunak ServBay. Tiap paket diatur dalam folder independen, biasanya dengan struktur nama_paket/versi_utama/versi_lengkap. Contohnya, PHP bisa berada di /Applications/ServBay/package/php/8.3/8.3.7.
Anda bisa menginstal, menghapus, atau beralih versi paket dengan mudah lewat panel kontrol ServBay.
Untuk versi lama yang sudah tidak dibutuhkan, Anda dapat hapus manual folder versi lengkap yang terkait (misal /Applications/ServBay/package/php/8.2/8.2.10) agar ruang disk lebih lapang.
Penting: Di setiap folder versi utama (misal /Applications/ServBay/package/php/8.3) akan ada symlink bernama current ke versi minor yang terbaru/aktif. Jangan hapus atau ubah symlink current ini secara manual, agar ServBay tetap menemukan eksekusi/library dengan benar.
Direktori Sertifikat SSL (ssl)
/Applications/ServBay/ssl1
Folder ini menyimpan seluruh file sertifikat SSL/TLS untuk berbagai keperluan:
- Sertifikat SSL yang diajukan otomatis oleh ServBay via ACME untuk situs lokal (biasanya di
ssl/caddyataussl/acme, tergantung server web yang digunakan). - Root certificate (ServBay User CA) dan public certificate (ServBay Public CA) yang dibuat untuk pengembangan local HTTPS, biasanya di
ssl/privatedanssl/public. Setelah menginstal CA ke sistem trusted store, browser Anda akan secara otomatis mempercayai sertifikat ServBay sehingga aman dari peringatan HTTPS.
Direktori Backup (backup)
/Applications/ServBay/backup1
Direktori ini adalah tempat file backup otomatis yang dibuat ServBay. Fitur backup ServBay memudahkan Anda membackup data dan konfigurasi krusial, antara lain:
backup/config: Backup konfigurasi inti ServBay dan konfigurasi paket.backup/databases: Backup data database MariaDB, MySQL, PostgreSQL, MongoDB, dll.backup/ssl: Backup file sertifikat SSL.backup/websites: Backup file proyek situs web dari/Applications/ServBay/www.
Rutin cek folder ini dan pindahkan backup ke penyimpanan eksternal jika perlu agar strategi disaster recovery semakin baik.
Direktori File Sementara (tmp)
/Applications/ServBay/tmp1
Directory ini adalah tempat file sementara dari berbagai layanan saat berjalan, terutama file .pid dan file socket.
.pidfile: Menyimpan ID proses layanan.- File Socket: Misal
php-cgi.sock,mysql.sock,pgsql.sock, dll. File ini memungkinkan komunikasi antar-proses secara lokal via Unix Domain Socket. Dibandingkan komunikasi via port TCP, socket file menawarkan throughput lebih tinggi, performa lebih baik, dan latensi rendah—sangat ideal untuk komunikasi antar-proses dalam satu mesin.
Komponen Umum & Library Pengembangan (package/common)
/Applications/ServBay/package/common1
Direktori ini memuat semua komponen umum, shared library (*.dylib), dan optional development library yang diperlukan seluruh paket ServBay.
Jika Anda instal ServBay Development Library (opsional, untuk kebutuhan kompilasi), maka akan muncul folder include (header file) dan lib (static library .a serta linked library .la). File di sini berguna untuk kompilasi ekstensi PHP atau aplikasi lain yang membutuhkan library built-in ServBay.
Penting: Jangan hapus file-file *.dylib di folder package/common/lib, karena itu adalah shared library esensial untuk aplikasi ServBay. Menghapusnya dapat membuat program gagal berjalan akibat dependency yang hilang.
Kesimpulan
Struktur direktori ServBay memisahkan paket, konfigurasi, data, log, dan file situs web secara jelas, terinspirasi dari sistem file Unix sehingga developer mudah mengelola lingkungan pengembangan lokal. Pemahaman fungsi tiap folder akan meningkatkan efisiensi dan kenyamanan saat membangun aplikasi web dengan ServBay. Rutin backup folder penting—terutama data dan db—adalah kunci untuk memastikan workflow pengembangan berjalan lancar tanpa kehilangan data.
