Skip to content

andyprasetya/webmap-development-server

Repository files navigation

Membangun GeoStack untuk Webmap Development Berbasis Fedora Linux

Tugas membangun backend system untuk sebuah webmap project adalah sebuah tedious work dan seringkali menjadi "lempar-lemparan" antara GIS Specialists dan staf TI (mulai dari devops, system administrators, techleads, hingga programmers). Orang GIS bilang: "...wah, itu yang tahu dan bisa hanya orang TI." Sementara orang TI juga bilang: "...saya nggak tau geografi. Kerjaan itu sudah sangat spesifik. Coba tanya sama orang-orang GIS." -- Wah, kalau gini caranya, bakalan nggak selesai-selesai webmap project-nya. Dan ini belum sampai ke pertanyaan yang lebih klasik lagi: "...yang tugas maintain sistemnya siapa nih?", saat sistemnya trouble. Membingungkan dan overwhelming, tapi ini sering sekali terjadi.

Tapi kalau nggak dimulai sekarang juga, ya kapan terwujudnya? Keburu disamber sama "tuan singh" dan konco-konco-nya nanti. Let's make a quickstart, berdarah-darah dikit dulu nggak apa-apa, asal ngelmu Geomatika kita terus berkembang maju!

Asumsi #1: Skenario development ecosystem akan kita bangun adalah:

Ecosystem

dimana: Development workstation IP address: 192.168.1.2/24, OS: Windows 10. Pada workstation ini akan terpasang beberapa software yang umum digunakan untuk webmap development, seperti Quantum GIS, PostGIS Shapefile and DBF Loader/Exporter, Microsoft Visual Studio Code (atau Notepad++), Postman, PgAdmin, MySQL Workbench, SQLite DB Browser, MongoDB Compass Community Edition, PuTTy dan WinSCP.

Webmap Development Server IP address: 192.168.1.23/24, hostname: nusantara, default user: rinjani.

Asumsi #2: Instalasi OS (Fedora Server versi 30) pada Webmap Development Server sudah dilaksanakan, dengan tidak lupa untuk mengganti hostname dan setting IP address secara manual, sehingga bisa diakses dari Development Workstation dengan menggunakan PuTTy atau WinSCP. Adapun mode instalasi OS yang disarankan adalah Minimal Installation. Untuk langkah-langkah instalasinya, Anda bisa mengacu pada dokumentasi-nya di situs Fedora.

Sebagai catatan tambahan, Anda bisa/boleh menggunakan Oracle VirtualBox atau VMware Workstation Player untuk hosting Fedora Linux-nya di workstation Anda.

Untuk menjalankan langkah-langkah post-installation, ecosystem ini harus terhubung dengan Internet!

Part 1: Post-Installation / OS Configuration

1. Login sebagai administrator user

Aktifkan PuTTy pada workstation Anda, dan buka akses ke Webmap Development Server (host: 192.168.1.23, port: 22, user: rinjani), dan setelah Anda masukkan password-nya muncul shell:

[rinjani@nusantara ~]$ 

masuk ke mode superuser dan update dulu sistemnya:

[rinjani@nusantara ~]$ sudo su

[root@nusantara rinjani]# dnf update

[root@nusantara rinjani]# reboot

2. Disabling SELinux

Setelah server di-reboot, login lagi, dan langkah pertama yang dilakukan adalah men-disable fitur SELinux. Langkah ini ditempuh supaya handling filesystem tidak ribet. Walaupun SELinux bersifat mandatory untuk production server, tapi untuk sementara dapat diabaikan dulu.

[rinjani@nusantara ~]$ sudo nano /etc/sysconfig/selinux

Ubah:

SELINUX=enforcing

Menjadi:

SELINUX=disabled

[save + exit]

[rinjani@nusantara ~]$ sudo reboot

Karena SELinux nya di-disable, maka sekarang pengamanan server akan diserahkan pada service firewalld. Untuk memeriksa apakah firewall sudah terinstall dan aktif, jalankan shell command:

[rinjani@nusantara ~]$ sudo firewall-cmd --list-all-zones

Jika service firewalld belum terinstall karena suatu hal, maka langkah-langkah instalasinya adalah sebagai berikut:

[rinjani@nusantara ~]$ sudo dnf install firewalld

[rinjani@nusantara ~]$ sudo systemctl unmask firewalld

[rinjani@nusantara ~]$ sudo systemctl enable firewalld.service

[rinjani@nusantara ~]$ sudo systemctl start firewalld.service

3. Component Installation:

3.1. Install base components:
[rinjani@nusantara ~]$ sudo dnf install git binutils gcc kernel-headers kernel-devel virtualenv
3.2. Install OpenJDK:
[rinjani@nusantara ~]$ sudo dnf install java-1.8.0-openjdk-*

Test instalasi OpenJDK dengan shell command:

[rinjani@nusantara ~]$ java -version
3.3. Install SELinux-related components (kalau SELinux-nya nanti mau diaktifkan)
[rinjani@nusantara ~]$ sudo dnf install python3-policycoreutils policycoreutils-python-utils policycoreutils-devel policycoreutils-newrole policycoreutils-sandbox
3.4. Install GDAL
[rinjani@nusantara ~]$ sudo dnf install gdal gdal-libs gdal-devel gdal-doc gdal-java gdal-perl gdal-python3 python3-networkx-geo geos geos-devel proj proj-devel hdf5 hdf5-devel

Untuk test GDAL, jalankan shell command:

[rinjani@nusantara ~]$ gdalinfo --version
3.5. Install GMT (Generic Mapping Tools):
[rinjani@nusantara ~]$ sudo dnf install GMT GMT-common GMT-doc GMT-devel gshhg-gmt-nc4 gshhg-gmt-nc4-full gshhg-gmt-nc4-high dcw-gmt

Untuk test GMT, jalankan shell command:

[rinjani@nusantara ~]$ gmt

atau langsung saja cek versi GMT:

[rinjani@nusantara ~]$ gmt --version
3.6. Install PostgreSQL base:
[rinjani@nusantara ~]$ sudo dnf install postgresql postgresql-server postgresql-pgpool-II postgresql-contrib postgresql-devel postgresql-docs postgresql-pgpool-II-extensions postgresql-pgpool-II-devel postgresql-odbc postgresql-jdbc python3-postgresql postgresql-test
3.7. Install PostgreSQL tools:
[rinjani@nusantara ~]$ sudo dnf install pgaudit pg_top pg_view
3.8. Install PostGIS, PgRouting dan OSM-related tools:
[rinjani@nusantara ~]$ sudo dnf install postgis pgRouting readosm osmpbf osmpbf-java osmpbf-devel osmctools osmium-tool osm2pgsql
3.9. Install MySQL Community:

Sebaiknya, cek terlebih dahulu versi termutakhir di situsnya MySQL.

[rinjani@nusantara ~]$ sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-fc30-1.noarch.rpm

[rinjani@nusantara ~]$ sudo dnf update

[rinjani@nusantara ~]$ sudo dnf install mysql-community-server mysql-community-client mysql-community-common mysql-community-libs mysql-community-test mysql-community-devel
3.10. Install MongoDB 4 (Community Edition):

Biar nggak jadi dinosaurus, nge-hype sedikit pasang NoSQL juga: MongoDB.

[rinjani@nusantara ~]$ sudo nano /etc/yum.repos.d/mongodb.repo

dan masukkan entry:

[Mongodb]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc

Save + exit, lalu update dan install MongoDB nya:

[rinjani@nusantara ~]$ sudo dnf update

[rinjani@nusantara ~]$ sudo dnf install mongodb-org mongodb-org-server mongodb-org-mongos mongodb-org-shell mongodb-org-tools
3.11. Install Apache Tomcat:
[rinjani@nusantara ~]$ sudo dnf install tomcat tomcat-webapps tomcat-admin-webapps
3.12. Install PHP
[rinjani@nusantara ~]$ sudo dnf install php php-fpm php-devel php-bcmath php-dba php-dbg php-exif php-gd php-gmp php-interbase php-mbstring php-pecl-mcrypt php-mysqlnd php-odbc php-opcache php-pdo php-pdo-dblib php-pear php-pecl-selinux php-pecl-redis php-pgsql php-process php-soap php-xml php-xmlrpc
3.13. Install other components/software:
[rinjani@nusantara ~]$ sudo dnf install composer samba* nginx pure-ftpd nodejs golang

[rinjani@nusantara ~]$ sudo npm install -g nodemon

[rinjani@nusantara ~]$ sudo curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo

[rinjani@nusantara ~]$ sudo dnf install yarn

😁 Sampai pada tahap ini, geostack Anda sudah siap untuk dikonfigurasi seluruh komponen terkait nya.

Instalasi dan konfigurasi sebuah tech-stack adalah sebuah craftmanship -- semakin mendalam Anda memahami bagaimana sebuah komponen bekerja dalam ekosistemnya, in-and-out, maka semakin paham pula Anda terhadap seluruh ketidaksempurnaan yang pernah Anda jumpai dalam hidup.

Related parts:

  • Part 1: Post-Installation / OS Configuration (this file)
  • Part 2: Configuring Apache Tomcat for GeoServer
  • Part 3: GeoServer Installation / Configuration
  • Part 4: Configuring PostgreSQL and PostGIS
  • Part 5: Configuring MySQL Database
  • Part 6: Configuring PHP, PHP-FPM and Nginx
  • Part 7: Configuring Nginx as a Reverse-Proxy
  • Part 8: Configuring Pure-FTPd

Releases

No releases published

Packages

No packages published

Languages