Penjelasan Lengkap Struktur Direktori ServBay
ServBay adalah lingkungan pengembangan Web lokal yang dirancang khusus untuk macOS dengan struktur direktori yang sederhana dan terorganisir. Jika Anda sudah familiar dengan sistem Linux/Unix, Anda akan menemukan bahwa organisasi file di ServBay sangat mirip dengan tata letak sistem file standar, sehingga memudahkan pengembang mencari dan mengelola berbagai jenis file dengan cepat.
Memahami struktur direktori ServBay penting untuk meningkatkan efisiensi pengembangan lokal, konfigurasi lingkungan, troubleshooting, serta backup data. Artikel ini akan membahas secara detail direktori utama di ServBay dan kegunaannya.
Struktur direktori instalasi ServBay yang khas adalah sebagai berikut:
ServBay
|____backup # Direktori berkas backup
| |____config # Backup konfigurasi
| |____databases # Backup database
| |____ssl # Backup sertifikat SSL
| |____websites # Backup file website
|____bin # Direktori file eksekusi pengguna (symlink ke package/bin)
|____data # Direktori data internal ServBay
| |____servbay # 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 paket
| |____common # Library bersama dan library pengembangan
| | |____imap-uw
| | |____include # File header (ServBay Development Library)
| | |____lib # Library shared dan statis (ServBay Development Library)
| | |____libexec
| | |____openssl
| | |____share
| |____etc # Lokasi penyimpanan file konfigurasi paket
| | |____caddy
| | |____dnsmasq
| | |____mariadb
| | |____mongodb
| | |____mysql
| | |____nginx
| | |____openldap
| | |____php
| | |____postgresql
| | |____redis
| | |____... (paket lain seperti Python, Go, Java, Ruby, Rust, dll)
| |____<package_name> # Direktori utama masing-masing paket
| | |____<major_version> # Direktori versi utama
| | | |____<full_version> # Direktori versi lengkap (termasuk package)
| | | |____current # Symlink ke versi terbaru
| | |____...
| |____sbin # File eksekusi sistem paket
| |____var # Data variabel paket (seperti lokasi log)
| | |____log # Lokasi penyimpanan log
| | |____run # File runtime (misal file .pid)
|____sbin # Direktori file eksekusi sistem (symlink ke package/sbin)
|____script # Script internal manajemen ServBay
|____ssl # Direktori sertifikat SSL
| |____acme # Sertifikat SSL yang diperoleh via protokol ACME
| |____caddy # Sertifikat SSL yang dihasilkan otomatis oleh Caddy
| |____import # Sertifikat SSL pihak ketiga yang diimpor pengguna
| |____private # ServBay User CA
| |____public # ServBay Public CA
|____tmp # Direktori file sementara dan socket
|____www # Direktori root website
| |____servbay # Direktori contoh website
1
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, kami akan menguraikan fungsi dari setiap direktori.
Direktori Utama ServBay
Secara default, direktori utama ServBay terletak di /Applications/ServBay
. Semua paket perangkat lunak, file konfigurasi, data, log, dan lain-lain yang berkaitan dengan ServBay terpusat di sini.
Untuk menjaga keamanan lingkungan pengembangan dan data Anda, sangat disarankan untuk melakukan backup berkala direktori utama ini. Anda dapat menggunakan Time Machine atau tools backup lain untuk melakukan backup penuh pada direktori /Applications/ServBay
.
Direktori Root Website (www
)
File website utama diletakkan di /Applications/ServBay/www
. Inilah tempat utama Anda menyimpan semua project situs web lokal.
Demi menjaga struktur yang rapi dan mudah dikelola, sangat direkomendasikan untuk membuat subfolder tersendiri bagi setiap project website atau situs virtual (disebut "website" di ServBay) di bawah direktori ini.
Contoh, jika Anda membuat web.servbay.demo
, api.servbay.demo
, dan new.servbay.local
, struktur penyimpanan yang direkomendasikan adalah:
/Applications/ServBay/www
|____servbay.demo # Menyimpan semua situs dengan domain *.servbay.demo
| |____web # File situs web web.servbay.demo
| |____api # File situs web api.servbay.demo
|____servbay.local # Menyimpan semua situs dengan domain *.servbay.local
| |____new # File situs web new.servbay.local
|____myproject # Menyimpan project lain, misal myproject.local
1
2
3
4
5
6
7
2
3
4
5
6
7
Struktur seperti ini memudahkan Anda membedakan project dan domain, sehingga pengelolaan jadi lebih efektif.
Direktori File Konfigurasi (etc
)
Direktori file konfigurasi /Applications/ServBay/etc
sebenarnya adalah symlink yang mengarah ke /Applications/ServBay/package/etc
. Di sinilah semua file konfigurasi utama paket yang terinstal di ServBay (seperti PHP, MariaDB, Nginx, Caddy, dll) disimpan.
Dalam penggunaan sehari-hari, Anda dapat langsung mengakses dan mengedit file konfigurasi melalui path /Applications/ServBay/etc
. Setelah mengubah file konfigurasi, biasanya Anda perlu me-restart layanan terkait agar perubahan berlaku.
Berikut adalah contoh lokasi file konfigurasi untuk beberapa paket umum:
PHP (etc/php
)
Direktori konfigurasi PHP menggunakan struktur dua tingkat yang membedakan versi utama PHP. Misalnya, dalam etc/php
, Anda akan menemukan folder 5.6
, 7.4
, 8.3
, dsb, di mana setiap folder mewakili satu versi utama PHP. Contoh struktur:
php
|____5.6 # Konfigurasi PHP 5.6
| |____conf.d # Direktori file konfigurasi ekstensi
| |____php.ini # File konfigurasi utama PHP
|____7.4 # Konfigurasi PHP 7.4
| |____conf.d # Direktori 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 direktori versi berisi php.ini
(konfigurasi utama PHP), php-fpm.conf
(konfigurasi utama PHP-FPM—jika versi mendukung FPM), pear.conf
dan lain-lain. Setelah mengedit file-file ini, Anda perlu me-restart layanan PHP-FPM terkait via ServBay Control Panel atau perintah servbayctl
untuk menerapkan pengaturan terbaru.
Folder conf.d
adalah tempat file konfigurasi ekstensi PHP, berisi file seperti xdebug.ini
, opcache.ini
, redis.ini
, dsb. Mengedit file di sini memungkinkan Anda mengaktifkan, menonaktifkan, atau mengubah pengaturan tiap ekstensi. Setelah mengedit, restart PHP-FPM terkait untuk mengaktifkan perubahan.
Catatan: ServBay didesain agar setiap versi minor PHP dalam satu versi mayor menggunakan file konfigurasi yang sama, misal PHP 8.3.3
dan 8.3.5
menggunakan file di etc/php/8.3
.
MariaDB / MySQL / PostgreSQL (etc/mariadb
, etc/mysql
, etc/postgresql
)
Direktori konfigurasi software database juga diatur berdasar versi, misal etc/mariadb/11.2
. Biasanya Anda menemukan file utama seperti my.cnf
(MariaDB/MySQL) atau postgresql.conf
(PostgreSQL). Setelah mengedit, restart layanan database untuk mengaktifkan perubahan. Satu set konfigurasi digunakan bersama untuk semua versi minor di satu versi mayor.
Reset password user root
pada MariaDB/MySQL/PostgreSQL umumnya tidak dilakukan dengan mengedit file konfigurasi, melainkan via tool command line tertentu atau fitur di Control Panel ServBay.
Caddy (etc/caddy
)
File konfigurasi Caddy (Caddyfile
) terletak di etc/caddy
.
PERINGATAN PENTING: ServBay akan secara otomatis menghasilkan Caddyfile
berdasarkan pengaturan "website" di Control Panel. Jangan mengedit file ini secara manual, karena perubahan Anda dapat ditimpa pada proses regenerasi berikutnya. Untuk menambah konfigurasi khusus pada situs, gunakan fitur pengaturan situs di Control Panel ServBay.
Nginx (etc/nginx
)
File utama konfigurasi Nginx, nginx.conf
, berada di etc/nginx
. Mirip dengan Caddy, konfigurasi situs di-generate otomatis sesuai pengaturan website Anda. Hati-hati saat mengedit file utama; umumnya disarankan menggunakan panel manajemen ServBay.
dnsmasq (etc/dnsmasq
)
Folder konfigurasi dnsmasq berisi dnsmasq.conf
(konfigurasi dasar) dan domains.conf
(file yang dihasilkan otomatis oleh ServBay berdasarkan domain lokal Anda).
PERINGATAN PENTING: File dnsmasq.conf
dan domains.conf
sepenuhnya dikelola oleh ServBay. Jangan edit manual file ini karena dapat menyebabkan situs lokal Anda tidak bisa diakses.
Konfigurasi Paket Lain
Untuk paket lain yang didukung ServBay, seperti Node.js, Python, Go, Java, Ruby, Rust, dsb, apabila memiliki file konfigurasi global/layanan, akan ditempatkan pada subfolder di etc
dengan struktur serupa berdasarkan versi.
Direktori Data Internal ServBay (data/servbay
)
/Applications/ServBay/data/servbay
1
Di sinilah ServBay menyimpan berbagai file konfigurasi penting, status sistem, dan pengaturan user yang esensial untuk kelancaran operasi aplikasi, pengelolaan paket, serta konfigurasi situs dan database.
PERINGATAN PENTING: Pastikan direktori ini selalu masuk dalam backup Anda. Jangan hapus atau ubah file apapun di sini secara manual agar ServBay tetap berjalan normal dan konfigurasi tidak hilang.
Direktori File Eksekusi dan Script (bin
, sbin
, script
)
/Applications/ServBay/bin -> package/bin
/Applications/ServBay/sbin -> package/sbin
/Applications/ServBay/script
1
2
3
2
3
Semua file executable ServBay terorganisir dalam direktori bin
dan sbin
(symlink ke package/bin
dan package/sbin
). Berisi tools dan runtime bahasa pemrograman yang terintegrasi.
Anda dapat langsung menggunakan tools ini di terminal karena ServBay otomatis menambahkannya ke variabel lingkungan PATH (saat ServBay dijalankan). Contohnya:
- Berbagai tools umum:
curl
,openssl
,frpc
, dsb - Runtime bahasa versi berbeda:
php
(default),php-5.6
,php-7.4
,php-8.3
,node
(default),node-16
,node-18
,python3
,go
,java
,ruby
,rustc
, dsb. Untuk menggunakan versi tertentu, tinggal panggil eksekusi sesuai versinya. - Klien database:
mysql
,psql
,mongosh
,redis-cli
, dsb.
Folder script
(/Applications/ServBay/script
) berisi script internal untuk pengelolaan sistem ServBay, seperti start/stop layanan, inisialisasi database, maintenance, dll. Walaupun bisa dijalankan manual, sebaiknya gunakan perintah servbayctl
(tersedia di /Applications/ServBay/bin
) untuk akses lebih mudah.
Contoh menjalankan layanan PHP 7.4 FPM:
bash
servbayctl start php 7.4
1
Direktori File Database (db
)
/Applications/ServBay/db
1
Ini adalah direktori penyimpanan file data asli untuk semua software database ServBay. Struktur pengelompokan per paket dan versi software, misalnya:
/Applications/ServBay/db/mariadb/<major_version>
: Untuk data MariaDB./Applications/ServBay/db/mysql/<major_version>
: Untuk data MySQL./Applications/ServBay/db/postgresql/<major_version>
: Untuk data PostgreSQL./Applications/ServBay/db/mongodb
: Untuk data MongoDB./Applications/ServBay/db/redis
: Untuk data Redis.
Sama seperti konfigurasi, data satu versi mayor database dipakai bersama oleh semua versi minor-nya, misal seluruh MariaDB 11.2.x
berada di /Applications/ServBay/db/mariadb/11.2
.
PERINGATAN PENTING: Direktori ini berisi semua data database lokal Anda. Sebelum melakukan operasi penting (upgrade, migrasi, dll), lakukan backup penuh /Applications/ServBay/db
. Fitur backup otomatis ServBay pun akan mencakup data di sini.
Direktori Log (logs
)
/Applications/ServBay/logs -> package/var/log
1
Semua log layanan terintegrasi ServBay tersimpan di /Applications/ServBay/logs
(symlink ke /Applications/ServBay/package/var/log
) sehingga Anda mudah memonitor status dan error layanan.
File log diorganisasi berdasarkan jenis layanan, misalnya:
logs/caddy/
ataulogs/nginx/
: Log akses dan error Caddy/Nginx (biasanya dipecah juga per domain website).logs/php/
: Log PHP-FPM (php-fpm.log
) dan error PHP runtime (errors.log
).errors.log
berisi error fatal yang tidak ditangani oleh framework/app PHP.logs/mariadb/
,logs/mysql/
,logs/postgresql/
,logs/mongodb/
,logs/redis/
: Log error, slow query, dsb tiap database.- Log layanan lain: Python, Go, Java, Ruby, Rust, dsb disimpan di subfolder masing-masing.
Catatan: File log (terutama log akses/error) bisa memakan banyak ruang disk, terutama pada project yang aktif. Rutinlah membersihkan log tidak dibutuhkan untuk menghemat ruang.
Direktori Paket Perangkat Lunak (package
)
/Applications/ServBay/package
1
Semua paket perangkat lunak yang diinstal dan dikelola ServBay ada di direktori ini. Setiap paket ditempatkan di folder terpisah dengan struktur nama_paket/versi_major/versi_lengkap
. Contoh, PHP versi tertentu diinstal di /Applications/ServBay/package/php/8.3/8.3.7
.
Panel kendali ServBay memungkinkan Anda menginstal, uninstall, dan switch antar versi paket dengan mudah.
Jika ada versi lama paket yang tidak dibutuhkan, Anda bisa menghapus manual folder versi lengkapnya (misal /Applications/ServBay/package/php/8.2/8.2.10
) untuk menghemat ruang.
PERINGATAN PENTING: Di setiap folder versi mayor (misal /Applications/ServBay/package/php/8.3
) terdapat symlink current
mengarah ke versi minor aktif/terbaru. Jangan hapus/ubah symlink current
ini, agar ServBay tetap dapat mendeteksi file eksekusi atau library paket tersebut.
Direktori Sertifikat SSL (ssl
)
/Applications/ServBay/ssl
1
Menampung semua file sertifikat SSL/TLS, mencakup:
- Sertifikat SSL yang diajukan otomatis oleh ServBay via protokol ACME untuk situs lokal Anda (umumnya di
ssl/caddy
ataussl/acme
, sesuai Web server yang Anda gunakan). - Root certificate (CA) dan public certificate yang dihasilkan ServBay untuk pengembangan lokal HTTPS—berada pada
ssl/private
danssl/public
. Jika CA ini diinstal ke trusted system Anda, browser akan mempercayai sertifikat situs lokal yang diterbitkan ServBay sehingga tidak kena peringatan HTTPS.
Direktori Backup (backup
)
/Applications/ServBay/backup
1
Tempat semua file backup otomatis yang dihasilkan fitur backup bawaan ServBay. Dengan fitur ini, Anda dapat membackup data dan konfigurasi penting dengan mudah, meliputi:
backup/config
: Backup file konfigurasi inti ServBay dan konfigurasi tiap paket.backup/databases
: Backup database MariaDB, MySQL, PostgreSQL, MongoDB, dll.backup/ssl
: Backup sertifikat SSL.backup/websites
: Backup file project website di/Applications/ServBay/www
.
Rutinlah memeriksa direktori ini, dan jika perlu pindahkan file backup ke media penyimpanan eksternal untuk strategi disaster recovery yang lebih aman.
Direktori File Sementara (tmp
)
/Applications/ServBay/tmp
1
Menyimpan file sementara dan file socket yang dihasilkan selama operasional layanan.
- File
.pid
: Menyimpan ID proses layanan yang berjalan. - File socket: Misal
php-cgi.sock
,mysql.sock
,pgsql.sock
, dsb, yang memungkinkan komunikasi lokal high performance antar aplikasi (lebih cepat dan efisien dibandingkan koneksi via TCP port untuk proses dalam satu mesin).
Komponen Umum & Library Pengembangan (package/common
)
/Applications/ServBay/package/common
1
Menampung semua komponen bersama dan library yang dibutuhkan oleh seluruh paket ServBay, termasuk file library bersama (*.dylib
) dan library pengembangan opsional.
Jika Anda menginstal ServBay Development Library (opsional untuk development dan kompilasi), di sini juga akan muncul direktori include
(header file) dan lib
(statik library *.a
dan linker file *.la
). Ini sangat bermanfaat untuk kompilasi ekstensi PHP atau kebutuhan development yang memerlukan library internal ServBay.
PERINGATAN PENTING: Jangan hapus file *.dylib
di bawah package/common/lib
karena library ini vital agar software ServBay berjalan dengan baik. Menghapusnya dapat menyebabkan error akibat ketergantungan pustaka hilang.
Kesimpulan
Struktur direktori ServBay membagi dengan jelas antara paket perangkat lunak, konfigurasi, data, log, dan file website, mengikuti konvensi sistem file Unix standar agar pengelolaan lingkungan pengembangan lokal jadi intuitif. Pemahaman menyeluruh tentang fungsi setiap folder akan sangat meningkatkan efisiensi Anda dalam proyek pengembangan Web dengan ServBay. Jangan lupa backup rutin direktori penting (khususnya data
dan db
) agar pekerjaan Anda selalu terlindungi dan dapat dipulihkan jika terjadi masalah.