Sebuah web server bekerja dengan cara yang sederhana: berkas HTML, CSS, atau gambar tersimpan di disk, lalu dikirim apa adanya ke browser yang memintanya. Model ini memadai untuk hampir semua isi website.
Peta digital tidak bisa diperlakukan seperti itu. Yang tersimpan di basis data bukan gambar, melainkan koordinat: titik lokasi puskesmas, garis jalan, poligon batas kelurahan. Gambar petanya baru dibentuk saat ada yang meminta, dan hasilnya berbeda tergantung area yang sedang dilihat serta seberapa dekat pengunjung melakukan zoom. Menyiapkan setiap kemungkinan tampilan sebagai berkas gambar jelas tidak masuk akal.
Di sinilah perangkat lunak seperti GeoServer mengambil peran. GeoServer adalah server yang mengubah data spasial mentah menjadi peta siap tampil, tepat pada saat diminta.
GeoServer Adalah Server Penyaji Data Spasial
GeoServer adalah perangkat lunak server yang menerbitkan data spasial (data yang membawa informasi lokasi) melalui sekumpulan standar terbuka. Ia ditulis dalam bahasa Java dan berdiri di atas GeoTools, pustaka GIS Java yang menangani pembacaan format data dan konversi proyeksi peta. Proyeknya bernaung di Open Source Geospatial Foundation dan berlisensi GNU General Public License versi 2.0 — salah satu lisensi open source bertipe copyleft.
Kekuatan utamanya terletak pada kepatuhan terhadap standar Open Geospatial Consortium (OGC). Lima yang paling sering dipakai:
- WMS (Web Map Service): mengirim peta sebagai gambar yang sudah jadi.
- WFS (Web Feature Service): mengirim geometri mentah agar klien mengolahnya sendiri.
- WCS (Web Coverage Service): melayani raster seperti citra satelit dan model ketinggian.
- WMTS (Web Map Tile Service): melayani tile yang sudah dipotong sebelumnya.
- WPS (Web Processing Service): menjalankan analisis spasial di sisi server.
Karena kelima layanan itu memakai spesifikasi terbuka, peta yang Anda terbitkan bisa dibaca Leaflet, OpenLayers, QGIS, bahkan ArcGIS, tanpa perlu penyesuaian khusus.
Di luar standar, GeoServer membawa tiga kelengkapan yang menghemat banyak pekerjaan. Ada antarmuka admin berbasis web untuk mengatur layer dan gaya tampilan, sebuah REST API untuk mengotomasi konfigurasi, dan GeoWebCache yang menyimpan tile agar permintaan berikutnya tidak perlu dirender ulang.
GeoServer Bukan Pengganti QGIS atau ArcGIS
Kekeliruan yang paling sering kami temui adalah menempatkan GeoServer sejajar dengan QGIS atau ArcGIS Desktop, seolah ketiganya memperebutkan pekerjaan yang sama. Keduanya sebenarnya berada di tahap yang berbeda.
QGIS dan ArcGIS Desktop adalah tempat Anda membuat peta: mengimpor data lapangan, membersihkan geometri yang salah, menyusun simbologi, memilih proyeksi. Pekerjaannya dilakukan satu orang di satu komputer. GeoServer adalah tempat peta itu disajikan kepada banyak orang sekaligus melalui jaringan.
Alur kerja yang lazim menggabungkan keduanya:
- Disiapkan di QGIS: digitasi, koreksi topologi, penentuan sistem koordinat.
- Disimpan di PostGIS: agar bisa diperbarui banyak orang dan diquery spasial.
- Diterbitkan GeoServer: satu layer, satu URL, untuk banyak klien.
- Ditampilkan di browser: lewat Leaflet atau OpenLayers.
Rangkaian empat langkah itulah yang biasa disebut web GIS. Web GIS adalah sistem informasi geografis yang diakses lewat browser, sehingga penggunanya tidak perlu memasang aplikasi GIS apa pun di komputer sendiri. Istilah ini menunjuk pada gabungan tiga lapisan — basis data spasial, server penyaji, dan pustaka peta di sisi klien — bukan pada satu perangkat lunak tunggal.
GeoServer menempati lapisan tengah dalam susunan itu. Mengganti QGIS dengan ArcGIS Desktop atau Leaflet dengan OpenLayers tidak mengubah peran GeoServer sedikit pun.
Cara Kerja GeoServer: dari Basis Data ke Gambar Peta
Cara paling jelas memahami GeoServer adalah mengikuti satu permintaan dari awal sampai selesai.
Ketika pengunjung menggeser peta di browser, klien peta mengirim permintaan WMS yang berisi dua informasi utama: bounding box (kotak koordinat area yang sedang dilihat) dan ukuran gambar yang diinginkan. GeoServer menerima permintaan itu, lalu mencari layer yang diminta di dalam konfigurasinya.
Setiap layer terhubung ke sebuah datastore, yaitu sumber data aslinya: berkas Shapefile, berkas GeoTIFF untuk citra, atau — yang paling umum di sistem produksi — tabel di dalam PostGIS, ekstensi spasial untuk PostgreSQL. GeoServer mengambil hanya geometri yang berpotongan dengan bounding box tadi, bukan seluruh isi tabel.
Geometri yang terambil kemudian diwarnai mengikuti aturan SLD (Styled Layer Descriptor), berkas XML yang menentukan warna isian, ketebalan garis, ukuran simbol, sampai aturan tampil berdasarkan tingkat zoom. Hasil akhirnya dirender menjadi gambar dan dikirim balik. Bila layer tersebut dilayani lewat WMTS, GeoWebCache menyimpan potongan gambar itu supaya permintaan yang sama berikutnya dijawab dari cache.
Alur WMS GeoServer: browser mengirim bounding box, geometri dibaca dari PostGIS, diwarnai SLD, lalu dikirim sebagai gambar.
Perbedaan WMS dan WFS terletak persis di langkah ketiga. Pada WMS, perenderan terjadi di server dan yang sampai ke pengunjung hanya gambar. Pada WFS, GeoServer melewati tahap perenderan dan mengirimkan geometrinya langsung, sehingga klien bisa mengukur jarak, memilih objek, atau mengubah gaya tampilan tanpa bertanya lagi ke server.
Yang Dibutuhkan GeoServer untuk Berjalan
Bagian ini yang paling sering mengejutkan pemasang pertama kali: GeoServer bukan aplikasi PHP yang cukup diunggah ke folder public_html.
Ia didistribusikan sebagai berkas WAR, format paket standar aplikasi web Java, yang perlu dipasang di dalam servlet container — perangkat lunak yang menjalankan kode Java dan menerjemahkan permintaan HTTP menjadi pemanggilan kode. Dua yang resmi diuji adalah Apache Tomcat dan Jetty. Untuk uji coba, tersedia paket yang sudah membawa Jetty di dalamnya.
Rantai kebutuhan GeoServer: berkas WAR membutuhkan Tomcat 11 atau Jetty 12.1, lalu Java 17, lalu VPS berakses root.
Dokumentasi resmi menetapkan Java 17 sebagai versi minimum, berlaku untuk GeoServer 2.28.x maupun 3.0. Java 21 didukung penuh tanpa konfigurasi tambahan, sementara Java 25 masih dalam pengujian otomatis.
Soal memori, dokumentasi produksi memakai -Xms128m -Xmx756M sebagai titik awal. Angka itu warisan lama dan terlalu sempit untuk penggunaan nyata. Untuk layanan produksi dengan beberapa layer vektor dan cache aktif, alokasikan heap 2 GB pada server ber-RAM 4 GB:
export JAVA_OPTS="-Xms512m -Xmx2g -XX:SoftRefLRUPolicyMSPerMB=36000"Opsi terakhir memperpanjang umur cache internal GeoServer menjadi 36 detik. Perhatikan bahwa tidak ada pilihan garbage collector di sana, dan itu disengaja. Halaman produksi GeoServer masih menyarankan -XX:+UseParNewGC untuk heap di bawah 6 GB, padahal opsi tersebut sudah dihapus sejak Java 10. Memasangnya di Java 17 membuat JVM menolak berjalan dengan pesan Unrecognized VM option. Sejak Java 9, G1 sudah menjadi garbage collector bawaan, jadi Anda tidak perlu memilih apa pun. Bila beban ringan dan jeda sesaat bukan masalah, -XX:+UseParallelGC masih berlaku dan sedikit lebih hemat memori.
Konsekuensi praktisnya jelas. Shared hosting cPanel dirancang menjalankan PHP, bukan JVM, sehingga GeoServer tidak bisa dipasang di sana berapa pun kapasitas disknya. Pilihannya adalah VPS atau server sendiri, dengan akses root untuk memasang Java dan mengatur service.
Bila Anda ingin melewati pemasangan manual, proyek ini menyediakan image Docker resmi di registry OSGeo:
docker run -it -p 8080:8080 docker.osgeo.org/geoserver:3.0.1Ganti tag 3.0.1 dengan 2.28.5 bila Anda memilih bertahan di seri 2.x. Setelah berjalan, antarmuka admin dapat diakses di http://localhost:8080/geoserver dengan pengguna admin dan kata sandi geoserver — angka 8080 adalah port bawaan Tomcat maupun Jetty.
Kredensial bawaan itu sama di setiap instalasi baru di seluruh dunia. Ganti sebelum server tersebut menyentuh jaringan publik, bukan sesudahnya.
GeoServer 3.0 dan Perubahan yang Perlu Diantisipasi
Pada 11 Juni 2026 proyek ini merilis GeoServer 3.0.0, rilis mayor pertama setelah seri 2.x bertahan lebih dari satu dekade. Versi terbaru saat artikel ini ditulis adalah 3.0.1 (14 Agustus 2026). Perubahannya bersifat modernisasi menyeluruh, dan sebagian memutus kompatibilitas:
| Perubahan | Dampak untuk Anda |
|---|---|
| Pindah ke Jakarta EE Servlet 6.1 | Distribusi WAR membutuhkan Tomcat 11.0; Tomcat 10 ke bawah tidak lagi bisa dipakai |
| Spring Framework 7 dan ImageN | Tumpukan pemrosesan raster lama diganti; ekstensi pihak ketiga perlu diuji ulang |
| Container yang diuji: Tomcat 11.0.x dan Jetty 12.1 | Kombinasi di luar itu tidak dijamin |
| WCS 1.0/1.1, KML, World Image, ArcGRID turun jadi extension | Perlu diunduh dan dipasang terpisah setelah upgrade |
| Datastore H2 dihapus | Konfigurasi yang bergantung padanya harus dipindahkan lebih dulu |
Kabar baiknya, format data directory tidak berubah dari 2.28.x. Selama Anda sudah berjalan di Java 17, perpindahan dari 2.28 ke 3.0 memakai direktori data yang sama. Cukup cadangkan direktori itu, catat extension yang terpasang, lalu pasang ulang setelah versi diganti. Untuk lompatan yang lebih jauh, misalnya dari 2.26, dokumentasi menyarankan naik bertahap melalui setiap rilis minor.
Riwayat Keamanan yang Tidak Boleh Diabaikan
Endpoint OGC dirancang untuk diakses publik tanpa autentikasi, karena memang itu gunanya. Rancangan itu sekaligus membuat setiap celah pemrosesan permintaan langsung terbuka bagi siapa pun di internet, tanpa perlu kredensial.
Tiga tahun terakhir mencatat tiga celah kritis:
| Celah | Jenis dan skor | Status |
|---|---|---|
| CVE-2024-36401 | Eksekusi kode jarak jauh lewat evaluasi XPath, CVSS 9.8 | Masuk katalog CISA KEV, 15 Juli 2024 |
| CVE-2025-58360 | XXE lewat WMS GetMap, CVSS 8.2 | Dieksploitasi luas, masuk KEV Desember 2025 |
| CVE-2026-76904 | SQL injection pada jsonArrayContains, CVSS 9.8 | Ditambal 14 Agustus 2026 |
CVE-2024-36401 memberi gambaran seberapa serius akibatnya. Shadowserver mencatat 6.284 instance GeoServer terbuka di internet masih rentan pada akhir Juli 2024, dan CISA kemudian mendokumentasikan pembobolan sebuah lembaga federal Amerika Serikat yang bermula dari GeoServer yang belum ditambal.
Yang terbaru layak diperhatikan khusus. CVE-2026-76904 dipublikasikan 21 Agustus 2026 dengan skor CVSS 9.8. Penyebabnya adalah fungsi filter OGC jsonArrayContains yang menuliskan nilai masukan ke dalam perintah SQL tanpa penyaringan, pada layer bersumber PostGIS 12 ke atas. Perbaikannya ada di GeoServer 3.0.1, 2.28.5, dan 2.27.6. Tidak ada mitigasi lain: mengaktifkan prepared statement tidak menutup jalur ini.
Empat langkah yang sebaiknya jadi kebiasaan:
- Ikuti rilis keamanan, bukan hanya rilis fitur — ketiganya ditambal lewat rilis minor.
- Batasi hak akun PostGIS yang dipakai GeoServer; hak administratif tidak diperlukan.
- Tutup antarmuka admin dari internet. Layanan OGC boleh publik,
/geoserver/webtidak. - Ganti kata sandi bawaan sebelum server dapat diakses dari luar.
GeoServer, MapServer, atau QGIS Server?
Ketiganya sama-sama menerbitkan layanan OGC, tetapi berangkat dari filosofi yang berbeda.
| Pilihan | Karakter teknis | Paling masuk akal saat |
|---|---|---|
| GeoServer | Java, ada sejak 2003, admin UI dan REST API bawaan | Layer sering berubah dan dikelola beberapa orang |
| MapServer | C, ada sejak 1994, dijalankan sebagai CGI, dikonfigurasi lewat mapfile | Sumber daya server terbatas dan konfigurasi ingin disimpan di version control |
| QGIS Server | C++, berbagi mesin render dengan QGIS Desktop, memakai berkas proyek .qgs | Tampilan peta wajib identik dengan hasil kerja di QGIS Desktop |
Rekomendasi konkretnya: bila lebih dari satu orang perlu menambah atau mengubah layer, pilih GeoServer — antarmuka adminnya menghemat waktu yang jauh lebih mahal daripada memori tambahan yang ia konsumsi. Bila server Anda ber-RAM 1 GB dan hanya melayani beberapa layer statis, MapServer jauh lebih ringan. Bila kartografi sudah selesai di QGIS Desktop, QGIS Server menghilangkan langkah menerjemahkan simbologi ke SLD.
Kelemahan dan Hal yang Perlu Anda Pertimbangkan
Beberapa hal perlu Anda perhitungkan sebelum memutuskan:
- Konsumsi memori tinggi: JVM menuntut heap ratusan megabyte bahkan saat menganggur. MapServer melayani beban serupa dengan sebagian kecil dari itu.
- Menuntut pemahaman Java: saat performa bermasalah, yang dibaca adalah perilaku heap dan garbage collection.
- SLD tidak ramah pemula: menyusun simbologi rumit lewat XML jauh lebih lambat dibanding menggambarnya di QGIS.
- Permukaan serangan luas: layanan OGC dirancang publik, sehingga disiplin menambal jadi kewajiban operasional.
- Biaya operasional lebih tinggi: kebutuhan VPS menaikkan ongkos dibanding aplikasi web yang cukup ditaruh di shared hosting.
- Upgrade mayor menuntut persiapan: pindah ke 3.0 berarti menaikkan versi Tomcat dan memasang ulang beberapa modul.
Pertanyaan yang Sering Diajukan
Apakah GeoServer gratis untuk proyek komersial? Ya, tanpa biaya lisensi. Yang perlu diperhatikan adalah sifat copyleft GPL 2.0: bila Anda memodifikasi kode GeoServer lalu mendistribusikan hasilnya, versi modifikasi itu wajib dirilis dengan lisensi yang sama. Memakainya sebagai server untuk layanan Anda sendiri tidak memicu kewajiban tersebut.
Berapa RAM yang masuk akal untuk menjalankan GeoServer? Untuk uji coba, 2 GB sudah cukup. Untuk produksi dengan beberapa layer vektor dan cache aktif, mulai dari 4 GB dengan heap 2 GB. Untuk data raster besar atau permintaan padat, 8 GB ke atas dengan garbage collector G1.
Apakah GeoServer bisa dipasang di shared hosting? Tidak. Ia membutuhkan servlet container dan JVM, sementara shared hosting umumnya hanya menyediakan PHP. Pilihan realistisnya VPS atau server sendiri.
Perlukah langsung pindah ke GeoServer 3.0? Tidak mendesak. Seri 2.28.x masih menerima rilis keamanan — 2.28.5 terbit di hari yang sama dengan 3.0.1. Yang mendesak adalah memastikan versi Anda sudah ditambal, bukan bernomor tertinggi.
Kesimpulan
GeoServer adalah lapisan penyaji dalam sistem informasi geografis: ia mengambil data spasial dari PostGIS atau berkas, merendernya sesuai aturan gaya, lalu menerbitkannya lewat standar OGC agar terbaca aplikasi peta mana pun. Ia bukan pengganti QGIS atau ArcGIS Desktop, melainkan pelengkapnya di sisi server.
Pilih GeoServer bila layer Anda dikelola lebih dari satu orang dan sering berubah. Pertimbangkan MapServer bila sumber daya server terbatas. Apa pun pilihannya, siapkan tiga hal yang tidak bisa ditawar: Java 17, servlet container, dan kebiasaan mengikuti rilis keamanan — yang terakhir lebih menentukan daripada penyetelan performa mana pun.
Semoga artikel ini membantu.




